2018-04-14 10:08:53 +00:00
|
|
|
db_sepatch() {
|
|
|
|
magiskpolicy --live 'create magisk_file' 'attradd magisk_file mlstrustedobject' \
|
|
|
|
'allow * magisk_file file *' 'allow * magisk_file dir *' \
|
|
|
|
'allow magisk_file * filesystem associate'
|
|
|
|
}
|
|
|
|
|
2018-04-05 17:54:09 +00:00
|
|
|
db_clean() {
|
2018-02-18 04:41:58 +00:00
|
|
|
local USERID=$1
|
|
|
|
local DIR="/sbin/.core/db-${USERID}"
|
|
|
|
umount -l /data/user*/*/*/databases/su.db $DIR $DIR/*
|
|
|
|
rm -rf $DIR
|
2018-04-22 05:53:25 +00:00
|
|
|
[ "$USERID" = "*" ] && rm -fv /data/adb/magisk.db*
|
2018-02-18 10:12:12 +00:00
|
|
|
}
|
|
|
|
|
2018-04-05 17:54:09 +00:00
|
|
|
db_init() {
|
2018-06-11 16:04:36 +00:00
|
|
|
# Temporary let the folder rw by anyone
|
2018-04-14 10:08:53 +00:00
|
|
|
chcon u:object_r:magisk_file:s0 /data/adb
|
2018-02-18 10:12:12 +00:00
|
|
|
chmod 777 /data/adb
|
|
|
|
}
|
|
|
|
|
2018-04-05 17:54:09 +00:00
|
|
|
db_restore() {
|
2018-02-18 10:12:12 +00:00
|
|
|
chmod 700 /data/adb
|
2018-06-11 16:04:36 +00:00
|
|
|
magisk --restorecon
|
2018-02-18 04:41:58 +00:00
|
|
|
}
|
|
|
|
|
2018-04-05 17:54:09 +00:00
|
|
|
db_setup() {
|
2018-02-18 04:41:58 +00:00
|
|
|
local USER=$1
|
|
|
|
local USERID=$(($USER / 100000))
|
|
|
|
local DIR=/sbin/.core/db-${USERID}
|
|
|
|
mkdir -p $DIR
|
|
|
|
touch $DIR/magisk.db
|
2018-02-18 10:12:12 +00:00
|
|
|
mount -o bind /data/adb/magisk.db $DIR/magisk.db
|
2018-04-22 05:53:25 +00:00
|
|
|
rm -f /data/adb/magisk.db-*
|
2018-04-14 10:08:53 +00:00
|
|
|
chcon u:object_r:magisk_file:s0 $DIR $DIR/*
|
2018-02-18 04:41:58 +00:00
|
|
|
chmod 700 $DIR
|
|
|
|
chown $USER.$USER $DIR
|
|
|
|
chmod 666 $DIR/*
|
|
|
|
}
|
2018-05-13 10:14:10 +00:00
|
|
|
|
|
|
|
env_check() {
|
|
|
|
for file in busybox magisk magiskboot magiskinit util_functions.sh boot_patch.sh; do
|
2018-06-25 16:29:01 +00:00
|
|
|
[ -f /data/adb/magisk/$file ] || return 1
|
2018-05-13 10:14:10 +00:00
|
|
|
done
|
|
|
|
return 0
|
|
|
|
}
|
2018-06-25 16:29:01 +00:00
|
|
|
|
2018-07-04 09:15:26 +00:00
|
|
|
fix_env() {
|
|
|
|
cd /data/adb/magisk
|
|
|
|
sh update-binary extract
|
|
|
|
rm -f update-binary magisk.apk
|
|
|
|
cd /
|
|
|
|
rm -rf /sbin/.core/busybox/*
|
|
|
|
/sbin/.core/mirror/bin/busybox --install -s /sbin/.core/busybox
|
|
|
|
}
|
|
|
|
|
|
|
|
direct_install() {
|
|
|
|
rm -rf /data/adb/magisk/* 2>/dev/null
|
|
|
|
mkdir -p /data/adb/magisk 2>/dev/null
|
|
|
|
chmod 700 /data/adb
|
2018-07-05 09:29:44 +00:00
|
|
|
cp -rf $3/* /data/adb/magisk
|
2018-08-10 10:59:14 +00:00
|
|
|
echo "- Flashing new boot image"
|
|
|
|
flash_image $1 $2
|
2018-08-11 07:56:12 +00:00
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo "! Insufficient partition size"
|
|
|
|
return 1
|
|
|
|
fi
|
2018-08-10 10:59:14 +00:00
|
|
|
rm -f $1
|
2018-07-04 09:15:26 +00:00
|
|
|
rm -rf $3
|
2018-08-11 07:56:12 +00:00
|
|
|
return 0
|
2018-07-04 09:15:26 +00:00
|
|
|
}
|
|
|
|
|
2018-06-25 16:29:01 +00:00
|
|
|
mm_patch_dtbo() {
|
|
|
|
if $KEEPVERITY; then
|
2018-08-10 10:59:14 +00:00
|
|
|
return 1
|
2018-06-25 16:29:01 +00:00
|
|
|
else
|
|
|
|
find_dtbo_image
|
2018-08-10 10:59:14 +00:00
|
|
|
patch_dtbo_image
|
2018-06-25 16:29:01 +00:00
|
|
|
fi
|
|
|
|
}
|
2018-06-26 21:58:56 +00:00
|
|
|
|
|
|
|
restore_imgs() {
|
2018-07-20 17:59:28 +00:00
|
|
|
local SHA1=`cat /.backup/.sha1`
|
|
|
|
[ -z $SHA1 ] && local SHA1=`grep_prop #STOCKSHA1`
|
2018-06-26 21:58:56 +00:00
|
|
|
[ -z $SHA1 ] && return 1
|
2018-07-20 17:59:28 +00:00
|
|
|
local STOCKBOOT=/data/stock_boot_${SHA1}.img.gz
|
|
|
|
local STOCKDTBO=/data/stock_dtbo.img.gz
|
2018-06-26 21:58:56 +00:00
|
|
|
[ -f $STOCKBOOT ] || return 1
|
|
|
|
|
|
|
|
find_boot_image
|
|
|
|
find_dtbo_image
|
|
|
|
|
2018-08-10 10:59:14 +00:00
|
|
|
if [ -f $STOCKDTBO -a -b "$DTBOIMAGE" ]; then
|
|
|
|
flash_image $STOCKDTBO $DTBOIMAGE
|
2018-06-26 21:58:56 +00:00
|
|
|
fi
|
2018-08-10 10:59:14 +00:00
|
|
|
if [ -f $STOCKBOOT -a -b "$BOOTIMAGE" ]; then
|
|
|
|
flash_image $STOCKBOOT $BOOTIMAGE
|
2018-06-26 21:58:56 +00:00
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
return 1
|
|
|
|
}
|
2018-07-20 17:59:28 +00:00
|
|
|
|
|
|
|
post_ota() {
|
|
|
|
cd $1
|
|
|
|
chmod 755 bootctl
|
|
|
|
./bootctl hal-info || return
|
|
|
|
[ `./bootctl get-current-slot` -eq 0 ] && SLOT_NUM=1 || SLOT_NUM=0
|
|
|
|
./bootctl set-active-boot-slot $SLOT_NUM
|
|
|
|
echo '${0%/*}/../bootctl mark-boot-successful;rm -f ${0%/*}/../bootctl $0' > post-fs-data.d/post_ota.sh
|
|
|
|
chmod 755 post-fs-data.d/post_ota.sh
|
|
|
|
cd /
|
|
|
|
}
|