From c5110830f73c48b639f1c2e090e26406fa4598da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= Date: Mon, 20 Nov 2023 03:33:12 +0100 Subject: [PATCH] Add fdroidpriv for installing f-droid privleged extension --- main.py | 7 ++++++- stuff/fdroidpriv.py | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 stuff/fdroidpriv.py diff --git a/main.py b/main.py index af90935..600ff8d 100755 --- a/main.py +++ b/main.py @@ -17,6 +17,7 @@ from stuff.nodataperm import Nodataperm from stuff.smartdock import Smartdock from stuff.widevine import Widevine +from stuff.fdroidpriv import FDroidPriv import tools.helper as helper from tools import container from tools import images @@ -86,6 +87,8 @@ def install_app(args): install_list.append(MicroG(args.android_version, args.microg_variant)) if "mitm" in app: install_list.append(Mitm(args.ca_cert_file)) + if "fdroidpriv" in app: + install_list.append(FDroidPriv(args.android_version)) if not container.use_overlayfs(): copy_dir = "/tmp/waydroid" @@ -135,6 +138,8 @@ def remove_app(args): remove_list.append(MicroG(args.android_version, args.microg_variant)) if "mitm" in app: remove_list.append(Mitm()) + if "fdroidpriv" in app: + remove_list.append(FDroidPriv(args.android_version)) if "nodataperm" in app: remove_list.append(Nodataperm(args.android_version)) if "hidestatusbar" in app: @@ -224,7 +229,7 @@ def interact(): if not action: exit() - install_choices = ["gapps", "microg", "libndk", "magisk", "smartdock",] + install_choices = ["gapps", "microg", "libndk", "magisk", "smartdock", "fdroidpriv",] hack_choices = [] if android_version=="11": install_choices.extend(["libhoudini", "widevine"]) diff --git a/stuff/fdroidpriv.py b/stuff/fdroidpriv.py new file mode 100644 index 0000000..1258738 --- /dev/null +++ b/stuff/fdroidpriv.py @@ -0,0 +1,40 @@ +import os +import shutil +from stuff.general import General + + +class FDroidPriv(General): + id = "fdroid priv" + dl_links = {"11": ["https://f-droid.org/repo/org.fdroid.fdroid.privileged.ota_2130.zip", + "6242cab56d197d80c598593a46da62e4"]} + partition = "system" + dl_file_name = "org.fdroid.fdroid.privileged.ota_2130.zip" + dl_link = ... + act_md5 = ... + extract_to = "/tmp/fdroid_ota_2130" + files = [ + "app/F-Droid.apk" + "app/F-Droid/F-Droid.apk" + "etc/permissions/permissions_org.fdroid.fdroid.privileged.xml" + "priv-app/F-DroidPrivilegedExtension.apk" + "priv-app/F-DroidPrivilegedExtension/F-DroidPrivilegedExtension.apk" + ] + file_map = { + "permissions_org.fdroid.fdroid.privileged.xml": "etc/permissions/permissions_org.fdroid.fdroid.privileged.xml", + "F-Droid.apk": "app/F-Droid/F-Droid.apk", + "F-DroidPrivilegedExtension.apk": "priv-app/F-DroidPrivilegedExtension/F-DroidPrivilegedExtension.apk", + } + 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] + + def copy(self): + for f, d in self.file_map.items(): + rro_file = os.path.join( + self.copy_dir, self.partition, d) + rro_dir = os.path.dirname(rro_file) + if not os.path.exists(rro_dir): + os.makedirs(rro_dir) + shutil.copyfile(os.path.join(self.extract_to, f), rro_file) +