42 lines
1.1 KiB
Bash
42 lines
1.1 KiB
Bash
#!/system/bin/sh
|
|
|
|
BINDIR=/magisk/.core/bin
|
|
|
|
# Find where's su binary
|
|
for DIR in /magisk /data/magisk /cache/magisk /su/bin; do
|
|
[ -f "$DIR/su" ] && break
|
|
done
|
|
|
|
case $1 in
|
|
phhsu )
|
|
if [ ! -d "/dev/su" ]; then
|
|
$DIR/sepolicy-inject --live --auto -s su
|
|
exec $DIR/su --daemon
|
|
fi
|
|
;;
|
|
post-fs )
|
|
# If su call fails, temporary switch to permissive (workaround)
|
|
# This workaround will not always work (e.g. Samsung stock boot images)
|
|
if [ `$DIR/su -c "/sbin/magic_mask.sh post-fs" >/dev/null 2>&1; echo $?` -ne 0 ]; then
|
|
echo 0 > /sys/fs/selinux/enforce
|
|
/sbin/magic_mask.sh post-fs
|
|
echo 1 > /sys/fs/selinux/enforce
|
|
fi
|
|
;;
|
|
post-fs-data )
|
|
# su call shall always work
|
|
if [ `$DIR/su -c "/sbin/magic_mask.sh post-fs-data" >/dev/null 2>&1; echo $?` -ne 0 ]; then
|
|
/sbin/magic_mask.sh post-fs-data
|
|
fi
|
|
;;
|
|
service )
|
|
# su call shall always work
|
|
if [ `$DIR/su -c "/sbin/magic_mask.sh service" >/dev/null 2>&1; echo $?` -ne 0 ]; then
|
|
/sbin/magic_mask.sh service
|
|
fi
|
|
;;
|
|
root )
|
|
# This will only be used in phh root
|
|
$DIR/su -c "/sbin/magic_mask.sh root"
|
|
;;
|
|
esac |