From e4e0c0eecb941581bdbb55423aa2d9c87406c764 Mon Sep 17 00:00:00 2001 From: osm0sis Date: Thu, 5 Jan 2023 20:38:16 -0400 Subject: [PATCH] Backend: add useful mount debugging stderr for logs --- META-INF/com/google/android/update-binary | 39 ++++++++++++---------- META-INF/com/google/android/updater-script | 2 +- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/META-INF/com/google/android/update-binary b/META-INF/com/google/android/update-binary index 494d65e..f2d79bd 100755 --- a/META-INF/com/google/android/update-binary +++ b/META-INF/com/google/android/update-binary @@ -66,7 +66,7 @@ mount_apex() { $BB unzip -qo $apex apex_payload.img -d /apex; $BB mv -f /apex/original_apex $dest.apex 2>/dev/null; $BB mv -f /apex/apex_payload.img $dest.img; - $BB mount -t ext4 -o ro,noatime $dest.img $dest 2>/dev/null; + $BB mount -t ext4 -o ro,noatime $dest.img $dest 2>/dev/null && echo "$dest (direct)" >&2; if [ $? != 0 ]; then while [ $num -lt 64 ]; do loop=/dev/block/loop$num; @@ -75,13 +75,13 @@ mount_apex() { num=$((num + 1)); $BB losetup $loop | $BB grep -q $dest.img && break; done; - $BB mount -t ext4 -o ro,loop,noatime $loop $dest; + $BB mount -t ext4 -o ro,loop,noatime $loop $dest && echo "$dest (loop)" >&2; if [ $? != 0 ]; then $BB losetup -d $loop 2>/dev/null; fi; fi; ;; - *) $BB mount -o bind $apex $dest;; + *) $BB mount -o bind $apex $dest && echo "$dest (bind)" >&2;; esac; done; for var in $($BB grep -o 'export .* /.*' /system_root/init.environ.rc | $BB awk '{ print $2 }'); do @@ -110,18 +110,19 @@ umount_apex() { } mount_all() { local byname mount slot system; + echo "Mounting..." >&2; if ! is_mounted /cache; then - $BB mount /cache 2>/dev/null && UMOUNT_CACHE=1; + $BB mount /cache 2>/dev/null && echo "/cache" >&2 && UMOUNT_CACHE=1; fi; if ! is_mounted /data; then - $BB mount /data && UMOUNT_DATA=1; + $BB mount /data && echo "/data" >&2 && UMOUNT_DATA=1; fi; - (for mount in /vendor /product /system_ext /persist; do - $BB mount -o ro -t auto $mount; - done) 2>/dev/null; + for mount in /vendor /product /system_ext /persist; do + $BB mount -o ro -t auto $mount 2>/dev/null && echo "$mount (fstab)" >&2; + done; setup_mountpoint $ANDROID_ROOT; if ! is_mounted $ANDROID_ROOT; then - $BB mount -o ro -t auto $ANDROID_ROOT 2>/dev/null; + $BB mount -o ro -t auto $ANDROID_ROOT 2>/dev/null && echo "$ANDROID_ROOT (\$ANDROID_ROOT)" >&2; fi; byname=bootdevice/by-name; [ -d /dev/block/$byname ] || byname=$($BB find /dev/block/platform -type d -name by-name 2>/dev/null | $BB head -n1 | $BB cut -d/ -f4-); @@ -132,15 +133,15 @@ mount_all() { /system) if ! is_mounted /system && ! is_mounted /system_root; then setup_mountpoint /system_root; - $BB mount -o ro -t auto /system_root; + $BB mount -o ro -t auto /system_root && echo "/system_root (fstab)" >&2; elif [ -f /system/system/build.prop ]; then setup_mountpoint /system_root; - $BB mount --move /system /system_root; + $BB mount --move /system /system_root && echo "/system_root (moved)" >&2; fi; if [ $? != 0 ]; then ($BB umount /system; $BB umount -l /system) 2>/dev/null; - $BB mount -o ro -t auto /dev/block/$byname/system$slot /system_root; + $BB mount -o ro -t auto /dev/block/$byname/system$slot /system_root && echo "/system_root (direct)" >&2; fi; ;; esac; @@ -148,20 +149,22 @@ mount_all() { for mount in /vendor /product /system_ext; do if ! is_mounted $mount && [ -L /system$mount -o -L /system_root$system$mount ]; then setup_mountpoint $mount; - $BB mount -o ro -t auto /dev/block/$byname$mount$slot $mount; + $BB mount -o ro -t auto /dev/block/$byname$mount$slot $mount && echo "$mount (direct)" >&2; fi; done; if is_mounted /system_root; then mount_apex; - $BB mount -o bind /system_root$system /system; + $BB mount -o bind /system_root$system /system && echo "/system (bind)" >&2; fi; if ! is_mounted /persist && [ -e /dev/block/bootdevice/by-name/persist ]; then setup_mountpoint /persist; - $BB mount -o ro -t auto /dev/block/bootdevice/by-name/persist /persist; + $BB mount -o ro -t auto /dev/block/bootdevice/by-name/persist /persist && echo "/persist (direct)" >&2; fi; + echo " " >&2; } umount_all() { local mount; + echo "Unmounting..." >&2; (if [ ! -d /postinstall/tmp ]; then $BB umount /system; $BB umount -l /system; @@ -232,6 +235,7 @@ restore_env() { [ "$OLD_LD_PRE" ] && export LD_PRELOAD=$OLD_LD_PRE; [ "$OLD_LD_CFG" ] && export LD_CONFIG_FILE=$OLD_LD_CFG; unset OLD_LD_PATH OLD_LD_PRE OLD_LD_CFG; + $BB sleep 1; umount_all; [ -L /etc_link ] && $BB rm -rf /etc/*; (for dir in /etc /apex /system_root /system /vendor /product /system_ext /persist; do @@ -432,7 +436,7 @@ do_modules() { cd $AKHOME; } -show_progress 1.34 4; +show_progress 1.34 25; ui_print " "; cleanup; mkdir -p $AKHOME/bin; @@ -493,10 +497,11 @@ fi; do_modules; debugging; +ui_print " "; restore_env; if [ "$(file_getprop anykernel.sh do.cleanup)" == 1 ]; then cleanup; fi; -ui_print " " " " "Done!"; +ui_print " " "Done!"; diff --git a/META-INF/com/google/android/updater-script b/META-INF/com/google/android/updater-script index 620758b..fe967ad 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=20221201 +# AK_BASE_VERSION=20230105