change-spl: Detect image format before simg2img

This commit reads the sparse image magic word before calling simg2img
so that `change_security_patch_var.sh` can support both sparse and
unsparse system images.

Bug: 79395599
Test: ./change_security_patch_ver.sh with the latest aosp_arm64 image
Change-Id: I207195fa9a3922aa24cca7317dbfc0aaf2f64a36
Merged-In: I207195fa9a3922aa24cca7317dbfc0aaf2f64a36
diff --git a/harnesses/host_controller/gsi/change_security_patch_ver.sh b/harnesses/host_controller/gsi/change_security_patch_ver.sh
index 563f836..c99ec03 100755
--- a/harnesses/host_controller/gsi/change_security_patch_ver.sh
+++ b/harnesses/host_controller/gsi/change_security_patch_ver.sh
@@ -121,15 +121,22 @@
   exit 1
 fi
 
-UNSPARSED_SYSTEM_IMG="${SYSTEM_IMG}.raw"
 MOUNT_POINT="${PWD}/temp_mnt"
 SPL_PROPERTY_NAME="ro.build.version.security_patch"
 RELEASE_VERSION_PROPERTY_NAME="ro.build.version.release"
 VNDK_VERSION_PROPERTY="ro.vndk.version"
 VNDK_VERSION_PROPERTY_OMR1="${VNDK_VERSION_PROPERTY}=27"
 
-echo "Unsparsing ${SYSTEM_IMG}..."
-$BIN_PATH/simg2img "$SYSTEM_IMG" "$UNSPARSED_SYSTEM_IMG"
+UNSPARSED_SYSTEM_IMG="${SYSTEM_IMG}.raw"
+SYSTEM_IMG_MAGIC="$(xxd -g 4 -l 4 "$SYSTEM_IMG" | head -n1 | awk '{print $2}')"
+if [ "$SYSTEM_IMG_MAGIC" = "3aff26ed" ]; then
+  echo "Unsparsing ${SYSTEM_IMG}..."
+  $BIN_PATH/simg2img "$SYSTEM_IMG" "$UNSPARSED_SYSTEM_IMG"
+else
+  echo "Copying unsparse input system image ${SYSTEM_IMG}..."
+  cp "$SYSTEM_IMG" "$UNSPARSED_SYSTEM_IMG"
+fi
+
 IMG_SIZE=$(stat -c%s "$UNSPARSED_SYSTEM_IMG")
 
 echo "Mounting..."