WSABuilds/MagiskOnWSA/scripts/post-fs-data.sh

45 lines
1.4 KiB
Bash

#!/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 [ ! -d $MAGISKBIN ]; then
# shellcheck disable=SC2174
mkdir -p -m 755 $MAGISKBIN
chcon u:object_r:system_file:s0 $MAGISKBIN
fi
ABI=$(getprop ro.product.cpu.abi)
for file in busybox magiskpolicy magiskboot magiskinit; do
[ -x "$MAGISKBIN/$file" ] || {
unzip -d $MAGISKBIN -oj $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" ] || {
unzip -d $MAGISKBIN -oj $MAGISKTMP/stub.apk "assets/$file"
chmod 755 "$MAGISKBIN/$file"
}
done
for file in "$MAGISKTMP"/*; do
if echo "$file" | grep -Eq "lsp_.+\.img"; then
foldername=$(basename "$file" .img)
mkdir -p "$MAGISKTMP/$foldername"
mount -t auto -o ro,loop "$file" "$MAGISKTMP/$foldername"
"$MAGISKTMP/$foldername/post-fs-data.sh" &
fi
done
wait
for file in "$MAGISKTMP"/*; do
if echo "$file" | grep -Eq "lsp_.+\.img"; then
foldername=$(basename "$file" .img)
umount "$MAGISKTMP/$foldername"
rm -rf "${MAGISKTMP:?}/${foldername:?}"
rm -f "$file"
fi
done