From 1fd27023b8c4a1b9bf1268ad8ffd03510cf157e0 Mon Sep 17 00:00:00 2001 From: osm0sis Date: Thu, 1 Dec 2022 19:56:45 -0400 Subject: [PATCH] AK3: partition auto-detect improvements - remove whitelist to allow auto-detect for any partition based on by-name filename only - add more error catching for manually specified partition paths - restore Huawei Treble partitions to auto-detect (kernel, ramdisk and recovery_ramdisk) --- META-INF/com/google/android/updater-script | 2 +- tools/ak3-core.sh | 40 +++++++++++----------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/META-INF/com/google/android/updater-script b/META-INF/com/google/android/updater-script index b267231..620758b 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=20221111 +# AK_BASE_VERSION=20221201 diff --git a/tools/ak3-core.sh b/tools/ak3-core.sh index 70e1e09..e868d27 100755 --- a/tools/ak3-core.sh +++ b/tools/ak3-core.sh @@ -821,17 +821,24 @@ setup_ak() { touch $blockfiles/current; fi; - # target block partition detection enabled by block=boot recovery init_boot vendor_boot or auto (from anykernel.sh) + # target block partition detection enabled by block= or auto (from anykernel.sh) case $block in - auto|"") block=boot;; + auto|"") block=boot;; esac; case $block in - boot|recovery|init_boot|vendor_boot) + /dev/*) + if [ "$slot" ] && [ -e "$block$slot" ]; then + target=$block$slot; + elif [ -e "$block" ]; then + target=$block; + fi; + ;; + *) case $block in - boot) parttype="boot BOOT LNX android_boot bootimg KERN-A kernel KERNEL";; - recovery) parttype="recovery RECOVERY SOS android_recovery";; - init_boot) parttype="init_boot";; - vendor_boot) parttype="vendor_boot";; + 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";; + *) parttype=$block;; esac; for name in $parttype; do for part in $name$slot $name; do @@ -843,9 +850,7 @@ setup_ak() { else abort "Unable to determine mtd $block partition. Aborting..."; fi; - if [ -e /dev/mtd/$mtdname ]; then - target=/dev/mtd/$mtdname; - fi; + [ -e /dev/mtd/$mtdname ] && target=/dev/mtd/$mtdname; elif [ -e /dev/block/by-name/$part ]; then target=/dev/block/by-name/$part; elif [ -e /dev/block/bootdevice/by-name/$part ]; then @@ -860,18 +865,13 @@ setup_ak() { [ "$target" ] && break 2; done; done; - if [ "$target" ]; then - block=$(ls $target 2>/dev/null); - else - abort "Unable to determine $block partition. Aborting..."; - fi; - ;; - *) - if [ "$slot" ]; then - [ -e "$block$slot" ] && block=$block$slot; - fi; ;; esac; + if [ "$target" ]; then + block=$(ls $target 2>/dev/null); + else + abort "Unable to determine $block partition. Aborting..."; + fi; if [ ! "$no_block_display" ]; then ui_print "$block"; fi;