From e1ee7f0b0c7307683e77bb463426c499c7cf7c4f Mon Sep 17 00:00:00 2001 From: Rikka Date: Sat, 24 Jun 2023 21:01:55 +0800 Subject: [PATCH] Fix capitalization of MicroG and update nodataperm --- main.py | 2 +- stuff/nodataperm.py | 52 ++++++++++++++++++++++++++++++--------------- tools/helper.py | 13 ++++++++++++ 3 files changed, 49 insertions(+), 18 deletions(-) diff --git a/main.py b/main.py index 26689e7..79889fe 100755 --- a/main.py +++ b/main.py @@ -82,7 +82,7 @@ def install_app(args): if "smartdock" in app: install_list.append(Smartdock()) if "microg" in app: - install_list.append(MicroG(args.android_version)) + install_list.append(MicroG(args.android_version, args.microg_variant)) if not container.use_overlayfs(): copy_dir = "/tmp/waydroid" diff --git a/stuff/nodataperm.py b/stuff/nodataperm.py index 964271b..4f140db 100644 --- a/stuff/nodataperm.py +++ b/stuff/nodataperm.py @@ -1,7 +1,8 @@ -import gzip import os +import re import shutil from stuff.general import General +from tools.helper import backup, restore from tools.logger import Logger from tools import container @@ -9,9 +10,14 @@ from tools import container class Nodataperm(General): id = "nodataperm" dl_links = { - "11": ["https://github.com/ayasa520/hack_full_data_permission/archive/refs/heads/main.zip", - "8f067ef796c3f6849f9767a85496156f"], - "13": ["", ""] + "11": + { + "x86_64": [ + "https://github.com/ayasa520/hack_full_data_permission/archive/d4beab7780eb792059d33e77d865579c9ee41546.zip", + "b0e3908ffcf5df8ea62f4929aa680f1a" + ], + }, + "13": {} } dl_file_name = "nodataperm.zip" extract_to = "/tmp/nodataperm" @@ -21,25 +27,34 @@ class Nodataperm(General): files = [ "etc/nodataperm.sh", "etc/init/nodataperm.rc", - "framework/services.jar" + "framework/services.jar", + "framework/services.jar.prof", + "framework/services.jar.bprof", ] def __init__(self, android_version="11") -> None: super().__init__() - self.dl_link = self.dl_links[android_version][0] - self.act_md5 = self.dl_links[android_version][1] + print("ok") + arch = self.arch[0] + self.dl_link = self.dl_links[android_version][arch][0] + self.act_md5 = self.dl_links[android_version][arch][1] def copy(self): + name = re.findall("([a-zA-Z0-9]+)\.zip", self.dl_link)[0] extract_path = os.path.join( - self.extract_to, "hack_full_data_permission-main") + self.extract_to, f"hack_full_data_permission-{name}") if not container.use_overlayfs(): services_jar = os.path.join( self.copy_dir, self.partition, "framework", "services.jar") - gz_filename = services_jar+".gz" - with gzip.open(gz_filename, 'wb') as f_gz: - with open(services_jar, "rb") as f: - f_gz.write(f.read()) - Logger.info("Copying widevine library files ...") + services_jar_prof = os.path.join( + self.copy_dir, self.partition, "framework", "services.jar.prof") + services_jar_bprof = os.path.join( + self.copy_dir, self.partition, "framework", "services.jar.bprof") + backup(services_jar) + backup(services_jar_prof) + backup(services_jar_bprof) + + Logger.info(f"Copying {self.id} library files ...") shutil.copytree(extract_path, os.path.join( self.copy_dir, self.partition), dirs_exist_ok=True) @@ -47,7 +62,10 @@ class Nodataperm(General): if not container.use_overlayfs(): services_jar = os.path.join( self.copy_dir, self.partition, "framework", "services.jar") - gz_filename = services_jar+".gz" - with gzip.GzipFile(gz_filename) as f_gz: - with open(services_jar, "wb") as f: - f.writelines(f_gz) + services_jar_prof = os.path.join( + self.copy_dir, self.partition, "framework", "services.jar.prof") + services_jar_bprof = os.path.join( + self.copy_dir, self.partition, "framework", "services.jar.bprof") + restore(services_jar) + restore(services_jar_prof) + restore(services_jar_bprof) diff --git a/tools/helper.py b/tools/helper.py index 6ef84cd..a4dd78b 100644 --- a/tools/helper.py +++ b/tools/helper.py @@ -1,3 +1,4 @@ +import gzip import os import re import platform @@ -131,3 +132,15 @@ def check_root(): if os.geteuid() != 0: Logger.error("This script must be run as root. Aborting.") sys.exit(1) + +def backup(path): + gz_filename = path+".gz" + with gzip.open(gz_filename, 'wb') as f_gz: + with open(path, "rb") as f: + f_gz.write(f.read()) + +def restore(path): + gz_filename = path+".gz" + with gzip.GzipFile(gz_filename) as f_gz: + with open(path, "wb") as f: + f.writelines(f_gz)