Update payload.py to work with OTA packages directly
Test: python3 payload_info.py some_ota.zip
Change-Id: Id688e87d4712f2f750320eb0cd86c6a2cc263313
diff --git a/scripts/update_payload/payload.py b/scripts/update_payload/payload.py
index ea5ed30..78b8e2c 100644
--- a/scripts/update_payload/payload.py
+++ b/scripts/update_payload/payload.py
@@ -20,7 +20,9 @@
from __future__ import print_function
import hashlib
+import io
import struct
+import zipfile
from update_payload import applier
from update_payload import checker
@@ -119,6 +121,10 @@
payload_file: update payload file object open for reading
payload_file_offset: the offset of the actual payload
"""
+ if zipfile.is_zipfile(payload_file):
+ with zipfile.ZipFile(payload_file) as zfp:
+ with zfp.open("payload.bin") as payload_fp:
+ payload_file = io.BytesIO(payload_fp.read())
self.payload_file = payload_file
self.payload_file_offset = payload_file_offset
self.manifest_hasher = None