redroid-script
redroid-script copied to clipboard
经过一些修改后成功在 redroid:11.0.0-latest 上运行magisk+zygisk, 留供他人参考
懒得把bootanim.rc里的修改和新复制的文件重新整理回magisk.py了, 也不怎么会python, 就不提pr了
把修改的东西都列出来供他人参考 Platform: Fedora 39 x86_64
WARN: 一番折腾到成功后, 对着结果写的事后总结, 可能其中有一些是无效操作
1. 从解压的magisk.apk中补充一些文件
> tree redroid-script.orig/magisk
redroid-script.orig/magisk
├── sbin
└── system
└── etc
└── init
├── bootanim.rc
├── bootanim.rc.gz
└── magisk
├── busybox
├── magisk64
├── magisk.apk
├── magiskboot
├── magiskinit
└── magiskpolicy
补充后
> tree redroid-script/magisk
redroid-script/magisk
├── sbin
└── system
└── etc
└── init
├── bootanim.rc
├── bootanim.rc.gz
└── magisk
├── boot_patch.sh
├── busybox
├── magisk64
├── magisk.apk
├── magiskboot
├── magiskinit
├── magiskpolicy
├── stub.apk
└── util_functions.sh
权限
-rw-r--r--. 1 root root 7.0K Jan 9 14:28 boot_patch.sh
-rwxr-xr-x. 1 root root 2.2M Jan 9 14:16 busybox
-rwxr-xr-x. 1 root root 458K Jan 9 14:16 magisk64
-rw-r--r--. 1 root root 13M Jan 9 14:16 magisk.apk
-rwxr-xr-x. 1 root root 1.3M Jan 9 14:16 magiskboot
-rwxr-xr-x. 1 root root 705K Jan 9 14:16 magiskinit
-rwxr-xr-x. 1 root root 362K Jan 9 14:16 magiskpolicy
-rw-r--r--. 1 root root 33K Jan 9 14:29 stub.apk
-rw-r--r--. 1 root root 21K Jan 9 14:28 util_functions.sh
2. 修改 magisk.py
--- redroid-script.orig/stuffs/magisk.py 2023-04-11 15:14:42.000000000 +0800
+++ redroid-script/stuffs/magisk.py 2024-01-09 14:12:53.098522064 +0800
@@ -32,7 +32,7 @@
mkdir /sbin/.magisk 700
mkdir /sbin/.magisk/mirror 700
mkdir /sbin/.magisk/block 700
- copy /system/etc/init/magisk/config /sbin/.magisk/config
+ touch /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
@@ -86,7 +86,9 @@
gz_filename = os.path.join(bootanim_path)+".gz"
with gzip.open(gz_filename,'wb') as f_gz:
f_gz.write(self.oringinal_bootanim.encode('utf-8'))
+ run(["chmod", "644", gz_filename])
with open(bootanim_path, "w") as initfile:
initfile.write(self.oringinal_bootanim+self.bootanim_component)
+ run(["chmod", "644", bootanim_path])
os.chmod(bootanim_path, 0o644)
3. 修改 bootanim.rc
--- redroid-script.orig/magisk/system/etc/init/bootanim.rc 2024-01-09 15:09:01.327379169 +0800
+++ redroid-script/magisk/system/etc/init/bootanim.rc 2024-01-09 14:58:50.556405081 +0800
@@ -11,12 +11,17 @@
on post-fs-data
start logd
+ copy /system/etc/init/magisk/stub.apk /sbin/stub.apk
+ chmod 755 /sbin/stub.apk
+ mkdir /data/adb/magisk 755
+ exec -- /system/bin/sh -c "cp /system/etc/init/magisk/* /data/adb/magisk/"
exec u:r:su:s0 root root -- /system/etc/init/magisk/magisk64 --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
+ touch /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
@@ -26,7 +31,6 @@
exec u:r:su:s0 root root -- /sbin/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"
Edit: 删除magisk32, 研究了半天LSPosed起不来的问题, 最后发现是这的锅