From 0bc2cedc2d306203eab5a92aa4fda2da013d57e3 Mon Sep 17 00:00:00 2001 From: Rikka <1103670381@qq.com> Date: Wed, 25 Jan 2023 01:52:41 +0800 Subject: [PATCH] add microG --- README.md | 16 +++++++-- assets/7.png | Bin 0 -> 114168 bytes main.py | 41 ++++++++++++++++++--- requirements.txt | 1 + stuffs/general.py | 3 ++ stuffs/magisk.py | 2 +- stuffs/microg.py | 89 ++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 144 insertions(+), 8 deletions(-) create mode 100644 assets/7.png create mode 100644 stuffs/microg.py diff --git a/README.md b/README.md index fef690e..b12999b 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Then run: git clone https://github.com/casualsnek/waydroid_script cd waydroid_script sudo python3 -m pip install -r requirements.txt - sudo python3 main.py install {gapps, magisk, libndk, libhoudini, smartdock} + sudo python3 main.py install {gapps, magisk, libndk, libhoudini, nodataperm, smartdock, microg} ## Install OpenGapps @@ -121,6 +121,14 @@ chmod 777 -R /mnt/*/*/*/*/Android/obb - https://github.com/supremegamers/device_generic_common/commit/2d47891376c96011b2ee3c1ccef61cb48e15aed6 - https://github.com/supremegamers/android_frameworks_base/commit/24a08bf800b2e461356a9d67d04572bb10b0e819 +## Install microG, Aurora Store and Aurora Droid + +![](assets/7.png) + +``` +sudo python main.py install microg +``` + ## Get Android ID for device registration You need to register you device with its it before being able to use gapps, this will print out your Android ID which you can use for device registration required for google apps: @@ -148,5 +156,7 @@ And re-run the script. - [WayDroid](https://github.com/waydroid/waydroid) - [waydroid_script](https://github.com/casualsnek/waydroid_script) - [Magisk Delta](https://huskydg.github.io/magisk-files/) -- [OpenGapps](https://github.com/opengapps/opengapps) -- [Smart Dock](https://github.com/axel358/smartdock) \ No newline at end of file +- [microG Project](https://microg.org) +- [Open GApps](https://opengapps.org) +- [Smart Dock](https://github.com/axel358/smartdock) +- [wd-scripts](https://github.com/electrikjesus/wd-scripts/) \ No newline at end of file diff --git a/assets/7.png b/assets/7.png new file mode 100644 index 0000000000000000000000000000000000000000..c1b4fd5b4932f18419a4679727dbdf759bb2bcbd GIT binary patch literal 114168 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�bNfdsj7EQv0*jmJH1!O!V@vMp;l*{W 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 NGU)5=FRk|e`d1PKum=DD literal 0 HcmV?d00001 diff --git a/main.py b/main.py index 4fef3d7..b054b40 100755 --- a/main.py +++ b/main.py @@ -6,6 +6,7 @@ from stuffs.android_id import Android_id from stuffs.gapps import Gapps from stuffs.houdini import Houdini from stuffs.magisk import Magisk +from stuffs.microg import MicroG from stuffs.ndk import Ndk from stuffs.nodataperm import Nodataperm from stuffs.smartdock import Smartdock @@ -34,9 +35,32 @@ def install(*args): Smartdock().install() if "nodataperm" in args: Nodataperm().install() + if "microg" in args: + MicroG().install() def uninstall(*args): - pass + if "gapps" in args: + Gapps().uninstall() + if "libndk" in args and "houdini" not in args: + arch = helper.host()[0] + if arch == "x86_64": + Ndk().uninstall() + else: + Logger.warn("libndk is not supported on your CPU") + if "libhoudini" in args and "ndk" not in args: + arch = helper.host()[0] + if arch == "x86_64": + Houdini().uninstall() + else: + Logger.warn("libhoudini is not supported on your CPU") + if "magisk" in args: + Magisk().uninstall() + if "widevine" in args: + Widevine().uninstall() + if "smartdock" in args: + Smartdock().uninstall() + if "nodataperm" in args: + Nodataperm().uninstall() def main(): about = """ @@ -60,12 +84,21 @@ def main(): "dest": "app", "type": str, "nargs": '+', - "choices": ["gapps", "libndk","libhoudini","magisk", "smartdock","widevine", "nodataperm"], + "metavar":"", + "choices": ["gapps", "microg", "libndk","libhoudini","magisk", "smartdock","widevine", "nodataperm"], } - install_parser = subparsers.add_parser("install", help='install something') + install_help = """ +gapps: Install Open GApps Pico(minimum GApps installation) +microg: Add microG, Aurora Store and Aurora Droid to WayDriod +libndk: Add libndk arm translation, better for AMD CPUs +libhoudini: Add libhoudini arm translation, better for Intel CPUs +magisk: Install Magisk Delta to WayDroid +smartdock: A desktop mode launcher for Android + """ + install_parser = subparsers.add_parser("install",formatter_class=argparse.RawTextHelpFormatter, help='install something') install_parser.set_defaults(func=install) - install_parser.add_argument(**arg_template) + install_parser.add_argument(**arg_template,help=install_help) uninstall_parser = subparsers.add_parser("uninstall", help='uninstall something') uninstall_parser.set_defaults(func=uninstall) diff --git a/requirements.txt b/requirements.txt index 329890b..0eda38b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ tqdm requests +aapt2 \ No newline at end of file diff --git a/stuffs/general.py b/stuffs/general.py index 244b5c5..e1f425c 100644 --- a/stuffs/general.py +++ b/stuffs/general.py @@ -129,3 +129,6 @@ class General: self.start() self.extra2() Logger.info("Installation finished") + + def uninstall(self): + pass diff --git a/stuffs/magisk.py b/stuffs/magisk.py index 75adf06..e4145ab 100644 --- a/stuffs/magisk.py +++ b/stuffs/magisk.py @@ -58,7 +58,7 @@ on property:init.svc.zygote=stopped if os.path.isfile(self.download_loc): os.remove(self.download_loc) Logger.info("Downloading latest Magisk-Delta to {} now ...".format(self.download_loc)) - download_file(self.dl_link, self.download_loc) + download_file(self.dl_link, self.download_loc) def copy(self): magisk_absolute_dir = os.path.join(self.copy_dir, self.magisk_dir) diff --git a/stuffs/microg.py b/stuffs/microg.py new file mode 100644 index 0000000..6a58fa6 --- /dev/null +++ b/stuffs/microg.py @@ -0,0 +1,89 @@ +import os +import shutil +from time import sleep +from stuffs.general import General +from tools.helper import get_download_dir, host, run +from aapt2 import aapt +from tools import container +from tools.logger import Logger + + +class MicroG(General): + partition = "system" + main_arch = host()[0] + sub_arch = "x86" if main_arch == "x86_64" else "armeabi-v7a" if main_arch == "arm64-v8a" else "" + fdroid = "https://f-droid.org/repo/" + microg="https://microg.org/fdroid/repo/" + fdroid_repo_apks = { + "com.aurora.store_41.apk": "9e6c79aefde3f0bbfedf671a2d73d1be", + "com.etesync.syncadapter_20300.apk": "997d6de7d41c454d39fc22cd7d8fc3c2", + "com.aurora.adroid_8.apk": "0010bf93f02c2d18daf9e767035fefc5", + "org.fdroid.fdroid.privileged_2130.apk": "b04353155aceb36207a206d6dd14ba6a", + "org.microg.nlp.backend.ichnaea_20036.apk": "0b3cb65f8458d1a5802737c7392df903", + "org.microg.nlp.backend.nominatim_20042.apk": "88e7397cbb9e5c71c8687d3681a23383", + } + microg_apks= { + "com.google.android.gms-223616054.apk": "a945481ca5d33a03bc0f9418263c3228", + "com.google.android.gsf-8.apk": "b2b4ea3642df6158e14689a4b2a246d4", + "com.android.vending-22.apk": "6815d191433ffcd8fa65923d5b0b0573", + "org.microg.gms.droidguard-14.apk": "4734b41c1a6bc34a541053ddde7a0f8e" + } + + def skip_extract(self): + return True + + def download(self): + for apk, md5 in self.fdroid_repo_apks.items(): + self.dl_link = self.fdroid+apk + self.act_md5 = md5 + self.dl_file_name = apk + super().download() + for apk, md5 in self.microg_apks.items(): + self.dl_link = self.microg+apk + self.act_md5 = md5 + self.dl_file_name = apk + super().download() + + def generate_permissions(self): + permissions = "" + download_dir = get_download_dir() + for apk in {**self.fdroid_repo_apks, **self.microg_apks}.keys(): + splitor = "_" if apk in self.fdroid_repo_apks.keys() else "-" + package = apk.split(splitor)[0] + permissions += '\n\t\n'.format(package) + permission_list = aapt.get_apk_info(os.path.join(download_dir,apk))["permissions"] + permissions += "\n".join(['\t\t'.format(permission) for permission in permission_list]) + permissions += "\n\t" + return permissions + + def copy(self): + Logger.info("Copying MicroG and other files") + priv_apps = ["com.google.android.gms", "com.android.vending"] + for apk in {**self.fdroid_repo_apks, **self.microg_apks}.keys(): + splitor = "_" if apk in self.fdroid_repo_apks.keys() else "-" + package = apk.split(splitor)[0] + download_dir = get_download_dir() + apk_dir = "app" if package not in priv_apps else "priv-app" + if not os.path.exists(os.path.join(self.copy_dir, self.partition, apk_dir, package)): + os.makedirs(os.path.join(self.copy_dir, self.partition, apk_dir, package)) + shutil.copyfile(os.path.join(download_dir, apk), + os.path.join(self.copy_dir, self.partition, apk_dir, package, apk)) + permissions = self.generate_permissions() + permission_dir = os.path.join(self.copy_dir, self.partition, "etc", "permissions") + if not os.path.exists(permission_dir): + os.makedirs(permission_dir) + with open(os.path.join(permission_dir, "foss-permissions.xml"), "w") as f: + f.write(permissions) + + def extra2(self): + index = 0 + while not container.is_running(): + list = ["\\", "|", "/", "—"] + sleep(0.5) + print("\r\tPlease start WayDroid for further setup {}".format(list[index%4]), end="") + index += 1 + sleep(5) + print() + Logger.info("Signature spoofing") + run("waydroid shell pm grant com.google.android.gms android.permission.FAKE_PACKAGE_SIGNATURE".split()) + run("waydroid shell pm grant com.android.vending android.permission.FAKE_PACKAGE_SIGNATURE".split())