summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChirayu Desai <chirayudesai1@gmail.com>2022-05-25 23:37:27 +0530
committerMichael Bestas <mkbestas@lineageos.org>2023-11-12 14:13:28 +0200
commit88be24b0894b9580e214e256d02d2238189a15be (patch)
treec2499a809f92c44c0eaf23b3154562b0a69f1d94
parent6af359d86737bbb80eadd3c0b8cca36c537ddcf8 (diff)
extract_firmware: Support A/B OTA
Change-Id: I845c62a63aaab223c0fb5f49a494d4aa1c165c92
-rw-r--r--extract_utils.sh14
1 files changed, 11 insertions, 3 deletions
diff --git a/extract_utils.sh b/extract_utils.sh
index 793567d..20e8cf1 100644
--- a/extract_utils.sh
+++ b/extract_utils.sh
@@ -1916,10 +1916,18 @@ function extract_firmware() {
if [ ! -d "$OUTPUT_DIR" ]; then
mkdir -p "$OUTPUT_DIR"
fi
- if [ -f "$SRC/$SRC_FILE" ]; then
- cp "$SRC/$SRC_FILE" "$OUTPUT_DIR/$DST_FILE"
+ if [ -f "$SRC" ] && [ "${SRC##*.}" == "zip" ]; then
+ # Extract A/B OTA
+ if [ -a "$DUMPDIR"/payload.bin ]; then
+ python3 "$ANDROID_ROOT"/tools/extract-utils/extract_ota.py "$DUMPDIR"/payload.bin -o "$DUMPDIR" -p $(basename "${DST_FILE%.*}") 2>&1
+ cp "$DUMPDIR/$(basename $DST_FILE)" "$OUTPUT_DIR/$DST_FILE"
+ fi
else
- cp "$SRC/$DST_FILE" "$OUTPUT_DIR/$DST_FILE"
+ if [ -f "$SRC/$SRC_FILE" ]; then
+ cp "$SRC/$SRC_FILE" "$OUTPUT_DIR/$DST_FILE"
+ else
+ cp "$SRC/$DST_FILE" "$OUTPUT_DIR/$DST_FILE"
+ fi
fi
chmod 644 "$OUTPUT_DIR/$DST_FILE"
done