diff --git a/scripts/build.sh b/scripts/build.sh index 6ba0803..f0b25ca 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -486,13 +486,18 @@ if [ "$ROOT_SOL" = "magisk" ]; then echo "Integrating Magisk" SKIP="#" SINGLEABI="#" + SKIPINITLD="#" if [ -f "$WORK_DIR/magisk/magisk64" ]; then "$WORK_DIR/magisk/magiskboot" compress=xz "$WORK_DIR/magisk/magisk64" "$WORK_DIR/magisk/magisk64.xz" "$WORK_DIR/magisk/magiskboot" compress=xz "$WORK_DIR/magisk/magisk32" "$WORK_DIR/magisk/magisk32.xz" - unset SKIP + unset SINGLEABI else "$WORK_DIR/magisk/magiskboot" compress=xz "$WORK_DIR/magisk/magisk" "$WORK_DIR/magisk/magisk.xz" - unset SINGLEABI + unset SKIP + fi + if [ -f "$WORK_DIR/magisk/init-ld" ]; then + "$WORK_DIR/magisk/magiskboot" compress=xz "$WORK_DIR/magisk/init-ld" "$WORK_DIR/magisk/init-ld.xz" + unset SKIPINITLD fi "$WORK_DIR/magisk/magiskboot" compress=xz "$MAGISK_PATH" "$WORK_DIR/magisk/stub.xz" "$WORK_DIR/magisk/magiskboot" cpio "$WORK_DIR/wsa/$ARCH/Tools/initrd.img" \ @@ -502,9 +507,10 @@ if [ "$ROOT_SOL" = "magisk" ]; then "add 0750 /magiskinit $WORK_DIR/magisk/magiskinit" \ "mkdir 0750 overlay.d" \ "mkdir 0750 overlay.d/sbin" \ - "$SKIP add 0644 overlay.d/sbin/magisk64.xz $WORK_DIR/magisk/magisk64.xz" \ - "$SKIP add 0644 overlay.d/sbin/magisk32.xz $WORK_DIR/magisk/magisk32.xz" \ - "$SINGLEABI add 0644 overlay.d/sbin/magisk.xz $WORK_DIR/magisk/magisk.xz" \ + "$SINGLEABI add 0644 overlay.d/sbin/magisk64.xz $WORK_DIR/magisk/magisk64.xz" \ + "$SINGLEABI add 0644 overlay.d/sbin/magisk32.xz $WORK_DIR/magisk/magisk32.xz" \ + "$SKIP add 0644 overlay.d/sbin/magisk.xz $WORK_DIR/magisk/magisk.xz" \ + "$SKIPINITLD add 0644 overlay.d/sbin/init-ld.xz $WORK_DIR/magisk/init-ld.xz" \ "add 0644 overlay.d/sbin/stub.xz $WORK_DIR/magisk/stub.xz" \ "mkdir 000 .backup" \ "add 000 overlay.d/init.lsp.magisk.rc init.lsp.magisk.rc" \ diff --git a/scripts/extractMagisk.py b/scripts/extractMagisk.py index 37ed4c9..9f7fc7d 100644 --- a/scripts/extractMagisk.py +++ b/scripts/extractMagisk.py @@ -61,6 +61,7 @@ def extract_as(zip, name, as_name, dir): with zipfile.ZipFile(magisk_zip) as zip: props = Prop(zip.comment.decode().replace('\000', '\n')) + namelist = zip.namelist() versionName = props.get("version") versionCode = props.get("versionCode") print(f"Magisk version: {versionName} ({versionCode})", flush=True) @@ -71,10 +72,12 @@ with zipfile.ZipFile(magisk_zip) as zip: env.MAGISK_VERSION_CODE = versionCode with open(os.environ['WSA_WORK_ENV'], 'w') as environ_file: environ_file.write(str(env)) - if f"lib/{ abi_map[arch][0] }/libmagisk64.so" in zip.namelist(): + if f"lib/{ abi_map[arch][0] }/libmagisk64.so" in namelist: extract_as(zip, f"lib/{ abi_map[arch][0] }/libmagisk64.so", "magisk64", "magisk") extract_as(zip, f"lib/{ abi_map[arch][1] }/libmagisk32.so", "magisk32", "magisk") else: extract_as(zip, f"lib/{ abi_map[arch][0] }/libmagisk.so", "magisk", "magisk") + if f"lib/{ abi_map[arch][0] }/libinit-ld.so" in namelist: + extract_as(zip, f"lib/{ abi_map[arch][0] }/libinit-ld.so", "init-ld", "magisk") extract_as(zip, f"lib/{ abi_map[arch][0] }/libmagiskinit.so", "magiskinit", "magisk") extract_as(zip, f"lib/{ abi_map[host_abi][0] }/libmagiskboot.so", "magiskboot", "magisk") diff --git a/scripts/magisk_debug.sh b/scripts/magisk_debug.sh index d853d6d..682f73a 100644 --- a/scripts/magisk_debug.sh +++ b/scripts/magisk_debug.sh @@ -96,19 +96,25 @@ echo -e "done\n" echo "Integrating Magisk" SKIP="#" SINGLEABI="#" +SKIPINITLD="#" if [ -f "$WORK_DIR/magisk/magisk64" ]; then "$WORK_DIR/magisk/magiskboot" compress=xz "$WORK_DIR/magisk/magisk64" "$WORK_DIR/magisk/magisk64.xz" "$WORK_DIR/magisk/magiskboot" compress=xz "$WORK_DIR/magisk/magisk32" "$WORK_DIR/magisk/magisk32.xz" - unset SKIP + unset SINGLEABI else "$WORK_DIR/magisk/magiskboot" compress=xz "$WORK_DIR/magisk/magisk" "$WORK_DIR/magisk/magisk.xz" - unset SINGLEABI + unset SKIP +fi +if [ -f "$WORK_DIR/magisk/init-ld" ]; then + "$WORK_DIR/magisk/magiskboot" compress=xz "$WORK_DIR/magisk/init-ld" "$WORK_DIR/magisk/init-ld.xz" + unset SKIPINITLD fi "$WORK_DIR/magisk/magiskboot" compress=xz "$MAGISK_PATH" "$WORK_DIR/magisk/stub.xz" "$WORK_DIR/magisk/magiskboot" cpio "$TARGET" \ "add 0750 /magiskinit $WORK_DIR/magisk/magiskinit" \ - "$SKIP add 0644 overlay.d/sbin/magisk64.xz $WORK_DIR/magisk/magisk64.xz" \ - "$SKIP add 0644 overlay.d/sbin/magisk32.xz $WORK_DIR/magisk/magisk32.xz" \ - "$SINGLEABI add 0644 overlay.d/sbin/magisk.xz $WORK_DIR/magisk/magisk.xz" \ + "$SINGLEABI add 0644 overlay.d/sbin/magisk64.xz $WORK_DIR/magisk/magisk64.xz" \ + "$SINGLEABI add 0644 overlay.d/sbin/magisk32.xz $WORK_DIR/magisk/magisk32.xz" \ + "$SKIP add 0644 overlay.d/sbin/magisk.xz $WORK_DIR/magisk/magisk.xz" \ + "$SKIPINITLD add 0644 overlay.d/sbin/init-ld.xz $WORK_DIR/magisk/init-ld.xz" \ "add 0644 overlay.d/sbin/stub.xz $WORK_DIR/magisk/stub.xz" \ || abort "Unable to patch initrd"