mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-06-12 05:07:45 +02:00
scripts: refactor and major addon.d fixes
- remove redundant addon.d.sh script bits that were covered elsewhere ($TMPDIR in util_functions.sh, find_dtbo_image in patch_dtbo_image) - refactor addon.d.sh and flash_script.sh for simplicity and readability, and put common flashing script in util_functions.sh (as patch_boot_image), which should greatly help avoid them getting out of sync going forward and fixes compressing ramdisk support and post-patch cleanup for addon.d - add check_data to addon.d.sh since moving stock_boot* and stock_dtbo* backups depend on it and so weren't occuring with addon.d - fix find_manager_apk with working fallback for recovery addon.d execution (where `magisk --sqlite` will not work for hidden Manager), Manager DynAPK hiding, and print a useful log warning if an APK can't be found
This commit is contained in:
@ -20,9 +20,6 @@ else
|
||||
fi
|
||||
|
||||
initialize() {
|
||||
# This path should work in any cases
|
||||
TMPDIR=/dev/tmp
|
||||
|
||||
mount /data 2>/dev/null
|
||||
|
||||
MAGISKBIN=/data/adb/magisk
|
||||
@ -43,71 +40,43 @@ initialize() {
|
||||
fi
|
||||
}
|
||||
|
||||
show_logo() {
|
||||
ui_print "************************"
|
||||
ui_print "* Magisk v$MAGISK_VER addon.d"
|
||||
ui_print "************************"
|
||||
}
|
||||
|
||||
installation() {
|
||||
find_manager_apk
|
||||
get_flags
|
||||
find_boot_image
|
||||
find_dtbo_image
|
||||
[ -z $BOOTIMAGE ] && abort "! Unable to detect target image"
|
||||
ui_print "- Target image: $BOOTIMAGE"
|
||||
[ -z $DTBOIMAGE ] || ui_print "- DTBO image: $DTBOIMAGE"
|
||||
|
||||
remove_system_su
|
||||
|
||||
[ -f $APK ] && eval $BOOTSIGNER -verify < $BOOTIMAGE && BOOTSIGNED=true
|
||||
$BOOTSIGNED && ui_print "- Boot image is signed with AVB 1.0"
|
||||
|
||||
SOURCEDMODE=true
|
||||
cd $MAGISKBIN
|
||||
|
||||
# Source the boot patcher
|
||||
. ./boot_patch.sh "$BOOTIMAGE"
|
||||
|
||||
ui_print "- Flashing new boot image"
|
||||
flash_image new-boot.img "$BOOTIMAGE" || abort "! Insufficient partition size"
|
||||
rm -f new-boot.img
|
||||
|
||||
if [ -f stock_boot* ]; then
|
||||
rm -f /data/stock_boot* 2>/dev/null
|
||||
$DATA && mv stock_boot* /data
|
||||
fi
|
||||
|
||||
$KEEPVERITY || patch_dtbo_image
|
||||
|
||||
if [ -f stock_dtbo* ]; then
|
||||
rm -f /data/stock_dtbo* 2>/dev/null
|
||||
$DATA && mv stock_dtbo* /data
|
||||
fi
|
||||
|
||||
cd /
|
||||
}
|
||||
|
||||
finalize() {
|
||||
ui_print "- Done"
|
||||
exit 0
|
||||
}
|
||||
|
||||
main() {
|
||||
if ! $backuptool_ab; then
|
||||
# Wait for post addon.d-v1 processes to finish
|
||||
sleep 5
|
||||
fi
|
||||
|
||||
$BOOTMODE || recovery_actions
|
||||
show_logo
|
||||
|
||||
ui_print "************************"
|
||||
ui_print "* Magisk v$MAGISK_VER addon.d"
|
||||
ui_print "************************"
|
||||
|
||||
mount_partitions
|
||||
check_data
|
||||
get_flags
|
||||
|
||||
if $backuptool_ab; then
|
||||
# Swap the slot for addon.d-v2
|
||||
if [ ! -z $SLOT ]; then [ $SLOT = _a ] && SLOT=_b || SLOT=_a; fi
|
||||
fi
|
||||
installation
|
||||
|
||||
find_boot_image
|
||||
|
||||
[ -z $BOOTIMAGE ] && abort "! Unable to detect target image"
|
||||
ui_print "- Target image: $BOOTIMAGE"
|
||||
|
||||
remove_system_su
|
||||
find_manager_apk
|
||||
patch_boot_image
|
||||
|
||||
cd /
|
||||
# Cleanups
|
||||
$BOOTMODE || recovery_cleanup
|
||||
finalize
|
||||
rm -rf $TMPDIR
|
||||
|
||||
ui_print "- Done"
|
||||
exit 0
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
|
Reference in New Issue
Block a user