Verify the checksums of flashed images 13/275013/1
authorMateusz Moscicki <m.moscicki2@partner.samsung.com>
Fri, 6 May 2022 14:49:36 +0000 (16:49 +0200)
committerMateusz Moscicki <m.moscicki2@partner.samsung.com>
Fri, 13 May 2022 09:30:46 +0000 (11:30 +0200)
Change-Id: I16178fe5ab33efd043db10d6d4612cce717a487d

scripts/upgrade-common.inc

index 76bd03f..de7bfb1 100644 (file)
@@ -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