Refine Magisk init

This commit is contained in:
Howard Wu 2023-05-16 06:48:30 +08:00
parent bb5298adbb
commit 07f580587d

View File

@ -742,25 +742,22 @@ if [ "$ROOT_SOL" = 'magisk' ]; then
echo "Integrate Magisk"
sudo cp "$WORK_DIR/magisk/magisk/"* "$ROOT_MNT/debug_ramdisk/"
sudo cp "$MAGISK_PATH" "$ROOT_MNT/debug_ramdisk/stub.apk" || abort
sudo tee -a "$ROOT_MNT/debug_ramdisk/preparebin.sh" <<EOF >/dev/null || abort
#!/system/bin/sh
mkdir -p /data/adb/magisk
cp /debug_ramdisk/* /data/adb/magisk/
sync
chmod -R 755 /data/adb/magisk
restorecon -R /data/adb/magisk
EOF
sudo tee -a "$ROOT_MNT/debug_ramdisk/mkpreinit.sh" <<EOF >/dev/null || abort
sudo tee -a "$ROOT_MNT/debug_ramdisk/loadpolicy.sh" <<EOF >/dev/null || abort
#!/system/bin/sh
MAGISKTMP=/debug_ramdisk
export MAGISKTMP
mkdir -p /data/adb/magisk
cp \$MAGISKTMP/* /data/adb/magisk/
sync
chmod -R 755 /data/adb/magisk
restorecon -R /data/adb/magisk
MAKEDEV=1 \$MAGISKTMP/magisk --preinit-device 2>&1
RULESCMD=""
for r in \$MAGISKTMP/.magisk/preinit/*/sepolicy.rule; do
[ -f "\$r" ] || continue
RULESCMD="\$RULESCMD --apply \$r"
done
/debug_ramdisk/magiskpolicy --live \$RULESCMD 2>&1
\$MAGISKTMP/magiskpolicy --live \$RULESCMD 2>&1
EOF
sudo find "$ROOT_MNT/debug_ramdisk" -type f -exec chmod 0711 {} \;
sudo find "$ROOT_MNT/debug_ramdisk" -type f -exec chown root:root {} \;
@ -771,44 +768,34 @@ EOF
COPY_BIN_SVC_NAME=$(Gen_Rand_Str 12)
sudo tee -a "$SYSTEM_MNT/etc/init/hw/init.rc" <<EOF >/dev/null
on post-fs-data
mkdir /dev/tmp
mount none / /dev/tmp bind
mount none none /dev/tmp private
mkdir /dev/debug_ramdisk_mirror
mount none /debug_ramdisk /dev/debug_ramdisk_mirror bind
mount none none /dev/debug_ramdisk_mirror private
mount tmpfs magisk /debug_ramdisk mode=0755
copy /dev/tmp/debug_ramdisk/magisk64 /debug_ramdisk/magisk64
copy /dev/debug_ramdisk_mirror/magisk64 /debug_ramdisk/magisk64
chmod 0711 /debug_ramdisk/magisk64
symlink ./magisk64 /debug_ramdisk/magisk
symlink ./magisk64 /debug_ramdisk/su
symlink ./magisk64 /debug_ramdisk/resetprop
copy /dev/tmp/debug_ramdisk/magisk32 /debug_ramdisk/magisk32
start adbd
copy /dev/debug_ramdisk_mirror/magisk32 /debug_ramdisk/magisk32
chmod 0711 /debug_ramdisk/magisk32
copy /dev/tmp/debug_ramdisk/magiskinit /debug_ramdisk/magiskinit
copy /dev/debug_ramdisk_mirror/magiskinit /debug_ramdisk/magiskinit
chmod 0711 /debug_ramdisk/magiskinit
copy /dev/tmp/debug_ramdisk/magiskpolicy /debug_ramdisk/magiskpolicy
copy /dev/debug_ramdisk_mirror/magiskpolicy /debug_ramdisk/magiskpolicy
chmod 0711 /debug_ramdisk/magiskpolicy
mkdir /debug_ramdisk/.magisk 755
mkdir /debug_ramdisk/.magisk
mkdir /debug_ramdisk/.magisk/mirror 0
mkdir /debug_ramdisk/.magisk/block 0
mkdir /debug_ramdisk/.magisk/worker 0
copy /dev/tmp/debug_ramdisk/stub.apk /debug_ramdisk/stub.apk
copy /dev/debug_ramdisk_mirror/stub.apk /debug_ramdisk/stub.apk
chmod 0644 /debug_ramdisk/stub.apk
copy /dev/tmp/debug_ramdisk/preparebin.sh /debug_ramdisk/preparebin.sh
chmod 0711 /debug_ramdisk/preparebin.sh
copy /dev/tmp/debug_ramdisk/mkpreinit.sh /debug_ramdisk/mkpreinit.sh
chmod 0711 /debug_ramdisk/mkpreinit.sh
umount /dev/tmp
rmdir /dev/tmp
rm /dev/.magisk_unblock
exec u:r:magisk:s0 0 0 -- /system/bin/sh /debug_ramdisk/mkpreinit.sh
exec_start $COPY_BIN_SVC_NAME
copy /dev/debug_ramdisk_mirror/loadpolicy.sh /debug_ramdisk/loadpolicy.sh
chmod 0711 /debug_ramdisk/loadpolicy.sh
umount /dev/debug_ramdisk_mirror
rmdir /dev/debug_ramdisk_mirror
exec u:r:magisk:s0 0 0 -- /system/bin/sh /debug_ramdisk/loadpolicy.sh
exec u:r:magisk:s0 0 0 -- /debug_ramdisk/magisk --post-fs-data
wait /dev/.magisk_unblock 40
rm /dev/.magisk_unblock
service $COPY_BIN_SVC_NAME /system/bin/sh /debug_ramdisk/preparebin.sh
user root
seclabel u:r:magisk:s0
oneshot
on property:vold.decrypt=trigger_restart_framework
exec u:r:magisk:s0 0 0 -- /debug_ramdisk/magisk --service
@ -817,8 +804,6 @@ on nonencrypted
exec u:r:magisk:s0 0 0 -- /debug_ramdisk/magisk --service
on property:sys.boot_completed=1
mkdir /data/adb/magisk 755
copy /debug_ramdisk/stub.apk /data/adb/magisk/magisk.apk
exec u:r:magisk:s0 0 0 -- /debug_ramdisk/magisk --boot-complete
on property:init.svc.zygote=restarting