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"