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)
This commit is contained in:
osm0sis committed 2022-12-01 19:59:09 -04:00
1 parent dd66ae6335
commit 1fd27023b8
2 files changed
+21 -21

No files matched your search

+20 -20
View File
@@ -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=<partition filename> 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;