Skip to content

Commit 5448a5f

Browse files
authored
Enhanced compatibility (#804)
topjohnwu/Magisk@33aebb5
1 parent d190ec2 commit 5448a5f

File tree

3 files changed

+26
-11
lines changed

3 files changed

+26
-11
lines changed

scripts/build.sh

+11-5
Original file line numberDiff line numberDiff line change
@@ -486,13 +486,18 @@ if [ "$ROOT_SOL" = "magisk" ]; then
486486
echo "Integrating Magisk"
487487
SKIP="#"
488488
SINGLEABI="#"
489+
SKIPINITLD="#"
489490
if [ -f "$WORK_DIR/magisk/magisk64" ]; then
490491
"$WORK_DIR/magisk/magiskboot" compress=xz "$WORK_DIR/magisk/magisk64" "$WORK_DIR/magisk/magisk64.xz"
491492
"$WORK_DIR/magisk/magiskboot" compress=xz "$WORK_DIR/magisk/magisk32" "$WORK_DIR/magisk/magisk32.xz"
492-
unset SKIP
493+
unset SINGLEABI
493494
else
494495
"$WORK_DIR/magisk/magiskboot" compress=xz "$WORK_DIR/magisk/magisk" "$WORK_DIR/magisk/magisk.xz"
495-
unset SINGLEABI
496+
unset SKIP
497+
fi
498+
if [ -f "$WORK_DIR/magisk/init-ld" ]; then
499+
"$WORK_DIR/magisk/magiskboot" compress=xz "$WORK_DIR/magisk/init-ld" "$WORK_DIR/magisk/init-ld.xz"
500+
unset SKIPINITLD
496501
fi
497502
"$WORK_DIR/magisk/magiskboot" compress=xz "$MAGISK_PATH" "$WORK_DIR/magisk/stub.xz"
498503
"$WORK_DIR/magisk/magiskboot" cpio "$WORK_DIR/wsa/$ARCH/Tools/initrd.img" \
@@ -502,9 +507,10 @@ if [ "$ROOT_SOL" = "magisk" ]; then
502507
"add 0750 /magiskinit $WORK_DIR/magisk/magiskinit" \
503508
"mkdir 0750 overlay.d" \
504509
"mkdir 0750 overlay.d/sbin" \
505-
"$SKIP add 0644 overlay.d/sbin/magisk64.xz $WORK_DIR/magisk/magisk64.xz" \
506-
"$SKIP add 0644 overlay.d/sbin/magisk32.xz $WORK_DIR/magisk/magisk32.xz" \
507-
"$SINGLEABI add 0644 overlay.d/sbin/magisk.xz $WORK_DIR/magisk/magisk.xz" \
510+
"$SINGLEABI add 0644 overlay.d/sbin/magisk64.xz $WORK_DIR/magisk/magisk64.xz" \
511+
"$SINGLEABI add 0644 overlay.d/sbin/magisk32.xz $WORK_DIR/magisk/magisk32.xz" \
512+
"$SKIP add 0644 overlay.d/sbin/magisk.xz $WORK_DIR/magisk/magisk.xz" \
513+
"$SKIPINITLD add 0644 overlay.d/sbin/init-ld.xz $WORK_DIR/magisk/init-ld.xz" \
508514
"add 0644 overlay.d/sbin/stub.xz $WORK_DIR/magisk/stub.xz" \
509515
"mkdir 000 .backup" \
510516
"add 000 overlay.d/init.lsp.magisk.rc init.lsp.magisk.rc" \

scripts/extractMagisk.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ def extract_as(zip, name, as_name, dir):
6161

6262
with zipfile.ZipFile(magisk_zip) as zip:
6363
props = Prop(zip.comment.decode().replace('\000', '\n'))
64+
namelist = zip.namelist()
6465
versionName = props.get("version")
6566
versionCode = props.get("versionCode")
6667
print(f"Magisk version: {versionName} ({versionCode})", flush=True)
@@ -71,10 +72,12 @@ def extract_as(zip, name, as_name, dir):
7172
env.MAGISK_VERSION_CODE = versionCode
7273
with open(os.environ['WSA_WORK_ENV'], 'w') as environ_file:
7374
environ_file.write(str(env))
74-
if f"lib/{ abi_map[arch][0] }/libmagisk64.so" in zip.namelist():
75+
if f"lib/{ abi_map[arch][0] }/libmagisk64.so" in namelist:
7576
extract_as(zip, f"lib/{ abi_map[arch][0] }/libmagisk64.so", "magisk64", "magisk")
7677
extract_as(zip, f"lib/{ abi_map[arch][1] }/libmagisk32.so", "magisk32", "magisk")
7778
else:
7879
extract_as(zip, f"lib/{ abi_map[arch][0] }/libmagisk.so", "magisk", "magisk")
80+
if f"lib/{ abi_map[arch][0] }/libinit-ld.so" in namelist:
81+
extract_as(zip, f"lib/{ abi_map[arch][0] }/libinit-ld.so", "init-ld", "magisk")
7982
extract_as(zip, f"lib/{ abi_map[arch][0] }/libmagiskinit.so", "magiskinit", "magisk")
8083
extract_as(zip, f"lib/{ abi_map[host_abi][0] }/libmagiskboot.so", "magiskboot", "magisk")

scripts/magisk_debug.sh

+11-5
Original file line numberDiff line numberDiff line change
@@ -96,19 +96,25 @@ echo -e "done\n"
9696
echo "Integrating Magisk"
9797
SKIP="#"
9898
SINGLEABI="#"
99+
SKIPINITLD="#"
99100
if [ -f "$WORK_DIR/magisk/magisk64" ]; then
100101
"$WORK_DIR/magisk/magiskboot" compress=xz "$WORK_DIR/magisk/magisk64" "$WORK_DIR/magisk/magisk64.xz"
101102
"$WORK_DIR/magisk/magiskboot" compress=xz "$WORK_DIR/magisk/magisk32" "$WORK_DIR/magisk/magisk32.xz"
102-
unset SKIP
103+
unset SINGLEABI
103104
else
104105
"$WORK_DIR/magisk/magiskboot" compress=xz "$WORK_DIR/magisk/magisk" "$WORK_DIR/magisk/magisk.xz"
105-
unset SINGLEABI
106+
unset SKIP
107+
fi
108+
if [ -f "$WORK_DIR/magisk/init-ld" ]; then
109+
"$WORK_DIR/magisk/magiskboot" compress=xz "$WORK_DIR/magisk/init-ld" "$WORK_DIR/magisk/init-ld.xz"
110+
unset SKIPINITLD
106111
fi
107112
"$WORK_DIR/magisk/magiskboot" compress=xz "$MAGISK_PATH" "$WORK_DIR/magisk/stub.xz"
108113
"$WORK_DIR/magisk/magiskboot" cpio "$TARGET" \
109114
"add 0750 /magiskinit $WORK_DIR/magisk/magiskinit" \
110-
"$SKIP add 0644 overlay.d/sbin/magisk64.xz $WORK_DIR/magisk/magisk64.xz" \
111-
"$SKIP add 0644 overlay.d/sbin/magisk32.xz $WORK_DIR/magisk/magisk32.xz" \
112-
"$SINGLEABI add 0644 overlay.d/sbin/magisk.xz $WORK_DIR/magisk/magisk.xz" \
115+
"$SINGLEABI add 0644 overlay.d/sbin/magisk64.xz $WORK_DIR/magisk/magisk64.xz" \
116+
"$SINGLEABI add 0644 overlay.d/sbin/magisk32.xz $WORK_DIR/magisk/magisk32.xz" \
117+
"$SKIP add 0644 overlay.d/sbin/magisk.xz $WORK_DIR/magisk/magisk.xz" \
118+
"$SKIPINITLD add 0644 overlay.d/sbin/init-ld.xz $WORK_DIR/magisk/init-ld.xz" \
113119
"add 0644 overlay.d/sbin/stub.xz $WORK_DIR/magisk/stub.xz" \
114120
|| abort "Unable to patch initrd"

0 commit comments

Comments
 (0)