Add delta-device compatiability verification to upgrade-trigger.sh, using delta-verif... 30/283330/6
authorAntoni Adaszkiewicz <a.adaszkiewi@samsung.com>
Mon, 24 Oct 2022 10:33:55 +0000 (12:33 +0200)
committerAntoni Adaszkiewicz <a.adaszkiewi@samsung.com>
Thu, 1 Dec 2022 16:48:34 +0000 (17:48 +0100)
from update-control

Change-Id: I2c06533e2c7f483b886a1557a0078d8662698277

scripts/upgrade-support/upgrade-trigger.sh

index 4666a4534f1d61a09b6c47ed7522651ddbd4a612..27fdcf2ef3d9cab0660f29c4ffd930a28bc6f679 100644 (file)
@@ -18,6 +18,7 @@ SCRIPT_UPGRADE_PREPARE_PARTITIONS="upgrade-prepare-partitions.sh"
 SCRIPT_UPGRADE_PARTIAL="upgrade-partial.sh"
 SCRIPT_UPGRADE_FOTA="upgrade-fota.sh"
 FLOCK_PATH="/var/lock/clone_partitions.lock"
+DELTA_VERIFIER="/usr/bin/delta-verifier"
 
 prepare_fota_dir() {
        if [ -d "$FOTA_DIR" ]; then
@@ -136,6 +137,26 @@ tar xfp "$DOWNLOAD_DELTA" -C "$FOTA_DIR" checksum.SHA1
 verify_file "$0"
 tar xfp "$DOWNLOAD_DELTA" -C "$FOTA_DIR" upgrade-common.inc
 verify_file "$FOTA_DIR/upgrade-common.inc"
+tar xfp "$DOWNLOAD_DELTA" -C "$FOTA_DIR" update-info.ini
+verify_file "$FOTA_DIR/update-info.ini"
+
+if [ ! -x ${DELTA_VERIFIER} ]; then
+       log "[Error] ${DELTA_VERIFIER} binary for delta verification not found"
+       device_board_set_upgrade_status -1
+       exit 1
+fi
+
+log "[Info] Begin delta verification"
+RET=0
+# '||'' used to stop script form exiting (errexit is set)
+${DELTA_VERIFIER} --update_info_path "$FOTA_DIR/update-info.ini" || RET=$?
+
+if [ ${RET} -ne 0 ]; then
+       log "[Error] Delta verification unsuccessful"
+       device_board_set_upgrade_status -1
+       exit 1
+fi
+log "[Info] Delta verification success"
 
 . "$FOTA_DIR"/upgrade-common.inc