diff options
author | Sen Jiang <senj@google.com> | 2017-09-26 18:21:04 -0700 |
---|---|---|
committer | Treehugger Robot <treehugger-gerrit@google.com> | 2017-09-30 00:30:51 +0000 |
commit | 3b15b599299a9a5f3ec965d568ea479383c2fe6a (patch) | |
tree | d7c4fbed5d023478b0f69851ffe2d9373122369c /scripts/update_payload/payload.py | |
parent | c2527f492e7a1389b2a3f248bd2b22d6cf5d9eb8 (diff) |
update_device.py: support OTA zip if use omaha too.
Pass the offset and size to UpdateHandler.
Also added support for payload offset in update_payload.Payload.
Test: applied a local OTA
Change-Id: Ib116ef2c23a11e298118f203814c4ea8dd1629af
Diffstat (limited to 'scripts/update_payload/payload.py')
-rw-r--r-- | scripts/update_payload/payload.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/scripts/update_payload/payload.py b/scripts/update_payload/payload.py index d1a99ecd..184f8057 100644 --- a/scripts/update_payload/payload.py +++ b/scripts/update_payload/payload.py @@ -101,13 +101,15 @@ class Payload(object): hasher=hasher) - def __init__(self, payload_file): + def __init__(self, payload_file, payload_file_offset=0): """Initialize the payload object. Args: payload_file: update payload file object open for reading + payload_file_offset: the offset of the actual payload """ self.payload_file = payload_file + self.payload_file_offset = payload_file_offset self.manifest_hasher = None self.is_init = False self.header = None @@ -159,7 +161,8 @@ class Payload(object): return common.Read( self.payload_file, self.header.metadata_signature_len, - offset=self.header.size + self.header.manifest_len) + offset=self.payload_file_offset + self.header.size + + self.header.manifest_len) def ReadDataBlob(self, offset, length): """Reads and returns a single data blob from the update payload. @@ -175,7 +178,8 @@ class Payload(object): PayloadError if a read error occurred. """ return common.Read(self.payload_file, length, - offset=self.data_offset + offset) + offset=self.payload_file_offset + self.data_offset + + offset) def Init(self): """Initializes the payload object. @@ -194,6 +198,7 @@ class Payload(object): self.manifest_hasher = hashlib.sha256() # Read the file header. + self.payload_file.seek(self.payload_file_offset) self.header = self._ReadHeader() # Read the manifest. @@ -246,7 +251,7 @@ class Payload(object): def ResetFile(self): """Resets the offset of the payload file to right past the manifest.""" - self.payload_file.seek(self.data_offset) + self.payload_file.seek(self.payload_file_offset + self.data_offset) def IsDelta(self): """Returns True iff the payload appears to be a delta.""" |