From aea91db9e771910c14ca450be2d92e0a5de2187a Mon Sep 17 00:00:00 2001 From: osm0sis Date: Fri, 6 Jan 2023 22:16:52 -0400 Subject: [PATCH] AK3: block=auto and flash_generic improvements - restore block=auto covering both ramdisk and boot, with ramdisk list favored to accomodate init_boot - favor mapper/by-name in flash_generic - add block/by-name over bootdevice/by-name in flash_generic to mirror block=auto/ path finding behavior --- META-INF/com/google/android/updater-script | 2 +- tools/ak3-core.sh | 20 +++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/META-INF/com/google/android/updater-script b/META-INF/com/google/android/updater-script index fe967ad..a9e940e 100644 --- a/META-INF/com/google/android/updater-script +++ b/META-INF/com/google/android/updater-script @@ -3,4 +3,4 @@ # Dummy file; update-binary is a shell script (DO NOT CHANGE) # # -# AK_BASE_VERSION=20230105 +# AK_BASE_VERSION=20230106 diff --git a/tools/ak3-core.sh b/tools/ak3-core.sh index e868d27..dc6fa0f 100755 --- a/tools/ak3-core.sh +++ b/tools/ak3-core.sh @@ -426,7 +426,7 @@ flash_generic() { done; if [ "$img" -a ! -f ${1}_flashed ]; then - for path in /dev/block/bootdevice/by-name /dev/block/mapper; do + for path in /dev/block/mapper /dev/block/by-name /dev/block/bootdevice/by-name; do for file in $1 $1$slot; do if [ -e $path/$file ]; then imgblock=$path/$file; @@ -445,7 +445,7 @@ flash_generic() { [ $? == 0 ] || abort "Failed to parse top-level vbmeta. Aborting..."; if [ "$flags" == "enabled" ]; then ui_print " " "dm-verity detected! Patching $avb..."; - for avbpath in /dev/block/bootdevice/by-name /dev/block/mapper; do + for avbpath in /dev/block/mapper /dev/block/by-name /dev/block/bootdevice/by-name; do for file in $avb $avb$slot; do if [ -e $avbpath/$file ]; then avbblock=$avbpath/$file; @@ -750,7 +750,7 @@ reset_ak() { # setup_ak setup_ak() { - local blockfiles parttype name part mtdmount mtdpart mtdname target; + local blockfiles plistboot plistinit plistreco parttype name part mtdmount mtdpart mtdname target; # slot detection enabled by is_slot_device=1 or auto (from anykernel.sh) case $is_slot_device in @@ -822,9 +822,6 @@ setup_ak() { fi; # target block partition detection enabled by block= or auto (from anykernel.sh) - case $block in - auto|"") block=boot;; - esac; case $block in /dev/*) if [ "$slot" ] && [ -e "$block$slot" ]; then @@ -834,10 +831,15 @@ setup_ak() { fi; ;; *) + # maintain brief lists of historic matching partition type names for boot, recovery and init_boot/ramdisk + plistboot="boot BOOT LNX android_boot bootimg KERN-A kernel KERNEL"; + plistreco="recovery RECOVERY SOS android_recovery recovery_ramdisk"; + plistinit="init_boot ramdisk"; case $block in - boot|kernel) parttype="boot BOOT LNX android_boot bootimg KERN-A kernel KERNEL";; - recovery|recovery_ramdisk) parttype="recovery RECOVERY SOS android_recovery recovery_ramdisk";; - init_boot|ramdisk) parttype="init_boot ramdisk";; + auto) parttype="$plistinit $plistboot";; + boot|kernel) parttype=$plistboot;; + recovery|recovery_ramdisk) parttype=$plistreco;; + init_boot|ramdisk) parttype=$plistinit;; *) parttype=$block;; esac; for name in $parttype; do