releasetools: Use pattern filter when unzipping.
When building BBOTAs, it only needs *some* unzipped entries in the given target_files zip(s). In particular, it needs 'IMAGES/*', 'META/*', 'RADIO/*'. (It also reads 'SYSTEM/build.prop' and 'OTA/bin/updater', but directly from the zip file.) This CL specifies the entries to unzip. It saves the I/O cost, as well as the temporary storage. Test: ota_from_target_files.py gives the same package w/ and w/o the CL. Test: check_target_files_signatures.py still works. Change-Id: I728428aa0e138879e49f9efbdb46a85892fc7038
This commit is contained in:
@@ -184,6 +184,8 @@ OPTIONS.payload_signer = None
|
||||
OPTIONS.payload_signer_args = []
|
||||
|
||||
METADATA_NAME = 'META-INF/com/android/metadata'
|
||||
UNZIP_PATTERN = ['IMAGES/*', 'META/*', 'RADIO/*']
|
||||
|
||||
|
||||
def MostPopularKey(d, default):
|
||||
"""Given a dict, return the key corresponding to the largest
|
||||
@@ -2214,7 +2216,8 @@ def main(argv):
|
||||
OPTIONS.extra_script = open(OPTIONS.extra_script).read()
|
||||
|
||||
print("unzipping target target-files...")
|
||||
OPTIONS.input_tmp, input_zip = common.UnzipTemp(args[0])
|
||||
OPTIONS.input_tmp, input_zip = common.UnzipTemp(
|
||||
args[0], UNZIP_PATTERN if OPTIONS.block_based else None)
|
||||
|
||||
OPTIONS.target_tmp = OPTIONS.input_tmp
|
||||
OPTIONS.info_dict = common.LoadInfoDict(input_zip, OPTIONS.target_tmp)
|
||||
@@ -2282,7 +2285,8 @@ def main(argv):
|
||||
else:
|
||||
print("unzipping source target-files...")
|
||||
OPTIONS.source_tmp, source_zip = common.UnzipTemp(
|
||||
OPTIONS.incremental_source)
|
||||
OPTIONS.incremental_source,
|
||||
UNZIP_PATTERN if OPTIONS.block_based else None)
|
||||
OPTIONS.target_info_dict = OPTIONS.info_dict
|
||||
OPTIONS.source_info_dict = common.LoadInfoDict(source_zip,
|
||||
OPTIONS.source_tmp)
|
||||
|
Reference in New Issue
Block a user