From 5c1886c8f5c1a316e878183a8f3605c0e8e2d2b9 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Fri, 10 Aug 2018 18:59:14 +0800 Subject: [PATCH] Update scripts --- app/build.gradle | 2 +- .../magisk/services/OnBootService.java | 4 +-- app/src/full/res/raw/utils.sh | 18 ++++++------ scripts/addon.d.sh | 3 +- scripts/flash_script.sh | 3 +- scripts/magisk_uninstaller.sh | 10 +++---- scripts/util_functions.sh | 28 ++++++++----------- 7 files changed, 32 insertions(+), 36 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 7f9664f6f..abc79d254 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -22,7 +22,7 @@ android { productFlavors { full { - versionCode 132 + versionCode 134 versionName "5.8.3" javaCompileOptions { annotationProcessorOptions { diff --git a/app/src/full/java/com/topjohnwu/magisk/services/OnBootService.java b/app/src/full/java/com/topjohnwu/magisk/services/OnBootService.java index 6e887f7a3..6ad589f10 100644 --- a/app/src/full/java/com/topjohnwu/magisk/services/OnBootService.java +++ b/app/src/full/java/com/topjohnwu/magisk/services/OnBootService.java @@ -25,9 +25,7 @@ public class OnBootService extends JobIntentService { * Check for dtbo status every boot time, and prompt user * to reboot if dtbo wasn't patched and patched by Magisk Manager. * */ - Shell shell = Shell.newInstance(); - if (shell.getStatus() >= Shell.ROOT_SHELL && - Boolean.parseBoolean(ShellUtils.fastCmd(shell, "mm_patch_dtbo"))) + if (Shell.rootAccess() && ShellUtils.fastCmdResult("mm_patch_dtbo")) NotificationMgr.dtboPatched(); } } diff --git a/app/src/full/res/raw/utils.sh b/app/src/full/res/raw/utils.sh index ecdfa9ac6..b20cb62a5 100644 --- a/app/src/full/res/raw/utils.sh +++ b/app/src/full/res/raw/utils.sh @@ -54,21 +54,22 @@ fix_env() { } direct_install() { - flash_boot_image $1 $2 - rm -f $1 rm -rf /data/adb/magisk/* 2>/dev/null mkdir -p /data/adb/magisk 2>/dev/null chmod 700 /data/adb cp -rf $3/* /data/adb/magisk + echo "- Flashing new boot image" + flash_image $1 $2 + rm -f $1 rm -rf $3 } mm_patch_dtbo() { if $KEEPVERITY; then - echo false + return 1 else find_dtbo_image - patch_dtbo_image >/dev/null 2>&1 && echo true || echo false + patch_dtbo_image fi } @@ -83,12 +84,11 @@ restore_imgs() { find_boot_image find_dtbo_image - magisk --unlock-blocks 2>/dev/null - if [ -b "$DTBOIMAGE" -a -f $STOCKDTBO ]; then - gzip -d < $STOCKDTBO > $DTBOIMAGE + if [ -f $STOCKDTBO -a -b "$DTBOIMAGE" ]; then + flash_image $STOCKDTBO $DTBOIMAGE fi - if [ -b "$BOOTIMAGE" -a -f $STOCKBOOT ]; then - gzip -d < $STOCKBOOT | cat - /dev/zero > $BOOTIMAGE 2>/dev/null + if [ -f $STOCKBOOT -a -b "$BOOTIMAGE" ]; then + flash_image $STOCKBOOT $BOOTIMAGE return 0 fi return 1 diff --git a/scripts/addon.d.sh b/scripts/addon.d.sh index e37211eb1..4e368d09f 100644 --- a/scripts/addon.d.sh +++ b/scripts/addon.d.sh @@ -64,7 +64,8 @@ installation() { # Source the boot patcher . ./boot_patch.sh "$BOOTIMAGE" - flash_boot_image new-boot.img "$BOOTIMAGE" + ui_print "- Flashing new boot image" + flash_image new-boot.img "$BOOTIMAGE" rm -f new-boot.img if [ -f stock_boot* ]; then diff --git a/scripts/flash_script.sh b/scripts/flash_script.sh index 4af9266bc..5f90834a8 100644 --- a/scripts/flash_script.sh +++ b/scripts/flash_script.sh @@ -114,7 +114,8 @@ cd $MAGISKBIN # Source the boot patcher . ./boot_patch.sh "$BOOTIMAGE" -flash_boot_image new-boot.img "$BOOTIMAGE" +ui_print "- Flashing new boot image" +flash_image new-boot.img "$BOOTIMAGE" rm -f new-boot.img if [ -f stock_boot* ]; then diff --git a/scripts/magisk_uninstaller.sh b/scripts/magisk_uninstaller.sh index aaa05e55f..84a00c496 100644 --- a/scripts/magisk_uninstaller.sh +++ b/scripts/magisk_uninstaller.sh @@ -95,17 +95,16 @@ case $? in ;; 1 ) # Magisk patched ui_print "- Magisk patched image detected" - ./magisk --unlock-blocks 2>/dev/null # Find SHA1 of stock boot image [ -z $SHA1 ] && SHA1=`./magiskboot --cpio ramdisk.cpio sha1 2>/dev/null` STOCKBOOT=/data/stock_boot_${SHA1}.img.gz STOCKDTBO=/data/stock_dtbo.img.gz if [ -f $STOCKBOOT ]; then ui_print "- Restoring stock boot image" - gzip -d < $STOCKBOOT | cat - /dev/zero > $BOOTIMAGE 2>/dev/null - if [ -f $DTBOIMAGE -a -f $STOCKDTBO ]; then + flash_image $STOCKBOOT $BOOTIMAGE + if [ -f $STOCKDTBO -a -b "$DTBOIMAGE" ]; then ui_print "- Restoring stock dtbo image" - gzip -d < $STOCKDTBO > $DTBOIMAGE + flash_image $STOCKDTBO $DTBOIMAGE fi else ui_print "! Boot image backup unavailable" @@ -114,7 +113,8 @@ case $? in ./magiskboot --repack $BOOTIMAGE # Sign chromeos boot $CHROMEOS && sign_chromeos - flash_boot_image new-boot.img $BOOTIMAGE + ui_print "- Flashing restored boot image" + flash_image new-boot.img $BOOTIMAGE fi ;; 2 ) # Other patched diff --git a/scripts/util_functions.sh b/scripts/util_functions.sh index 34a4faf21..9282cc196 100644 --- a/scripts/util_functions.sh +++ b/scripts/util_functions.sh @@ -189,29 +189,25 @@ find_boot_image() { fi } -flash_boot_image() { +flash_image() { # Make sure all blocks are writable $MAGISKBIN/magisk --unlock-blocks 2>/dev/null case "$1" in - *.gz) COMMAND="gzip -d < '$1'";; - *) COMMAND="cat '$1'";; + *.gz) COM1="$MAGISKBIN/magiskboot --decompress '$1' - 2>/dev/null";; + *) COM1="cat '$1'";; esac if $BOOTSIGNED; then - SIGNCOM="$BOOTSIGNER -sign" - ui_print "- Sign boot image with test keys" + COM2="$BOOTSIGNER -sign" + ui_print "- Sign image with test keys" else - SIGNCOM="cat -" + COM2="cat -" + fi + if [ -b "$2" ]; then + eval $COM1 | eval $COM2 | cat - /dev/zero > "$2" 2>/dev/null + else + ui_print "- Not block device, storing image" + eval $COM1 | eval $COM2 > "$2" 2>/dev/null fi - case "$2" in - /dev/block/*) - ui_print "- Flashing new boot image" - eval $COMMAND | eval $SIGNCOM | cat - /dev/zero 2>/dev/null | dd of="$2" bs=4096 2>/dev/null - ;; - *) - ui_print "- Storing new boot image" - eval $COMMAND | eval $SIGNCOM | dd of="$2" bs=4096 2>/dev/null - ;; - esac } find_dtbo_image() {