From 58c047f4d6bd32688924cf33368c801952217361 Mon Sep 17 00:00:00 2001 From: Mateusz Moscicki Date: Fri, 6 May 2022 16:49:36 +0200 Subject: [PATCH] Verify the checksums of flashed images Change-Id: I16178fe5ab33efd043db10d6d4612cce717a487d --- scripts/upgrade-common.inc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/scripts/upgrade-common.inc b/scripts/upgrade-common.inc index 76bd03f..de7bfb1 100644 --- a/scripts/upgrade-common.inc +++ b/scripts/upgrade-common.inc @@ -116,7 +116,7 @@ upgrade_images() { done < <(grep -v -e "^#" -e "^#" ${LABEL_MAP_PATH}/${HAL_PART_MAP_FILE}) # _OFFSET _SIZE _HASH1 _HASH2 - while read -r LABEL_NAME DELTA_NAME TYPE DEV _ _ _ _ + while read -r LABEL_NAME DELTA_NAME TYPE DEV OFFSET OLD_SIZE NEW_SIZE OLD_SHA NEW_SHA do LABEL_NAME="$(echo "$LABEL_NAME" | /bin/awk '{print tolower($0)}')" @@ -139,6 +139,15 @@ upgrade_images() { flog "[Info] Flashing $DELTA_NAME... to $NEXT_PARTITION" /bin/tar xOf "$DELTA_TAR" "$DELTA_NAME" > "$NEXT_PARTITION" flog "[Info] Finished flashing $DELTA_NAME to $NEXT_PARTITION" + + flog "[Info] Computing SHA1 of $NEXT_PARTITION" + CURRENT_SHA=$(head -c ${NEW_SIZE} ${NEXT_PARTITION} | sha1sum | cut -f1 -d' ') + if [ "$CURRENT_SHA" == "$NEW_SHA" ]; then + flog "[Info] Checksums match" + else + flog "[Info] Checksums don't match ($CURRENT_SHA != $NEW_SHA). Abort." + exit 1 + fi else PARTS_NAME_TO_UPDATE+=( "$PART_NAME:$TYPE" ) fi -- 2.7.4