diff --git a/scripts/boot_patch.sh b/scripts/boot_patch.sh index 8c902bca4..e24f02f6b 100644 --- a/scripts/boot_patch.sh +++ b/scripts/boot_patch.sh @@ -29,24 +29,6 @@ # Functions ########################################################################################## -# Call ui_print_wrap if exists, or else simply use echo -# Useful when wrapped in flashable zip -ui_print_wrap() { - type ui_print >/dev/null 2>&1 && ui_print "$1" || echo "$1" -} - -# Call abort if exists, or else show error message and exit -# Essential when wrapped in flashable zip -abort_wrap() { - type abort >/dev/null 2>&1 - if [ $? -ne 0 ]; then - ui_print_wrap "$1" - exit 1 - else - abort "$1" - fi -} - # Pure bash dirname implementation dirname_wrap() { case "$1" in @@ -65,16 +47,6 @@ basename_wrap() { echo ${1##*/} } -grep_prop() { - REGEX="s/^$1=//p" - shift - FILES=$@ - if [ -z "$FILES" ]; then - FILES='/system/build.prop' - fi - cat $FILES 2>/dev/null | sed -n "$REGEX" | head -n 1 -} - # --cpio-add cpio_add() { ./magiskboot --cpio-add ramdisk.cpio $1 $2 $3 @@ -94,14 +66,9 @@ cpio_mkdir() { # Initialization ########################################################################################## -[ -z $1 ] && abort_wrap "This script requires a boot image as a parameter" +BOOTIMAGE="$1" -cwd=`pwd` -cd "`dirname_wrap $1`" -BOOTIMAGE="`pwd`/`basename_wrap $1`" -cd $cwd - -[ -e "$BOOTIMAGE" ] || abort_wrap "$BOOTIMAGE does not exist!" +[ -e "$BOOTIMAGE" ] || (echo "$BOOTIMAGE does not exist!" && exit 1) # Presets [ -z $KEEPVERITY ] && KEEPVERITY=false @@ -129,23 +96,23 @@ migrate_boot_backup CHROMEOS=false -ui_print_wrap "- Unpacking boot image" +ui_print "- Unpacking boot image" ./magiskboot --unpack "$BOOTIMAGE" case $? in 1 ) - abort_wrap "! Unable to unpack boot image" + abort "! Unable to unpack boot image" ;; 2 ) CHROMEOS=true ;; 3 ) - ui_print_wrap "! Sony ELF32 format detected" - abort_wrap "! Please use BootBridge from @AdrianDC to flash Magisk" + ui_print "! Sony ELF32 format detected" + abort "! Please use BootBridge from @AdrianDC to flash Magisk" ;; 4 ) - ui_print_wrap "! Sony ELF64 format detected" - abort_wrap "! Stock kernel cannot be patched, please use a custom kernel" + ui_print "! Sony ELF64 format detected" + abort "! Stock kernel cannot be patched, please use a custom kernel" esac ########################################################################################## @@ -153,12 +120,12 @@ esac ########################################################################################## # Test patch status and do restore, after this section, ramdisk.cpio.orig is guaranteed to exist -ui_print_wrap "- Checking ramdisk status" +ui_print "- Checking ramdisk status" ./magiskboot --cpio-test ramdisk.cpio case $? in 0 ) # Stock boot - ui_print_wrap "- Stock boot image detected!" - ui_print_wrap "- Backing up stock boot image" + ui_print "- Stock boot image detected!" + ui_print "- Backing up stock boot image" SHA1=`./magiskboot --sha1 "$BOOTIMAGE" 2>/dev/null` STOCKDUMP=stock_boot_${SHA1}.img dd if="$BOOTIMAGE" of=$STOCKDUMP @@ -166,22 +133,22 @@ case $? in cp -af ramdisk.cpio ramdisk.cpio.orig ;; 1 ) # Magisk patched - ui_print_wrap "- Magisk patched image detected!" + ui_print "- Magisk patched image detected!" # Find SHA1 of stock boot image [ -z $SHA1 ] && SHA1=`./magiskboot --cpio-stocksha1 ramdisk.cpio 2>/dev/null` OK=false ./magiskboot --cpio-restore ramdisk.cpio if [ $? -eq 0 ]; then - ui_print_wrap "- Ramdisk restored from internal backup" + ui_print "- Ramdisk restored from internal backup" OK=true else # Restore failed - ui_print_wrap "! Cannot restore from internal backup" + ui_print "! Cannot restore from internal backup" # If we are root and SHA1 known, we try to find the stock backup if $ROOT && [ ! -z $SHA1 ]; then STOCKDUMP=/data/stock_boot_${SHA1}.img if [ -f ${STOCKDUMP}.gz ]; then - ui_print_wrap "- Stock boot image backup found" + ui_print "- Stock boot image backup found" ./magiskboot --decompress ${STOCKDUMP}.gz stock_boot.img ./magiskboot --unpack stock_boot.img rm -f stock_boot.img @@ -190,14 +157,14 @@ case $? in fi fi if ! $OK; then - ui_print_wrap "! Ramdisk restoration incomplete" - ui_print_wrap "! Will still try to continue installation" + ui_print "! Ramdisk restoration incomplete" + ui_print "! Will still try to continue installation" fi cp -af ramdisk.cpio ramdisk.cpio.orig ;; 2 ) # Other patched - ui_print_wrap "! Boot image patched by other programs!" - abort_wrap "! Please restore stock boot image" + ui_print "! Boot image patched by other programs!" + abort "! Please restore stock boot image" ;; esac @@ -205,7 +172,7 @@ esac # Ramdisk patches ########################################################################################## -ui_print_wrap "- Patching ramdisk" +ui_print "- Patching ramdisk" if [ ! -z $SHA1 ]; then cp init.magisk.rc init.magisk.rc.bak @@ -257,8 +224,8 @@ A1020054011440B93FA00F7140020054010840B93FA00F71E0010054001840B91FA00F7181010054 736B69705F696E697472616D6673 \ 77616E745F696E697472616D6673 -ui_print_wrap "- Repacking boot image" -./magiskboot --repack "$BOOTIMAGE" || abort_wrap "! Unable to repack boot image!" +ui_print "- Repacking boot image" +./magiskboot --repack "$BOOTIMAGE" || abort "! Unable to repack boot image!" # Sign chromeos boot $CHROMEOS && sign_chromeos diff --git a/scripts/flash_script.sh b/scripts/flash_script.sh index 60ad9926b..1ffba2b15 100644 --- a/scripts/flash_script.sh +++ b/scripts/flash_script.sh @@ -31,7 +31,7 @@ umask 022 OUTFD=$2 ZIP=$3 -if [ ! -d "$COMMONDIR" ]; then +if [ ! -f $COMMONDIR/util_functions.sh ]; then echo "! Unable to extract zip file!" exit 1 fi diff --git a/scripts/magisk_uninstaller.sh b/scripts/magisk_uninstaller.sh index 588ed46ba..1cd859e19 100644 --- a/scripts/magisk_uninstaller.sh +++ b/scripts/magisk_uninstaller.sh @@ -31,8 +31,16 @@ if [ ! -f $MAGISKBIN/magiskboot -o ! -f $MAGISKBIN/util_functions.sh ]; then exit 1 fi -# Load utility functions -. $MAGISKBIN/util_functions.sh +if $BOOTMODE; then + # Load utility functions + . $MAGISKBIN/util_functions.sh + boot_actions + mount_partitions +else + recovery_actions +fi + +cd $MAGISKBIN # Find the boot image find_boot_image @@ -40,7 +48,7 @@ find_boot_image ui_print "- Found Boot Image: $BOOTIMAGE" -cd $MAGISKBIN +migrate_boot_backup ui_print "- Unpacking boot image" ./magiskboot --unpack "$BOOTIMAGE" @@ -61,9 +69,8 @@ case $? in abort "! Stock kernel cannot be patched, please use a custom kernel" esac -migrate_boot_backup - # Detect boot image state +ui_print "- Checking ramdisk status" ./magiskboot --cpio-test ramdisk.cpio case $? in 0 ) # Stock boot @@ -109,6 +116,6 @@ rm -rf /cache/magisk.log /cache/last_magisk.log /cache/magiskhide.log /cache/.d /cache/magisk /cache/magisk_merge /cache/magisk_mount /cache/unblock /cache/magisk_uninstaller.sh \ /data/Magisk.apk /data/magisk.apk /data/magisk.img /data/magisk_merge.img /data/magisk_debug.log \ /data/busybox /data/magisk /data/custom_ramdisk_patch.sh /data/property/*magisk* \ - /data/app/com.topjohnwu.magisk* /data/user/*/com.topjohnwu.magisk 2>/dev/null + /data/app/com.topjohnwu.magisk* /data/user*/*/com.topjohnwu.magisk 2>/dev/null -$BOOTMODE && reboot +$BOOTMODE && reboot || recovery_cleanup diff --git a/scripts/uninstaller_loader.sh b/scripts/uninstaller_loader.sh index bb58893dc..f1b8b89a9 100644 --- a/scripts/uninstaller_loader.sh +++ b/scripts/uninstaller_loader.sh @@ -24,7 +24,7 @@ OUTFD=$2 ZIP=$3 if [ ! -f $INSTALLER/util_functions.sh ]; then - echo "! Failed: Unable to extract zip file!" + echo "! Unable to extract zip file!" exit 1 fi @@ -40,13 +40,8 @@ ui_print "************************" ui_print " Magisk Uninstaller " ui_print "************************" -ui_print "- Mounting /system, /vendor, /cache, /data" -mount -o ro /system 2>/dev/null -mount -o ro /vendor 2>/dev/null -mount /cache 2>/dev/null -mount /data 2>/dev/null - -[ -f /system/build.prop ] || abort "! /system could not be mounted!" +is_mounted /data || mount /data +mount_partitions api_level_arch_detect @@ -61,15 +56,15 @@ BINDIR=$INSTALLER/$ARCH MAGISKBIN=/data/magisk if is_mounted /data; then + # Save our stock boot image dump before removing it + [ -f $MAGISKBIN/stock_boot* ] && mv $MAGISKBIN/stock_boot* /data # Copy the binaries to /data/magisk, in case they do not exist rm -rf $MAGISKBIN 2>/dev/null mkdir -p $MAGISKBIN cp -af $BINDIR/. $CHROMEDIR $TMPDIR/bin/busybox $INSTALLER/util_functions.sh $MAGISKBIN chmod -R 755 $MAGISKBIN # Run the acttual uninstallation - recovery_actions . $INSTALLER/magisk_uninstaller.sh - recovery_cleanup else ui_print "! Data unavailable" ui_print "! Placing uninstall script to /cache" diff --git a/scripts/update_binary.sh b/scripts/update_binary.sh index 66391c4d1..845159d1b 100644 --- a/scripts/update_binary.sh +++ b/scripts/update_binary.sh @@ -6,7 +6,7 @@ dirname_wrap() { esac } [ "$1" = "indep" ] && INDEP=true || INDEP=false -$INDEP && TMPDIR="`cd "\`dirname_wrap "${BASH_SOURCE:-$0}"\`" && pwd`" || TMPDIR=/dev/tmp +$INDEP && TMPDIR="`dirname_wrap "${BASH_SOURCE:-$0}"`" || TMPDIR=/dev/tmp INSTALLER=$TMPDIR/install; BBDIR=$TMPDIR/bin EXBIN=$BBDIR/b64xz; BBBIN=$BBDIR/busybox $INDEP || rm -rf $TMPDIR 2>/dev/null;