Compare commits
13 commits
d2502086ed
...
1a2d3ad643
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1a2d3ad643 | ||
|
|
7cccf2b56d | ||
|
|
d31988a829 | ||
|
|
b12c06568c | ||
|
|
e0de64c047 | ||
|
|
bc3efd48c2 | ||
|
|
cd6239737a | ||
|
|
97293f3cc1 | ||
|
|
76caf7e1d7 | ||
|
|
3527282950 | ||
|
|
c5110830f7 | ||
|
|
d81b72fed7 | ||
|
|
bd8d53906a |
7 changed files with 92 additions and 24 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -105,4 +105,7 @@ venv.bak/
|
|||
# mypy
|
||||
.mypy_cache/
|
||||
|
||||
test.py
|
||||
# nix
|
||||
result*
|
||||
|
||||
test.py
|
||||
|
|
|
|||
22
default.nix
Normal file
22
default.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
with (import <nixpkgs> {});
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "waydroid_script";
|
||||
|
||||
buildInputs = [
|
||||
(python3.withPackages(ps: with ps; [ tqdm requests inquirerpy ]))
|
||||
];
|
||||
|
||||
src = ./.;
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs main.py
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/libexec
|
||||
cp -r . $out/libexec/waydroid_script
|
||||
mkdir -p $out/bin
|
||||
ln -s $out/libexec/waydroid_script/main.py $out/bin/waydroid_script
|
||||
'';
|
||||
}
|
||||
7
main.py
7
main.py
|
|
@ -17,6 +17,7 @@ from stuff.ndk import Ndk
|
|||
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"])
|
||||
|
|
|
|||
40
stuff/fdroidpriv.py
Normal file
40
stuff/fdroidpriv.py
Normal file
|
|
@ -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)
|
||||
|
||||
|
|
@ -15,10 +15,10 @@ class Gapps(General):
|
|||
"armeabi-v7a": ["https://sourceforge.net/projects/opengapps/files/arm/20220215/open_gapps-arm-11.0-pico-20220215.zip", "8719519fa32ae83a62621c6056d32814"]
|
||||
},
|
||||
"13": {
|
||||
"x86_64": ["https://github.com/Howard20181/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-x86_64-20230323.zip", "63ccebbf93d45c384f58d7c40049d398"],
|
||||
"x86": ["https://github.com/Howard20181/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-x86-20230323.zip", "f12b6a8ed14eedbb4b5b3c932a865956"],
|
||||
"arm64-v8a": ["https://github.com/Howard20181/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-arm64-20230323.zip", "11180da0a5d9f2ed2863882c30a8d556"],
|
||||
"armeabi-v7a": ["https://github.com/Howard20181/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-arm-20230323.zip", "d525c980bac427844aa4cb01628f8a8f"]
|
||||
"x86_64": ["https://github.com/s1204IT/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-x86_64-20231028.zip", "63ccebbf93d45c384f58d7c40049d398"],
|
||||
"x86": ["https://github.com/s1204IT/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-x86-20231028.zip", "f12b6a8ed14eedbb4b5b3c932a865956"],
|
||||
"arm64-v8a": ["https://github.com/s1204IT/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-arm64-20231028.zip", "11180da0a5d9f2ed2863882c30a8d556"],
|
||||
"armeabi-v7a": ["https://github.com/s1204IT/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-arm-20231028.zip", "d525c980bac427844aa4cb01628f8a8f"]
|
||||
}
|
||||
}
|
||||
android_version = ...
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ class Houdini(General):
|
|||
extract_to = "/tmp/houdiniunpack"
|
||||
init_rc_component = """
|
||||
on early-init
|
||||
mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
|
||||
mount binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
|
||||
|
||||
on property:ro.enable.native.bridge.exec=1
|
||||
exec -- /system/bin/sh -c "echo ':arm_exe:M::\\\\x7f\\\\x45\\\\x4c\\\\x46\\\\x01\\\\x01\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x28::/system/bin/houdini:P' > /proc/sys/fs/binfmt_misc/register"
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ from tools import container
|
|||
class Magisk(General):
|
||||
id = "magisk delta"
|
||||
partition = "system"
|
||||
dl_link = "https://huskydg.github.io/magisk-files/app-debug.apk"
|
||||
dl_link = "https://github.com/mistrmochov/magiskdeltaorig/raw/main/app-release.apk"
|
||||
dl_file_name = "magisk.apk"
|
||||
extract_to = "/tmp/magisk_unpack"
|
||||
magisk_dir = os.path.join(partition, "etc", "init", "magisk")
|
||||
|
|
@ -29,30 +29,28 @@ service bootanim /system/bin/bootanimation
|
|||
bootanim_component = f"""
|
||||
on post-fs-data
|
||||
start logd
|
||||
exec u:r:su:s0 root root -- /system/etc/init/magisk/magisk{host()[1]} --auto-selinux --setup-sbin /system/etc/init/magisk
|
||||
exec u:r:su:s0 root root -- /system/etc/init/magisk/magiskpolicy --live --magisk "allow * magisk_file lnk_file *"
|
||||
mkdir /sbin/.magisk 700
|
||||
mkdir /sbin/.magisk/mirror 700
|
||||
mkdir /sbin/.magisk/block 700
|
||||
copy /system/etc/init/magisk/config /sbin/.magisk/config
|
||||
rm /dev/.magisk_unblock
|
||||
exec u:r:su:s0 root root -- /sbin/magisk --auto-selinux --post-fs-data
|
||||
wait /dev/.magisk_unblock 40
|
||||
rm /dev/.magisk_unblock
|
||||
exec u:r:su:s0 root root -- /system/etc/init/magisk/magiskpolicy --live --magisk
|
||||
exec u:r:magisk:s0 root root -- /system/etc/init/magisk/magiskpolicy --live --magisk
|
||||
exec u:r:update_engine:s0 root root -- /system/etc/init/magisk/magiskpolicy --live --magisk
|
||||
mkdir /dev/magisk_iqeoVo2mDrO 700
|
||||
exec u:r:su:s0 root root -- /system/etc/init/magisk/magisk64 --auto-selinux --setup-sbin /system/etc/init/magisk /dev/magisk_iqeoVo2mDrO
|
||||
exec u:r:su:s0 root root -- /dev/magisk_iqeoVo2mDrO/magisk --auto-selinux --post-fs-data
|
||||
|
||||
on zygote-start
|
||||
exec u:r:su:s0 root root -- /sbin/magisk --auto-selinux --service
|
||||
on nonencrypted
|
||||
exec u:r:su:s0 root root -- /dev/magisk_iqeoVo2mDrO/magisk --auto-selinux --service
|
||||
|
||||
on property:vold.decrypt=trigger_restart_framework
|
||||
exec u:r:su:s0 root root -- /dev/magisk_iqeoVo2mDrO/magisk --auto-selinux --service
|
||||
|
||||
on property:sys.boot_completed=1
|
||||
mkdir /data/adb/magisk 755
|
||||
exec u:r:su:s0 root root -- /sbin/magisk --auto-selinux --boot-complete
|
||||
exec -- /system/bin/sh -c "if [ ! -e /data/data/io.github.huskydg.magisk ] ; then pm install /system/etc/init/magisk/magisk.apk ; fi"
|
||||
exec u:r:su:s0 root root -- /dev/magisk_iqeoVo2mDrO/magisk --auto-selinux --boot-complete
|
||||
|
||||
on property:init.svc.zygote=restarting
|
||||
exec u:r:su:s0 root root -- /sbin/magisk --auto-selinux --zygote-restart
|
||||
exec u:r:su:s0 root root -- /dev/magisk_iqeoVo2mDrO/magisk --auto-selinux --zygote-restart
|
||||
|
||||
on property:init.svc.zygote=stopped
|
||||
exec u:r:su:s0 root root -- /sbin/magisk --auto-selinux --zygote-restart
|
||||
exec u:r:su:s0 root root -- /dev/magisk_iqeoVo2mDrO/magisk --auto-selinux --zygote-restart
|
||||
"""
|
||||
|
||||
def download(self):
|
||||
|
|
|
|||
Loading…
Reference in a new issue