Magisk/app-core/src/main/res/raw/utils.sh

122 lines
2.8 KiB
Bash
Raw Normal View History

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
2019-02-03 14:50:49 +00:00
local OLDPATH="$PATH"
PATH=/sbin:/system/bin:/vendor/bin
2018-07-04 09:15:26 +00:00
sh update-binary extract
2019-02-03 14:50:49 +00:00
PATH="$OLDPATH"
./busybox rm -f /sbin/.magisk/busybox/*
/sbin/.magisk/mirror/bin/busybox --install -s /sbin/.magisk/busybox
2018-07-04 09:15:26 +00:00
rm -f update-binary magisk.apk
cd /
}
2019-02-11 22:14:07 +00:00
run_migrations() {
# Move the stock backups
if [ -f /data/magisk/stock_boot* ]; then
mv /data/magisk/stock_boot* /data 2>/dev/null
fi
if [ -f /data/adb/magisk/stock_boot* ]; then
mv /data/adb/magisk/stock_boot* /data 2>/dev/null
fi
# Remove old dbs
rm -f /data/user*/*/magisk.db
[ -L /data/magisk.img ] || mv /data/magisk.img /data/adb/magisk.img 2>/dev/null
}
2018-07-04 09:15:26 +00:00
direct_install() {
rm -rf /data/adb/magisk/* 2>/dev/null
mkdir -p /data/adb/magisk 2>/dev/null
chmod 700 /data/adb
2018-08-12 18:57:03 +00:00
cp -rf $1/* /data/adb/magisk
rm -rf /data/adb/magisk/new-boot.img
2018-08-10 10:59:14 +00:00
echo "- Flashing new boot image"
2018-08-12 18:57:03 +00:00
flash_image $1/new-boot.img $2
if [ $? -ne 0 ]; then
echo "! Insufficient partition size"
return 1
fi
2018-08-12 18:57:03 +00:00
rm -rf $1
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-11-20 10:24:40 +00:00
local SHA1=`grep_prop SHA1 /sbin/.magisk/config`
[ -z $SHA1 ] && local SHA1=`cat /.backup/.sha1`
2018-06-26 21:58:56 +00:00
[ -z $SHA1 ] && return 1
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
}
post_ota() {
cd $1
chmod 755 bootctl
2018-12-13 11:05:19 +00:00
./bootctl hal-info || return
[ `./bootctl get-current-slot` -eq 0 ] && SLOT_NUM=1 || SLOT_NUM=0
./bootctl set-active-boot-slot $SLOT_NUM
2019-01-13 18:08:39 +00:00
echo "BCTRL=${1}/bootctl;\$BCTRL mark-boot-successful;rm -f \$BCTRL \$0" > post-fs-data.d/post_ota.sh
chmod 755 post-fs-data.d/post_ota.sh
cd /
}
add_hosts_module() {
# Do not touch existing hosts module
[ -d /sbin/.magisk/img/hosts ] && return
cd /sbin/.magisk/img
mkdir -p hosts/system/etc
cat << EOF > hosts/module.prop
id=hosts
name=Systemless Hosts
version=1.0
versionCode=1
author=Magisk Manager
description=Magisk Manager built-in systemless hosts module
minMagisk=17000
EOF
if [ -f .core/hosts ]; then
# Migrate old hosts file to new module
mv -f .core/hosts hosts/system/etc/hosts
else
2018-11-27 08:26:05 +00:00
cp -f /system/etc/hosts hosts/system/etc/hosts
fi
2018-11-27 08:26:05 +00:00
magisk --clone-attr /system/etc/hosts hosts/system/etc/hosts
touch hosts/update
touch hosts/auto_mount
cd /
}
rm_launch() {
db_clean $1
pm uninstall $2
2018-12-09 08:52:13 +00:00
am start -n ${3}/a.c
exit
}