Fix env at first boot

This commit is contained in:
Howard Wu 2024-02-12 08:51:10 +08:00
parent 7eaf4d7cda
commit 7bc40ffbd1
3 changed files with 42 additions and 0 deletions

View file

@ -474,6 +474,8 @@ if [ "$HAS_GAPPS" ] || [ "$ROOT_SOL" = "magisk" ]; then
"add 0644 overlay.d/sbin/magisk32.xz $WORK_DIR/magisk/magisk32.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" \
"add 000 overlay.d/sbin/post-fs-data.sh post-fs-data.sh" \
|| abort "Unable to patch initrd"
elif [ "$ROOT_SOL" = "kernelsu" ]; then
echo "Extracting KernelSU"

View file

@ -0,0 +1,2 @@
on post-fs-data
exec u:r:magisk:s0 0 0 -- /system/bin/sh ${MAGISKTMP}/post-fs-data.sh

38
scripts/post-fs-data.sh Normal file
View file

@ -0,0 +1,38 @@
#!/system/bin/sh
MAGISKTMP=/sbin
[ -d /sbin ] || MAGISKTMP=/debug_ramdisk
MAGISKBIN=/data/adb/magisk
if [ ! -d /data/adb ]; then
mkdir -m 700 /data/adb
chcon u:object_r:adb_data_file:s0 /data/adb
fi
if [ ! -x $MAGISKBIN/busybox ]; then
# shellcheck disable=SC2174
mkdir -p -m 755 $MAGISKBIN
chcon u:object_r:system_file:s0 $MAGISKBIN
ABI=$(/system/bin/getprop ro.product.cpu.abi)
/system/bin/unzip -d $MAGISKBIN -j $MAGISKTMP/stub.apk "lib/$ABI/libbusybox.so"
mv $MAGISKBIN/libbusybox.so $MAGISKBIN/busybox
chmod 755 $MAGISKBIN/busybox
/system/bin/unzip -d $MAGISKBIN -j $MAGISKTMP/stub.apk "lib/$ABI/libmagiskpolicy.so"
mv $MAGISKBIN/libmagiskpolicy.so $MAGISKBIN/magiskpolicy
chmod 755 $MAGISKBIN/magiskpolicy
fi
if [ ! -x $MAGISKBIN/magiskpolicy ]; then
/system/bin/unzip -d $MAGISKBIN -j $MAGISKTMP/stub.apk "lib/$ABI/libmagiskpolicy.so"
mv $MAGISKBIN/libmagiskpolicy.so $MAGISKBIN/magiskpolicy
chmod 755 $MAGISKBIN/magiskpolicy
fi
for file in magiskboot magiskinit; do
[ -x "$MAGISKBIN/$file" ] || {
/system/bin/unzip -d $MAGISKBIN -j $MAGISKTMP/stub.apk "lib/$ABI/lib$file.so"
mv $MAGISKBIN/lib$file.so $MAGISKBIN/$file
chmod 755 "$MAGISKBIN/$file"
}
done
for file in util_functions.sh boot_patch.sh; do
[ -x "$MAGISKBIN/$file" ] || {
/system/bin/unzip -d $MAGISKBIN -j $MAGISKTMP/stub.apk "assets/$file"
chmod 755 "$MAGISKBIN/$file"
}
done