extract_utils: Support extracting from super.img
Change-Id: I2a30da25f2d55df1080b1795e08a14195c1e3ec0
diff --git a/build/tools/extract_utils.sh b/build/tools/extract_utils.sh
index c4b5305..7da90a8 100755
--- a/build/tools/extract_utils.sh
+++ b/build/tools/extract_utils.sh
@@ -113,6 +113,7 @@
export BINARIES_LOCATION="$OMNI_ROOT"/vendor/omni/build/tools/${HOST}/bin
export SIMG2IMG="$BINARIES_LOCATION"/simg2img
+ export LPUNPACK="$BINARIES_LOCATION"/lpunpack
if [ -z "$PATCHELF" ]; then
export PATCHELF="$OMNI_ROOT"/vendor/omni/build/tools/${HOST}/bin/patchelf
@@ -1713,6 +1714,26 @@
SRC="$DUMPDIR"
fi
+ if [ -d "$SRC" ] && [ -f "$SRC"/super.img ]; then
+ DUMPDIR="$TMPDIR"/super_dump
+ mkdir -p "$DUMPDIR"
+
+ echo "Unpacking super.img"
+ "$SIMG2IMG" "$SRC"/super.img "$DUMPDIR"/super.raw
+
+ for PARTITION in "system" "odm" "product" "system_ext" "vendor"
+ do
+ echo "Preparing "$PARTITION""
+ if "$LPUNPACK" -p "$PARTITION"_a "$DUMPDIR"/super.raw "$DUMPDIR" ; then
+ mv "$DUMPDIR"/"$PARTITION"_a.img "$DUMPDIR"/"$PARTITION".img
+ else
+ "$LPUNPACK" -p "$PARTITION" "$DUMPDIR"/super.raw "$DUMPDIR"
+ fi
+ done
+
+ SRC="$DUMPDIR"
+ fi
+
if [ -d "$SRC" ] && [ -f "$SRC"/system.img ]; then
DUMPDIR="$EXTRACT_TMP_DIR"/system_dump
mkdir -p "$DUMPDIR"