From b9df8b892ffbfa5eee6b5a4c663108366f5b83d7 Mon Sep 17 00:00:00 2001 From: Chris Renshaw Date: Tue, 22 Aug 2023 01:51:39 -0300 Subject: [PATCH] Backend: add vendor security patch checking --- META-INF/com/google/android/update-binary | 24 ++++++++++++++++++++++ META-INF/com/google/android/updater-script | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/META-INF/com/google/android/update-binary b/META-INF/com/google/android/update-binary index df1b499..8e82432 100755 --- a/META-INF/com/google/android/update-binary +++ b/META-INF/com/google/android/update-binary @@ -369,6 +369,29 @@ do_levelcheck() { abort " " "Unsupported Android security patch level. Aborting..."; fi; } +do_vendorlevelcheck() { + [ "$(file_getprop anykernel.sh supported.vendorpatchlevels)" ] || return 1; + local vendor_lvl hi_lvl lo_lvl parsed_lvl supported_lvl; + ui_print "Checking Vendor security patch level..."; + supported_lvl=$(file_getprop anykernel.sh supported.vendorpatchlevels | grep -oE '[0-9]{4}-[0-9]{2}|-'); + vendor_lvl=$(file_getprop /vendor/build.prop ro.vendor.build.security_patch); + parsed_lvl=$(echo $vendor_lvl | grep -oE '[0-9]{4}-[0-9]{2}'); + if echo $supported_lvl | grep -q '^\-'; then + lo_lvl=0000-00; + hi_lvl=$(echo $supported_lvl | awk '{ print $2 }'); + elif echo $supported_lvl | grep -q ' - '; then + lo_lvl=$(echo $supported_lvl | awk '{ print $1 }'); + hi_lvl=$(echo $supported_lvl | awk '{ print $3 }'); + elif echo $supported_lvl | grep -q '\-$'; then + lo_lvl=$(echo $supported_lvl | awk '{ print $1 }'); + hi_lvl=9999-99; + fi; + if echo -e "$hi_lvl\n$lo_lvl\n$parsed_lvl" | sort -g | grep -n "$parsed_lvl" | grep -q '^2:'; then + ui_print "$vendor_lvl" " "; + else + abort " " "Unsupported Vendor security patch level. Aborting..."; + fi; +} dump_moduleinfo() { cat < $1; id=ak3-helper @@ -529,6 +552,7 @@ setup_env; do_devicecheck; do_versioncheck; do_levelcheck; +do_vendorlevelcheck; ui_print "Installing..."; # hack to maintain support for anykernel.sh files that weren't updated correctly along with the AK core diff --git a/META-INF/com/google/android/updater-script b/META-INF/com/google/android/updater-script index 008a858..b073107 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=20230815 +# AK_BASE_VERSION=20230822