summaryrefslogtreecommitdiff
path: root/scripts/update_payload/payload.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/update_payload/payload.py')
-rw-r--r--scripts/update_payload/payload.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/scripts/update_payload/payload.py b/scripts/update_payload/payload.py
index 6b28046e..998703ad 100644
--- a/scripts/update_payload/payload.py
+++ b/scripts/update_payload/payload.py
@@ -21,6 +21,7 @@ from __future__ import print_function
import hashlib
import io
+import mmap
import struct
import zipfile
@@ -123,10 +124,11 @@ class Payload(object):
"""
if zipfile.is_zipfile(payload_file):
with zipfile.ZipFile(payload_file) as zfp:
- with zfp.open("payload.bin") as payload_fp:
- self.payload_file = io.BytesIO(payload_fp.read())
+ self.payload_file = zfp.open("payload.bin", "r")
elif isinstance(payload_file, str):
- self.payload_file = open(payload_file, "rb")
+ payload_fp = open(payload_file, "rb")
+ payload_bytes = mmap.mmap(payload_fp.fileno(), 0, access=mmap.ACCESS_READ)
+ self.payload_file = io.BytesIO(payload_bytes)
else:
self.payload_file = payload_file
self.payload_file_offset = payload_file_offset