Merge "Allow zip64 support when opening zip files"

This commit is contained in:
Treehugger Robot 2020-10-08 23:35:56 +00:00 committed by Gerrit Code Review
commit 5b7e8e0406
16 changed files with 134 additions and 134 deletions

View File

@ -177,7 +177,7 @@ class ApexApkSigner(object):
# Add the payload image back to the apex file. # Add the payload image back to the apex file.
common.ZipDelete(self.apex_path, APEX_PAYLOAD_IMAGE) common.ZipDelete(self.apex_path, APEX_PAYLOAD_IMAGE)
with zipfile.ZipFile(self.apex_path, 'a') as output_apex: with zipfile.ZipFile(self.apex_path, 'a', allowZip64=True) as output_apex:
common.ZipWrite(output_apex, payload_img, APEX_PAYLOAD_IMAGE, common.ZipWrite(output_apex, payload_img, APEX_PAYLOAD_IMAGE,
compress_type=zipfile.ZIP_STORED) compress_type=zipfile.ZIP_STORED)
return self.apex_path return self.apex_path
@ -351,7 +351,7 @@ def SignApex(avbtool, apex_data, payload_key, container_key, container_pw,
common.ZipDelete(apex_file, APEX_PAYLOAD_IMAGE) common.ZipDelete(apex_file, APEX_PAYLOAD_IMAGE)
if APEX_PUBKEY in zip_items: if APEX_PUBKEY in zip_items:
common.ZipDelete(apex_file, APEX_PUBKEY) common.ZipDelete(apex_file, APEX_PUBKEY)
apex_zip = zipfile.ZipFile(apex_file, 'a') apex_zip = zipfile.ZipFile(apex_file, 'a', allowZip64=True)
common.ZipWrite(apex_zip, payload_file, arcname=APEX_PAYLOAD_IMAGE) common.ZipWrite(apex_zip, payload_file, arcname=APEX_PAYLOAD_IMAGE)
common.ZipWrite(apex_zip, payload_public_key, arcname=APEX_PUBKEY) common.ZipWrite(apex_zip, payload_public_key, arcname=APEX_PUBKEY)
common.ZipClose(apex_zip) common.ZipClose(apex_zip)

View File

@ -140,7 +140,7 @@ def VerifyPackage(cert, package):
def VerifyAbOtaPayload(cert, package): def VerifyAbOtaPayload(cert, package):
"""Verifies the payload and metadata signatures in an A/B OTA payload.""" """Verifies the payload and metadata signatures in an A/B OTA payload."""
package_zip = zipfile.ZipFile(package, 'r') package_zip = zipfile.ZipFile(package, 'r', allowZip64=True)
if 'payload.bin' not in package_zip.namelist(): if 'payload.bin' not in package_zip.namelist():
common.ZipClose(package_zip) common.ZipClose(package_zip)
return return

View File

@ -252,7 +252,7 @@ def HasTrebleEnabled(target_files, target_info):
if os.path.isdir(target_files): if os.path.isdir(target_files):
return os.path.isdir(os.path.join(target_files, "VENDOR")) return os.path.isdir(os.path.join(target_files, "VENDOR"))
if zipfile.is_zipfile(target_files): if zipfile.is_zipfile(target_files):
return HasPartition(zipfile.ZipFile(target_files), "vendor") return HasPartition(zipfile.ZipFile(target_files, allowZip64=True), "vendor")
raise ValueError("Unknown target_files argument") raise ValueError("Unknown target_files argument")
return (HasVendorPartition(target_files) and return (HasVendorPartition(target_files) and

View File

@ -1568,7 +1568,7 @@ def UnzipToDir(filename, dirname, patterns=None):
cmd = ["unzip", "-o", "-q", filename, "-d", dirname] cmd = ["unzip", "-o", "-q", filename, "-d", dirname]
if patterns is not None: if patterns is not None:
# Filter out non-matching patterns. unzip will complain otherwise. # Filter out non-matching patterns. unzip will complain otherwise.
with zipfile.ZipFile(filename) as input_zip: with zipfile.ZipFile(filename, allowZip64=True) as input_zip:
names = input_zip.namelist() names = input_zip.namelist()
filtered = [ filtered = [
pattern for pattern in patterns if fnmatch.filter(names, pattern)] pattern for pattern in patterns if fnmatch.filter(names, pattern)]

View File

@ -656,7 +656,7 @@ def GetTargetFilesZipForSecondaryImages(input_file, skip_postinstall=False):
target_file = common.MakeTempFile(prefix="targetfiles-", suffix=".zip") target_file = common.MakeTempFile(prefix="targetfiles-", suffix=".zip")
target_zip = zipfile.ZipFile(target_file, 'w', allowZip64=True) target_zip = zipfile.ZipFile(target_file, 'w', allowZip64=True)
with zipfile.ZipFile(input_file, 'r') as input_zip: with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip:
infolist = input_zip.infolist() infolist = input_zip.infolist()
input_tmp = common.UnzipTemp(input_file, UNZIP_PATTERN) input_tmp = common.UnzipTemp(input_file, UNZIP_PATTERN)
@ -719,7 +719,7 @@ def GetTargetFilesZipWithoutPostinstallConfig(input_file):
The filename of target-files.zip that doesn't contain postinstall config. The filename of target-files.zip that doesn't contain postinstall config.
""" """
# We should only make a copy if postinstall_config entry exists. # We should only make a copy if postinstall_config entry exists.
with zipfile.ZipFile(input_file, 'r') as input_zip: with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip:
if POSTINSTALL_CONFIG not in input_zip.namelist(): if POSTINSTALL_CONFIG not in input_zip.namelist():
return input_file return input_file
@ -754,7 +754,7 @@ def GetTargetFilesZipForRetrofitDynamicPartitions(input_file,
target_file = common.MakeTempFile(prefix="targetfiles-", suffix=".zip") target_file = common.MakeTempFile(prefix="targetfiles-", suffix=".zip")
shutil.copyfile(input_file, target_file) shutil.copyfile(input_file, target_file)
with zipfile.ZipFile(input_file) as input_zip: with zipfile.ZipFile(input_file, allowZip64=True) as input_zip:
namelist = input_zip.namelist() namelist = input_zip.namelist()
input_tmp = common.UnzipTemp(input_file, RETROFIT_DAP_UNZIP_PATTERN) input_tmp = common.UnzipTemp(input_file, RETROFIT_DAP_UNZIP_PATTERN)
@ -822,7 +822,7 @@ def GenerateAbOtaPackage(target_file, output_file, source_file=None):
else: else:
staging_file = output_file staging_file = output_file
output_zip = zipfile.ZipFile(staging_file, "w", output_zip = zipfile.ZipFile(staging_file, "w",
compression=zipfile.ZIP_DEFLATED) compression=zipfile.ZIP_DEFLATED, allowZip64=True)
if source_file is not None: if source_file is not None:
assert "ab_partitions" in OPTIONS.source_info_dict, \ assert "ab_partitions" in OPTIONS.source_info_dict, \
@ -893,7 +893,7 @@ def GenerateAbOtaPackage(target_file, output_file, source_file=None):
# If dm-verity is supported for the device, copy contents of care_map # If dm-verity is supported for the device, copy contents of care_map
# into A/B OTA package. # into A/B OTA package.
target_zip = zipfile.ZipFile(target_file, "r") target_zip = zipfile.ZipFile(target_file, "r", allowZip64=True)
if (target_info.get("verity") == "true" or if (target_info.get("verity") == "true" or
target_info.get("avb_enable") == "true"): target_info.get("avb_enable") == "true"):
care_map_list = [x for x in ["care_map.pb", "care_map.txt"] if care_map_list = [x for x in ["care_map.pb", "care_map.txt"] if
@ -1069,7 +1069,7 @@ def main(argv):
if OPTIONS.extracted_input is not None: if OPTIONS.extracted_input is not None:
OPTIONS.info_dict = common.LoadInfoDict(OPTIONS.extracted_input) OPTIONS.info_dict = common.LoadInfoDict(OPTIONS.extracted_input)
else: else:
with zipfile.ZipFile(args[0], 'r') as input_zip: with zipfile.ZipFile(args[0], 'r', allowZip64=True) as input_zip:
OPTIONS.info_dict = common.LoadInfoDict(input_zip) OPTIONS.info_dict = common.LoadInfoDict(input_zip)
logger.info("--- target info ---") logger.info("--- target info ---")
@ -1078,7 +1078,7 @@ def main(argv):
# Load the source build dict if applicable. # Load the source build dict if applicable.
if OPTIONS.incremental_source is not None: if OPTIONS.incremental_source is not None:
OPTIONS.target_info_dict = OPTIONS.info_dict OPTIONS.target_info_dict = OPTIONS.info_dict
with zipfile.ZipFile(OPTIONS.incremental_source, 'r') as source_zip: with zipfile.ZipFile(OPTIONS.incremental_source, 'r', allowZip64=True) as source_zip:
OPTIONS.source_info_dict = common.LoadInfoDict(source_zip) OPTIONS.source_info_dict = common.LoadInfoDict(source_zip)
logger.info("--- source info ---") logger.info("--- source info ---")

View File

@ -215,7 +215,7 @@ def main(argv):
logging.basicConfig(level=logging.INFO, format=logging_format) logging.basicConfig(level=logging.INFO, format=logging_format)
try: try:
with zipfile.ZipFile(args.ota_package, 'r') as package: with zipfile.ZipFile(args.ota_package, 'r', allowZip64=True) as package:
package_parser = OtaPackageParser(package) package_parser = OtaPackageParser(package)
package_parser.Analyze() package_parser.Analyze()
except: except:

View File

@ -62,7 +62,7 @@ def FinalizeMetadata(metadata, input_file, output_file, needed_property_files):
def ComputeAllPropertyFiles(input_file, needed_property_files): def ComputeAllPropertyFiles(input_file, needed_property_files):
# Write the current metadata entry with placeholders. # Write the current metadata entry with placeholders.
with zipfile.ZipFile(input_file) as input_zip: with zipfile.ZipFile(input_file, allowZip64=True) as input_zip:
for property_files in needed_property_files: for property_files in needed_property_files:
metadata.property_files[property_files.name] = property_files.Compute( metadata.property_files[property_files.name] = property_files.Compute(
input_zip) input_zip)
@ -70,7 +70,7 @@ def FinalizeMetadata(metadata, input_file, output_file, needed_property_files):
if METADATA_NAME in namelist or METADATA_PROTO_NAME in namelist: if METADATA_NAME in namelist or METADATA_PROTO_NAME in namelist:
ZipDelete(input_file, [METADATA_NAME, METADATA_PROTO_NAME]) ZipDelete(input_file, [METADATA_NAME, METADATA_PROTO_NAME])
output_zip = zipfile.ZipFile(input_file, 'a') output_zip = zipfile.ZipFile(input_file, 'a', allowZip64=True)
WriteMetadata(metadata, output_zip) WriteMetadata(metadata, output_zip)
ZipClose(output_zip) ZipClose(output_zip)
@ -82,7 +82,7 @@ def FinalizeMetadata(metadata, input_file, output_file, needed_property_files):
return prelim_signing return prelim_signing
def FinalizeAllPropertyFiles(prelim_signing, needed_property_files): def FinalizeAllPropertyFiles(prelim_signing, needed_property_files):
with zipfile.ZipFile(prelim_signing) as prelim_signing_zip: with zipfile.ZipFile(prelim_signing, allowZip64=True) as prelim_signing_zip:
for property_files in needed_property_files: for property_files in needed_property_files:
metadata.property_files[property_files.name] = property_files.Finalize( metadata.property_files[property_files.name] = property_files.Finalize(
prelim_signing_zip, prelim_signing_zip,
@ -108,7 +108,7 @@ def FinalizeMetadata(metadata, input_file, output_file, needed_property_files):
# Replace the METADATA entry. # Replace the METADATA entry.
ZipDelete(prelim_signing, [METADATA_NAME, METADATA_PROTO_NAME]) ZipDelete(prelim_signing, [METADATA_NAME, METADATA_PROTO_NAME])
output_zip = zipfile.ZipFile(prelim_signing, 'a') output_zip = zipfile.ZipFile(prelim_signing, 'a', allowZip64=True)
WriteMetadata(metadata, output_zip) WriteMetadata(metadata, output_zip)
ZipClose(output_zip) ZipClose(output_zip)
@ -119,7 +119,7 @@ def FinalizeMetadata(metadata, input_file, output_file, needed_property_files):
SignOutput(prelim_signing, output_file) SignOutput(prelim_signing, output_file)
# Reopen the final signed zip to double check the streaming metadata. # Reopen the final signed zip to double check the streaming metadata.
with zipfile.ZipFile(output_file) as output_zip: with zipfile.ZipFile(output_file, allowZip64=True) as output_zip:
for property_files in needed_property_files: for property_files in needed_property_files:
property_files.Verify( property_files.Verify(
output_zip, metadata.property_files[property_files.name].strip()) output_zip, metadata.property_files[property_files.name].strip())
@ -363,7 +363,7 @@ def ComputeRuntimeBuildInfos(default_build_info, boot_variable_values):
partition_prop_key = "{}.build.prop".format(partition) partition_prop_key = "{}.build.prop".format(partition)
input_file = info_dict[partition_prop_key].input_file input_file = info_dict[partition_prop_key].input_file
if isinstance(input_file, zipfile.ZipFile): if isinstance(input_file, zipfile.ZipFile):
with zipfile.ZipFile(input_file.filename) as input_zip: with zipfile.ZipFile(input_file.filename, allowZip64=True) as input_zip:
info_dict[partition_prop_key] = \ info_dict[partition_prop_key] = \
PartitionBuildProps.FromInputFile(input_zip, partition, PartitionBuildProps.FromInputFile(input_zip, partition,
placeholder_values) placeholder_values)

View File

@ -813,7 +813,7 @@ def WriteOtacerts(output_zip, filename, keys):
keys: A list of public keys to use during OTA package verification. keys: A list of public keys to use during OTA package verification.
""" """
temp_file = io.BytesIO() temp_file = io.BytesIO()
certs_zip = zipfile.ZipFile(temp_file, "w") certs_zip = zipfile.ZipFile(temp_file, "w", allowZip64=True)
for k in keys: for k in keys:
common.ZipWrite(certs_zip, k) common.ZipWrite(certs_zip, k)
common.ZipClose(certs_zip) common.ZipClose(certs_zip)
@ -1294,7 +1294,7 @@ def main(argv):
common.InitLogging() common.InitLogging()
input_zip = zipfile.ZipFile(args[0], "r") input_zip = zipfile.ZipFile(args[0], "r", allowZip64=True)
output_zip = zipfile.ZipFile(args[1], "w", output_zip = zipfile.ZipFile(args[1], "w",
compression=zipfile.ZIP_DEFLATED, compression=zipfile.ZIP_DEFLATED,
allowZip64=True) allowZip64=True)

View File

@ -93,10 +93,10 @@ class AddImagesToTargetFilesTest(test_utils.ReleaseToolsTestCase):
# Set up the output zip. # Set up the output zip.
output_file = common.MakeTempFile(suffix='.zip') output_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(output_file, 'w') as output_zip: with zipfile.ZipFile(output_file, 'w', allowZip64=True) as output_zip:
AddPackRadioImages(output_zip, images) AddPackRadioImages(output_zip, images)
with zipfile.ZipFile(output_file, 'r') as verify_zip: with zipfile.ZipFile(output_file, 'r', allowZip64=True) as verify_zip:
for image in images: for image in images:
self.assertIn('IMAGES/' + image + '.img', verify_zip.namelist()) self.assertIn('IMAGES/' + image + '.img', verify_zip.namelist())
@ -344,12 +344,12 @@ class AddImagesToTargetFilesTest(test_utils.ReleaseToolsTestCase):
image_paths = self._test_AddCareMapForAbOta() image_paths = self._test_AddCareMapForAbOta()
output_file = common.MakeTempFile(suffix='.zip') output_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(output_file, 'w') as output_zip: with zipfile.ZipFile(output_file, 'w', allowZip64=True) as output_zip:
AddCareMapForAbOta(output_zip, ['system', 'vendor'], image_paths) AddCareMapForAbOta(output_zip, ['system', 'vendor'], image_paths)
care_map_name = "META/care_map.pb" care_map_name = "META/care_map.pb"
temp_dir = common.MakeTempDir() temp_dir = common.MakeTempDir()
with zipfile.ZipFile(output_file, 'r') as verify_zip: with zipfile.ZipFile(output_file, 'r', allowZip64=True) as verify_zip:
self.assertTrue(care_map_name in verify_zip.namelist()) self.assertTrue(care_map_name in verify_zip.namelist())
verify_zip.extract(care_map_name, path=temp_dir) verify_zip.extract(care_map_name, path=temp_dir)
@ -367,7 +367,7 @@ class AddImagesToTargetFilesTest(test_utils.ReleaseToolsTestCase):
image_paths = self._test_AddCareMapForAbOta() image_paths = self._test_AddCareMapForAbOta()
output_file = common.MakeTempFile(suffix='.zip') output_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(output_file, 'w') as output_zip: with zipfile.ZipFile(output_file, 'w', allowZip64=True) as output_zip:
# Create an existing META/care_map.pb entry. # Create an existing META/care_map.pb entry.
common.ZipWriteStr(output_zip, 'META/care_map.pb', common.ZipWriteStr(output_zip, 'META/care_map.pb',
'fake care_map.pb') 'fake care_map.pb')

View File

@ -174,8 +174,8 @@ class ApexUtilsTest(test_utils.ReleaseToolsTestCase):
@test_utils.SkipIfExternalToolsUnavailable() @test_utils.SkipIfExternalToolsUnavailable()
def test_ApexApkSigner_noAssetDir(self): def test_ApexApkSigner_noAssetDir(self):
no_asset = common.MakeTempFile(suffix='.apex') no_asset = common.MakeTempFile(suffix='.apex')
with zipfile.ZipFile(no_asset, 'w') as output_zip: with zipfile.ZipFile(no_asset, 'w', allowZip64=True) as output_zip:
with zipfile.ZipFile(self.apex_with_apk, 'r') as input_zip: with zipfile.ZipFile(self.apex_with_apk, 'r', allowZip64=True) as input_zip:
name_list = input_zip.namelist() name_list = input_zip.namelist()
for name in name_list: for name in name_list:
if not name.startswith('assets'): if not name.startswith('assets'):

View File

@ -363,7 +363,7 @@ class CommonZipTest(test_utils.ReleaseToolsTestCase):
self.assertEqual(int(expected_stat.st_mtime), int(new_stat.st_mtime)) self.assertEqual(int(expected_stat.st_mtime), int(new_stat.st_mtime))
# Reopen the zip file to verify. # Reopen the zip file to verify.
zip_file = zipfile.ZipFile(zip_file_name, "r") zip_file = zipfile.ZipFile(zip_file_name, "r", allowZip64=True)
# Verify the timestamp. # Verify the timestamp.
info = zip_file.getinfo(arcname) info = zip_file.getinfo(arcname)
@ -399,7 +399,7 @@ class CommonZipTest(test_utils.ReleaseToolsTestCase):
arcname = arcname[1:] arcname = arcname[1:]
zip_file.close() zip_file.close()
zip_file = zipfile.ZipFile(zip_file_name, "w") zip_file = zipfile.ZipFile(zip_file_name, "w", allowZip64=True)
try: try:
sha1_hash = sha1() sha1_hash = sha1()
@ -431,7 +431,7 @@ class CommonZipTest(test_utils.ReleaseToolsTestCase):
zip_file_name = zip_file.name zip_file_name = zip_file.name
zip_file.close() zip_file.close()
zip_file = zipfile.ZipFile(zip_file_name, "w") zip_file = zipfile.ZipFile(zip_file_name, "w", allowZip64=True)
try: try:
expected_compress_type = extra_args.get("compress_type", expected_compress_type = extra_args.get("compress_type",
@ -475,7 +475,7 @@ class CommonZipTest(test_utils.ReleaseToolsTestCase):
arcname_large = arcname_large[1:] arcname_large = arcname_large[1:]
zip_file.close() zip_file.close()
zip_file = zipfile.ZipFile(zip_file_name, "w") zip_file = zipfile.ZipFile(zip_file_name, "w", allowZip64=True)
try: try:
sha1_hash = sha1() sha1_hash = sha1()
@ -599,7 +599,7 @@ class CommonZipTest(test_utils.ReleaseToolsTestCase):
try: try:
random_string = os.urandom(1024) random_string = os.urandom(1024)
zip_file = zipfile.ZipFile(zip_file_name, "w") zip_file = zipfile.ZipFile(zip_file_name, "w", allowZip64=True)
# Default perms should be 0o644 when passing the filename. # Default perms should be 0o644 when passing the filename.
common.ZipWriteStr(zip_file, "foo", random_string) common.ZipWriteStr(zip_file, "foo", random_string)
# Honor the specified perms. # Honor the specified perms.
@ -644,7 +644,7 @@ class CommonZipTest(test_utils.ReleaseToolsTestCase):
try: try:
common.ZipDelete(zip_file.name, 'Test2') common.ZipDelete(zip_file.name, 'Test2')
with zipfile.ZipFile(zip_file.name, 'r') as check_zip: with zipfile.ZipFile(zip_file.name, 'r', allowZip64=True) as check_zip:
entries = check_zip.namelist() entries = check_zip.namelist()
self.assertTrue('Test1' in entries) self.assertTrue('Test1' in entries)
self.assertFalse('Test2' in entries) self.assertFalse('Test2' in entries)
@ -652,21 +652,21 @@ class CommonZipTest(test_utils.ReleaseToolsTestCase):
self.assertRaises( self.assertRaises(
common.ExternalError, common.ZipDelete, zip_file.name, 'Test2') common.ExternalError, common.ZipDelete, zip_file.name, 'Test2')
with zipfile.ZipFile(zip_file.name, 'r') as check_zip: with zipfile.ZipFile(zip_file.name, 'r', allowZip64=True) as check_zip:
entries = check_zip.namelist() entries = check_zip.namelist()
self.assertTrue('Test1' in entries) self.assertTrue('Test1' in entries)
self.assertFalse('Test2' in entries) self.assertFalse('Test2' in entries)
self.assertTrue('Test3' in entries) self.assertTrue('Test3' in entries)
common.ZipDelete(zip_file.name, ['Test3']) common.ZipDelete(zip_file.name, ['Test3'])
with zipfile.ZipFile(zip_file.name, 'r') as check_zip: with zipfile.ZipFile(zip_file.name, 'r', allowZip64=True) as check_zip:
entries = check_zip.namelist() entries = check_zip.namelist()
self.assertTrue('Test1' in entries) self.assertTrue('Test1' in entries)
self.assertFalse('Test2' in entries) self.assertFalse('Test2' in entries)
self.assertFalse('Test3' in entries) self.assertFalse('Test3' in entries)
common.ZipDelete(zip_file.name, ['Test1', 'Test2']) common.ZipDelete(zip_file.name, ['Test1', 'Test2'])
with zipfile.ZipFile(zip_file.name, 'r') as check_zip: with zipfile.ZipFile(zip_file.name, 'r', allowZip64=True) as check_zip:
entries = check_zip.namelist() entries = check_zip.namelist()
self.assertFalse('Test1' in entries) self.assertFalse('Test1' in entries)
self.assertFalse('Test2' in entries) self.assertFalse('Test2' in entries)
@ -834,7 +834,7 @@ class CommonApkUtilsTest(test_utils.ReleaseToolsTestCase):
if additional is None: if additional is None:
additional = [] additional = []
target_files = common.MakeTempFile(suffix='.zip') target_files = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(target_files, 'w') as target_files_zip: with zipfile.ZipFile(target_files, 'w', allowZip64=True) as target_files_zip:
target_files_zip.writestr('META/apkcerts.txt', apkcerts_txt) target_files_zip.writestr('META/apkcerts.txt', apkcerts_txt)
for entry in additional: for entry in additional:
target_files_zip.writestr(entry, '') target_files_zip.writestr(entry, '')
@ -842,7 +842,7 @@ class CommonApkUtilsTest(test_utils.ReleaseToolsTestCase):
def test_ReadApkCerts_NoncompressedApks(self): def test_ReadApkCerts_NoncompressedApks(self):
target_files = self._write_apkcerts_txt(self.APKCERTS_TXT1) target_files = self._write_apkcerts_txt(self.APKCERTS_TXT1)
with zipfile.ZipFile(target_files, 'r') as input_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as input_zip:
certmap, ext = common.ReadApkCerts(input_zip) certmap, ext = common.ReadApkCerts(input_zip)
self.assertDictEqual(self.APKCERTS_CERTMAP1, certmap) self.assertDictEqual(self.APKCERTS_CERTMAP1, certmap)
@ -855,7 +855,7 @@ class CommonApkUtilsTest(test_utils.ReleaseToolsTestCase):
self.APKCERTS_TXT2, self.APKCERTS_TXT2,
['Compressed1.apk.gz', 'Compressed3.apk']) ['Compressed1.apk.gz', 'Compressed3.apk'])
with zipfile.ZipFile(target_files, 'r') as input_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as input_zip:
certmap, ext = common.ReadApkCerts(input_zip) certmap, ext = common.ReadApkCerts(input_zip)
self.assertDictEqual(self.APKCERTS_CERTMAP2, certmap) self.assertDictEqual(self.APKCERTS_CERTMAP2, certmap)
@ -865,7 +865,7 @@ class CommonApkUtilsTest(test_utils.ReleaseToolsTestCase):
target_files = self._write_apkcerts_txt( target_files = self._write_apkcerts_txt(
self.APKCERTS_TXT3, ['Compressed4.apk.xz']) self.APKCERTS_TXT3, ['Compressed4.apk.xz'])
with zipfile.ZipFile(target_files, 'r') as input_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as input_zip:
certmap, ext = common.ReadApkCerts(input_zip) certmap, ext = common.ReadApkCerts(input_zip)
self.assertDictEqual(self.APKCERTS_CERTMAP3, certmap) self.assertDictEqual(self.APKCERTS_CERTMAP3, certmap)
@ -876,7 +876,7 @@ class CommonApkUtilsTest(test_utils.ReleaseToolsTestCase):
self.APKCERTS_TXT1 + self.APKCERTS_TXT2, self.APKCERTS_TXT1 + self.APKCERTS_TXT2,
['Compressed1.apk.gz', 'Compressed3.apk']) ['Compressed1.apk.gz', 'Compressed3.apk'])
with zipfile.ZipFile(target_files, 'r') as input_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as input_zip:
certmap, ext = common.ReadApkCerts(input_zip) certmap, ext = common.ReadApkCerts(input_zip)
certmap_merged = self.APKCERTS_CERTMAP1.copy() certmap_merged = self.APKCERTS_CERTMAP1.copy()
@ -889,7 +889,7 @@ class CommonApkUtilsTest(test_utils.ReleaseToolsTestCase):
self.APKCERTS_TXT2 + self.APKCERTS_TXT3, self.APKCERTS_TXT2 + self.APKCERTS_TXT3,
['Compressed1.apk.gz', 'Compressed4.apk.xz']) ['Compressed1.apk.gz', 'Compressed4.apk.xz'])
with zipfile.ZipFile(target_files, 'r') as input_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as input_zip:
self.assertRaises(ValueError, common.ReadApkCerts, input_zip) self.assertRaises(ValueError, common.ReadApkCerts, input_zip)
def test_ReadApkCerts_MismatchingKeys(self): def test_ReadApkCerts_MismatchingKeys(self):
@ -899,12 +899,12 @@ class CommonApkUtilsTest(test_utils.ReleaseToolsTestCase):
) )
target_files = self._write_apkcerts_txt(malformed_apkcerts_txt) target_files = self._write_apkcerts_txt(malformed_apkcerts_txt)
with zipfile.ZipFile(target_files, 'r') as input_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as input_zip:
self.assertRaises(ValueError, common.ReadApkCerts, input_zip) self.assertRaises(ValueError, common.ReadApkCerts, input_zip)
def test_ReadApkCerts_WithWithoutOptionalFields(self): def test_ReadApkCerts_WithWithoutOptionalFields(self):
target_files = self._write_apkcerts_txt(self.APKCERTS_TXT4) target_files = self._write_apkcerts_txt(self.APKCERTS_TXT4)
with zipfile.ZipFile(target_files, 'r') as input_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as input_zip:
certmap, ext = common.ReadApkCerts(input_zip) certmap, ext = common.ReadApkCerts(input_zip)
self.assertDictEqual(self.APKCERTS_CERTMAP4, certmap) self.assertDictEqual(self.APKCERTS_CERTMAP4, certmap)
@ -973,7 +973,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
@test_utils.SkipIfExternalToolsUnavailable() @test_utils.SkipIfExternalToolsUnavailable()
def test_GetSparseImage_emptyBlockMapFile(self): def test_GetSparseImage_emptyBlockMapFile(self):
target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip') target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip')
with zipfile.ZipFile(target_files, 'w') as target_files_zip: with zipfile.ZipFile(target_files, 'w', allowZip64=True) as target_files_zip:
target_files_zip.write( target_files_zip.write(
test_utils.construct_sparse_image([ test_utils.construct_sparse_image([
(0xCAC1, 6), (0xCAC1, 6),
@ -985,7 +985,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
target_files_zip.writestr('SYSTEM/file2', os.urandom(4096 * 3)) target_files_zip.writestr('SYSTEM/file2', os.urandom(4096 * 3))
tempdir = common.UnzipTemp(target_files) tempdir = common.UnzipTemp(target_files)
with zipfile.ZipFile(target_files, 'r') as input_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as input_zip:
sparse_image = common.GetSparseImage('system', tempdir, input_zip, False) sparse_image = common.GetSparseImage('system', tempdir, input_zip, False)
self.assertDictEqual( self.assertDictEqual(
@ -1006,7 +1006,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
@test_utils.SkipIfExternalToolsUnavailable() @test_utils.SkipIfExternalToolsUnavailable()
def test_GetSparseImage_missingBlockMapFile(self): def test_GetSparseImage_missingBlockMapFile(self):
target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip') target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip')
with zipfile.ZipFile(target_files, 'w') as target_files_zip: with zipfile.ZipFile(target_files, 'w', allowZip64=True) as target_files_zip:
target_files_zip.write( target_files_zip.write(
test_utils.construct_sparse_image([ test_utils.construct_sparse_image([
(0xCAC1, 6), (0xCAC1, 6),
@ -1017,7 +1017,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
target_files_zip.writestr('SYSTEM/file2', os.urandom(4096 * 3)) target_files_zip.writestr('SYSTEM/file2', os.urandom(4096 * 3))
tempdir = common.UnzipTemp(target_files) tempdir = common.UnzipTemp(target_files)
with zipfile.ZipFile(target_files, 'r') as input_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as input_zip:
self.assertRaises( self.assertRaises(
AssertionError, common.GetSparseImage, 'system', tempdir, input_zip, AssertionError, common.GetSparseImage, 'system', tempdir, input_zip,
False) False)
@ -1026,7 +1026,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
def test_GetSparseImage_sharedBlocks_notAllowed(self): def test_GetSparseImage_sharedBlocks_notAllowed(self):
"""Tests the case of having overlapping blocks but disallowed.""" """Tests the case of having overlapping blocks but disallowed."""
target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip') target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip')
with zipfile.ZipFile(target_files, 'w') as target_files_zip: with zipfile.ZipFile(target_files, 'w', allowZip64=True) as target_files_zip:
target_files_zip.write( target_files_zip.write(
test_utils.construct_sparse_image([(0xCAC2, 16)]), test_utils.construct_sparse_image([(0xCAC2, 16)]),
arcname='IMAGES/system.img') arcname='IMAGES/system.img')
@ -1040,7 +1040,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
target_files_zip.writestr('SYSTEM/file2', os.urandom(4096 * 3)) target_files_zip.writestr('SYSTEM/file2', os.urandom(4096 * 3))
tempdir = common.UnzipTemp(target_files) tempdir = common.UnzipTemp(target_files)
with zipfile.ZipFile(target_files, 'r') as input_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as input_zip:
self.assertRaises( self.assertRaises(
AssertionError, common.GetSparseImage, 'system', tempdir, input_zip, AssertionError, common.GetSparseImage, 'system', tempdir, input_zip,
False) False)
@ -1049,7 +1049,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
def test_GetSparseImage_sharedBlocks_allowed(self): def test_GetSparseImage_sharedBlocks_allowed(self):
"""Tests the case for target using BOARD_EXT4_SHARE_DUP_BLOCKS := true.""" """Tests the case for target using BOARD_EXT4_SHARE_DUP_BLOCKS := true."""
target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip') target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip')
with zipfile.ZipFile(target_files, 'w') as target_files_zip: with zipfile.ZipFile(target_files, 'w', allowZip64=True) as target_files_zip:
# Construct an image with a care_map of "0-5 9-12". # Construct an image with a care_map of "0-5 9-12".
target_files_zip.write( target_files_zip.write(
test_utils.construct_sparse_image([(0xCAC2, 16)]), test_utils.construct_sparse_image([(0xCAC2, 16)]),
@ -1064,7 +1064,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
target_files_zip.writestr('SYSTEM/file2', os.urandom(4096 * 3)) target_files_zip.writestr('SYSTEM/file2', os.urandom(4096 * 3))
tempdir = common.UnzipTemp(target_files) tempdir = common.UnzipTemp(target_files)
with zipfile.ZipFile(target_files, 'r') as input_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as input_zip:
sparse_image = common.GetSparseImage('system', tempdir, input_zip, True) sparse_image = common.GetSparseImage('system', tempdir, input_zip, True)
self.assertDictEqual( self.assertDictEqual(
@ -1094,7 +1094,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
def test_GetSparseImage_incompleteRanges(self): def test_GetSparseImage_incompleteRanges(self):
"""Tests the case of ext4 images with holes.""" """Tests the case of ext4 images with holes."""
target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip') target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip')
with zipfile.ZipFile(target_files, 'w') as target_files_zip: with zipfile.ZipFile(target_files, 'w', allowZip64=True) as target_files_zip:
target_files_zip.write( target_files_zip.write(
test_utils.construct_sparse_image([(0xCAC2, 16)]), test_utils.construct_sparse_image([(0xCAC2, 16)]),
arcname='IMAGES/system.img') arcname='IMAGES/system.img')
@ -1108,7 +1108,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
target_files_zip.writestr('SYSTEM/file2', os.urandom(4096 * 3)) target_files_zip.writestr('SYSTEM/file2', os.urandom(4096 * 3))
tempdir = common.UnzipTemp(target_files) tempdir = common.UnzipTemp(target_files)
with zipfile.ZipFile(target_files, 'r') as input_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as input_zip:
sparse_image = common.GetSparseImage('system', tempdir, input_zip, False) sparse_image = common.GetSparseImage('system', tempdir, input_zip, False)
self.assertEqual( self.assertEqual(
@ -1119,7 +1119,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
@test_utils.SkipIfExternalToolsUnavailable() @test_utils.SkipIfExternalToolsUnavailable()
def test_GetSparseImage_systemRootImage_filenameWithExtraLeadingSlash(self): def test_GetSparseImage_systemRootImage_filenameWithExtraLeadingSlash(self):
target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip') target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip')
with zipfile.ZipFile(target_files, 'w') as target_files_zip: with zipfile.ZipFile(target_files, 'w', allowZip64=True) as target_files_zip:
target_files_zip.write( target_files_zip.write(
test_utils.construct_sparse_image([(0xCAC2, 16)]), test_utils.construct_sparse_image([(0xCAC2, 16)]),
arcname='IMAGES/system.img') arcname='IMAGES/system.img')
@ -1136,7 +1136,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
target_files_zip.writestr('SYSTEM/app/file3', os.urandom(4096 * 4)) target_files_zip.writestr('SYSTEM/app/file3', os.urandom(4096 * 4))
tempdir = common.UnzipTemp(target_files) tempdir = common.UnzipTemp(target_files)
with zipfile.ZipFile(target_files, 'r') as input_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as input_zip:
sparse_image = common.GetSparseImage('system', tempdir, input_zip, False) sparse_image = common.GetSparseImage('system', tempdir, input_zip, False)
self.assertEqual( self.assertEqual(
@ -1149,7 +1149,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
@test_utils.SkipIfExternalToolsUnavailable() @test_utils.SkipIfExternalToolsUnavailable()
def test_GetSparseImage_systemRootImage_nonSystemFiles(self): def test_GetSparseImage_systemRootImage_nonSystemFiles(self):
target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip') target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip')
with zipfile.ZipFile(target_files, 'w') as target_files_zip: with zipfile.ZipFile(target_files, 'w', allowZip64=True) as target_files_zip:
target_files_zip.write( target_files_zip.write(
test_utils.construct_sparse_image([(0xCAC2, 16)]), test_utils.construct_sparse_image([(0xCAC2, 16)]),
arcname='IMAGES/system.img') arcname='IMAGES/system.img')
@ -1163,7 +1163,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
target_files_zip.writestr('ROOT/init.rc', os.urandom(4096 * 4)) target_files_zip.writestr('ROOT/init.rc', os.urandom(4096 * 4))
tempdir = common.UnzipTemp(target_files) tempdir = common.UnzipTemp(target_files)
with zipfile.ZipFile(target_files, 'r') as input_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as input_zip:
sparse_image = common.GetSparseImage('system', tempdir, input_zip, False) sparse_image = common.GetSparseImage('system', tempdir, input_zip, False)
self.assertEqual( self.assertEqual(
@ -1174,7 +1174,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
@test_utils.SkipIfExternalToolsUnavailable() @test_utils.SkipIfExternalToolsUnavailable()
def test_GetSparseImage_fileNotFound(self): def test_GetSparseImage_fileNotFound(self):
target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip') target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip')
with zipfile.ZipFile(target_files, 'w') as target_files_zip: with zipfile.ZipFile(target_files, 'w', allowZip64=True) as target_files_zip:
target_files_zip.write( target_files_zip.write(
test_utils.construct_sparse_image([(0xCAC2, 16)]), test_utils.construct_sparse_image([(0xCAC2, 16)]),
arcname='IMAGES/system.img') arcname='IMAGES/system.img')
@ -1186,7 +1186,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
target_files_zip.writestr('SYSTEM/file1', os.urandom(4096 * 7)) target_files_zip.writestr('SYSTEM/file1', os.urandom(4096 * 7))
tempdir = common.UnzipTemp(target_files) tempdir = common.UnzipTemp(target_files)
with zipfile.ZipFile(target_files, 'r') as input_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as input_zip:
self.assertRaises( self.assertRaises(
AssertionError, common.GetSparseImage, 'system', tempdir, input_zip, AssertionError, common.GetSparseImage, 'system', tempdir, input_zip,
False) False)
@ -1274,7 +1274,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
@staticmethod @staticmethod
def _test_LoadInfoDict_createTargetFiles(info_dict, fstab_path): def _test_LoadInfoDict_createTargetFiles(info_dict, fstab_path):
target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip') target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip')
with zipfile.ZipFile(target_files, 'w') as target_files_zip: with zipfile.ZipFile(target_files, 'w', allowZip64=True) as target_files_zip:
info_values = ''.join( info_values = ''.join(
['{}={}\n'.format(k, v) for k, v in sorted(info_dict.items())]) ['{}={}\n'.format(k, v) for k, v in sorted(info_dict.items())])
common.ZipWriteStr(target_files_zip, 'META/misc_info.txt', info_values) common.ZipWriteStr(target_files_zip, 'META/misc_info.txt', info_values)
@ -1294,7 +1294,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
target_files = self._test_LoadInfoDict_createTargetFiles( target_files = self._test_LoadInfoDict_createTargetFiles(
self.INFO_DICT_DEFAULT, self.INFO_DICT_DEFAULT,
'BOOT/RAMDISK/system/etc/recovery.fstab') 'BOOT/RAMDISK/system/etc/recovery.fstab')
with zipfile.ZipFile(target_files, 'r') as target_files_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as target_files_zip:
loaded_dict = common.LoadInfoDict(target_files_zip) loaded_dict = common.LoadInfoDict(target_files_zip)
self.assertEqual(3, loaded_dict['recovery_api_version']) self.assertEqual(3, loaded_dict['recovery_api_version'])
self.assertEqual(2, loaded_dict['fstab_version']) self.assertEqual(2, loaded_dict['fstab_version'])
@ -1305,7 +1305,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
target_files = self._test_LoadInfoDict_createTargetFiles( target_files = self._test_LoadInfoDict_createTargetFiles(
self.INFO_DICT_DEFAULT, self.INFO_DICT_DEFAULT,
'BOOT/RAMDISK/etc/recovery.fstab') 'BOOT/RAMDISK/etc/recovery.fstab')
with zipfile.ZipFile(target_files, 'r') as target_files_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as target_files_zip:
loaded_dict = common.LoadInfoDict(target_files_zip) loaded_dict = common.LoadInfoDict(target_files_zip)
self.assertEqual(3, loaded_dict['recovery_api_version']) self.assertEqual(3, loaded_dict['recovery_api_version'])
self.assertEqual(2, loaded_dict['fstab_version']) self.assertEqual(2, loaded_dict['fstab_version'])
@ -1346,7 +1346,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
target_files = self._test_LoadInfoDict_createTargetFiles( target_files = self._test_LoadInfoDict_createTargetFiles(
info_dict, info_dict,
'RECOVERY/RAMDISK/system/etc/recovery.fstab') 'RECOVERY/RAMDISK/system/etc/recovery.fstab')
with zipfile.ZipFile(target_files, 'r') as target_files_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as target_files_zip:
loaded_dict = common.LoadInfoDict(target_files_zip) loaded_dict = common.LoadInfoDict(target_files_zip)
self.assertEqual(3, loaded_dict['recovery_api_version']) self.assertEqual(3, loaded_dict['recovery_api_version'])
self.assertEqual(2, loaded_dict['fstab_version']) self.assertEqual(2, loaded_dict['fstab_version'])
@ -1362,7 +1362,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
target_files = self._test_LoadInfoDict_createTargetFiles( target_files = self._test_LoadInfoDict_createTargetFiles(
info_dict, info_dict,
'RECOVERY/RAMDISK/system/etc/recovery.fstab') 'RECOVERY/RAMDISK/system/etc/recovery.fstab')
with zipfile.ZipFile(target_files, 'r') as target_files_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as target_files_zip:
loaded_dict = common.LoadInfoDict(target_files_zip) loaded_dict = common.LoadInfoDict(target_files_zip)
self.assertEqual(3, loaded_dict['recovery_api_version']) self.assertEqual(3, loaded_dict['recovery_api_version'])
self.assertEqual(2, loaded_dict['fstab_version']) self.assertEqual(2, loaded_dict['fstab_version'])
@ -1376,7 +1376,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
target_files = self._test_LoadInfoDict_createTargetFiles( target_files = self._test_LoadInfoDict_createTargetFiles(
info_dict, info_dict,
'RECOVERY/RAMDISK/system/etc/recovery.fstab') 'RECOVERY/RAMDISK/system/etc/recovery.fstab')
with zipfile.ZipFile(target_files, 'r') as target_files_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as target_files_zip:
loaded_dict = common.LoadInfoDict(target_files_zip) loaded_dict = common.LoadInfoDict(target_files_zip)
self.assertEqual(3, loaded_dict['recovery_api_version']) self.assertEqual(3, loaded_dict['recovery_api_version'])
self.assertEqual(2, loaded_dict['fstab_version']) self.assertEqual(2, loaded_dict['fstab_version'])
@ -1388,7 +1388,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
self.INFO_DICT_DEFAULT, self.INFO_DICT_DEFAULT,
'BOOT/RAMDISK/system/etc/recovery.fstab') 'BOOT/RAMDISK/system/etc/recovery.fstab')
common.ZipDelete(target_files, 'META/misc_info.txt') common.ZipDelete(target_files, 'META/misc_info.txt')
with zipfile.ZipFile(target_files, 'r') as target_files_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as target_files_zip:
self.assertRaises(ValueError, common.LoadInfoDict, target_files_zip) self.assertRaises(ValueError, common.LoadInfoDict, target_files_zip)
@test_utils.SkipIfExternalToolsUnavailable() @test_utils.SkipIfExternalToolsUnavailable()
@ -1412,7 +1412,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
target_files = self._test_LoadInfoDict_createTargetFiles( target_files = self._test_LoadInfoDict_createTargetFiles(
self.INFO_DICT_DEFAULT, self.INFO_DICT_DEFAULT,
'BOOT/RAMDISK/system/etc/recovery.fstab') 'BOOT/RAMDISK/system/etc/recovery.fstab')
with zipfile.ZipFile(target_files, 'r') as target_files_zip: with zipfile.ZipFile(target_files, 'r', allowZip64=True) as target_files_zip:
self.assertRaises( self.assertRaises(
AssertionError, common.LoadInfoDict, target_files_zip, True) AssertionError, common.LoadInfoDict, target_files_zip, True)
@ -1704,7 +1704,7 @@ class DynamicPartitionsDifferenceTest(test_utils.ReleaseToolsTestCase):
@staticmethod @staticmethod
def get_op_list(output_path): def get_op_list(output_path):
with zipfile.ZipFile(output_path) as output_zip: with zipfile.ZipFile(output_path, allowZip64=True) as output_zip:
with output_zip.open('dynamic_partitions_op_list') as op_list: with output_zip.open('dynamic_partitions_op_list') as op_list:
return [line.decode().strip() for line in op_list.readlines() return [line.decode().strip() for line in op_list.readlines()
if not line.startswith(b'#')] if not line.startswith(b'#')]
@ -1724,7 +1724,7 @@ super_group_foo_partition_list=system vendor
MockBlockDifference("vendor", FakeSparseImage(1 * GiB))] MockBlockDifference("vendor", FakeSparseImage(1 * GiB))]
dp_diff = common.DynamicPartitionsDifference(target_info, block_diffs) dp_diff = common.DynamicPartitionsDifference(target_info, block_diffs)
with zipfile.ZipFile(self.output_path, 'w') as output_zip: with zipfile.ZipFile(self.output_path, 'w', allowZip64=True) as output_zip:
dp_diff.WriteScript(self.script, output_zip, write_verify_script=True) dp_diff.WriteScript(self.script, output_zip, write_verify_script=True)
self.assertEqual(str(self.script).strip(), """ self.assertEqual(str(self.script).strip(), """
@ -1772,7 +1772,7 @@ super_group_qux_group_size={group_qux_size}
dp_diff = common.DynamicPartitionsDifference(target_info, dp_diff = common.DynamicPartitionsDifference(target_info,
block_diffs=[], block_diffs=[],
source_info_dict=source_info) source_info_dict=source_info)
with zipfile.ZipFile(self.output_path, 'w') as output_zip: with zipfile.ZipFile(self.output_path, 'w', allowZip64=True) as output_zip:
dp_diff.WriteScript(self.script, output_zip, write_verify_script=True) dp_diff.WriteScript(self.script, output_zip, write_verify_script=True)
lines = self.get_op_list(self.output_path) lines = self.get_op_list(self.output_path)
@ -1816,7 +1816,7 @@ super_group_bar_partition_list=product
dp_diff = common.DynamicPartitionsDifference(target_info, block_diffs, dp_diff = common.DynamicPartitionsDifference(target_info, block_diffs,
source_info_dict=source_info) source_info_dict=source_info)
with zipfile.ZipFile(self.output_path, 'w') as output_zip: with zipfile.ZipFile(self.output_path, 'w', allowZip64=True) as output_zip:
dp_diff.WriteScript(self.script, output_zip, write_verify_script=True) dp_diff.WriteScript(self.script, output_zip, write_verify_script=True)
metadata_idx = self.script.lines.index( metadata_idx = self.script.lines.index(
@ -1887,7 +1887,7 @@ super_group_foo_group_size={group_foo_size}
dp_diff = common.DynamicPartitionsDifference(target_info, block_diffs, dp_diff = common.DynamicPartitionsDifference(target_info, block_diffs,
source_info_dict=source_info) source_info_dict=source_info)
with zipfile.ZipFile(self.output_path, 'w') as output_zip: with zipfile.ZipFile(self.output_path, 'w', allowZip64=True) as output_zip:
dp_diff.WriteScript(self.script, output_zip, write_verify_script=True) dp_diff.WriteScript(self.script, output_zip, write_verify_script=True)
self.assertNotIn("block_image_update", str(self.script), self.assertNotIn("block_image_update", str(self.script),
@ -1910,7 +1910,7 @@ class PartitionBuildPropsTest(test_utils.ReleaseToolsTestCase):
@staticmethod @staticmethod
def _BuildZipFile(entries): def _BuildZipFile(entries):
input_file = common.MakeTempFile(prefix='target_files-', suffix='.zip') input_file = common.MakeTempFile(prefix='target_files-', suffix='.zip')
with zipfile.ZipFile(input_file, 'w') as input_zip: with zipfile.ZipFile(input_file, 'w', allowZip64=True) as input_zip:
for name, content in entries.items(): for name, content in entries.items():
input_zip.writestr(name, content) input_zip.writestr(name, content)
@ -1927,7 +1927,7 @@ class PartitionBuildPropsTest(test_utils.ReleaseToolsTestCase):
'ODM/etc/build.prop': '\n'.join(build_prop), 'ODM/etc/build.prop': '\n'.join(build_prop),
}) })
with zipfile.ZipFile(input_file, 'r') as input_zip: with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip:
placeholder_values = { placeholder_values = {
'ro.boot.product.device_name': ['std', 'pro'] 'ro.boot.product.device_name': ['std', 'pro']
} }
@ -1959,7 +1959,7 @@ class PartitionBuildPropsTest(test_utils.ReleaseToolsTestCase):
'ODM/etc/build_pro.prop': '\n'.join(build_pro_prop), 'ODM/etc/build_pro.prop': '\n'.join(build_pro_prop),
}) })
with zipfile.ZipFile(input_file, 'r') as input_zip: with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip:
placeholder_values = { placeholder_values = {
'ro.boot.product.device_name': 'std' 'ro.boot.product.device_name': 'std'
} }
@ -1974,7 +1974,7 @@ class PartitionBuildPropsTest(test_utils.ReleaseToolsTestCase):
'ro.product.odm.name': 'product1', 'ro.product.odm.name': 'product1',
}, partition_props.build_props) }, partition_props.build_props)
with zipfile.ZipFile(input_file, 'r') as input_zip: with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip:
placeholder_values = { placeholder_values = {
'ro.boot.product.device_name': 'pro' 'ro.boot.product.device_name': 'pro'
} }
@ -1995,7 +1995,7 @@ class PartitionBuildPropsTest(test_utils.ReleaseToolsTestCase):
'ODM/etc/build.prop': '\n'.join(build_prop), 'ODM/etc/build.prop': '\n'.join(build_prop),
}) })
with zipfile.ZipFile(input_file, 'r') as input_zip: with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip:
partition_props = common.PartitionBuildProps.FromInputFile( partition_props = common.PartitionBuildProps.FromInputFile(
input_zip, 'odm') input_zip, 'odm')
@ -2038,7 +2038,7 @@ class PartitionBuildPropsTest(test_utils.ReleaseToolsTestCase):
'ODM/etc/build_product2.prop': '\n'.join(product2_prop), 'ODM/etc/build_product2.prop': '\n'.join(product2_prop),
}) })
with zipfile.ZipFile(input_file, 'r') as input_zip: with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip:
placeholder_values = { placeholder_values = {
'ro.boot.product.device_name': 'std', 'ro.boot.product.device_name': 'std',
'ro.boot.product.product_name': 'product1', 'ro.boot.product.product_name': 'product1',
@ -2055,7 +2055,7 @@ class PartitionBuildPropsTest(test_utils.ReleaseToolsTestCase):
'ro.product.odm.name': 'product1' 'ro.product.odm.name': 'product1'
}, partition_props.build_props) }, partition_props.build_props)
with zipfile.ZipFile(input_file, 'r') as input_zip: with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip:
placeholder_values = { placeholder_values = {
'ro.boot.product.device_name': 'pro', 'ro.boot.product.device_name': 'pro',
'ro.boot.product.product_name': 'product2', 'ro.boot.product.product_name': 'product2',
@ -2089,7 +2089,7 @@ class PartitionBuildPropsTest(test_utils.ReleaseToolsTestCase):
'ODM/etc/build_pro.prop': '\n'.join(build_pro_prop), 'ODM/etc/build_pro.prop': '\n'.join(build_pro_prop),
}) })
with zipfile.ZipFile(input_file, 'r') as input_zip: with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip:
placeholder_values = { placeholder_values = {
'ro.boot.product.device_name': 'std', 'ro.boot.product.device_name': 'std',
} }
@ -2126,7 +2126,7 @@ class PartitionBuildPropsTest(test_utils.ReleaseToolsTestCase):
'ODM/etc/build_product2.prop': '\n'.join(product2_prop), 'ODM/etc/build_product2.prop': '\n'.join(product2_prop),
}) })
with zipfile.ZipFile(input_file, 'r') as input_zip: with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip:
placeholder_values = { placeholder_values = {
'ro.boot.product.device_name': 'std', 'ro.boot.product.device_name': 'std',
'ro.boot.product.product_name': 'product1', 'ro.boot.product.product_name': 'product1',

View File

@ -37,7 +37,7 @@ from test_utils import PropertyFilesTestCase
def construct_target_files(secondary=False): def construct_target_files(secondary=False):
"""Returns a target-files.zip file for generating OTA packages.""" """Returns a target-files.zip file for generating OTA packages."""
target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip') target_files = common.MakeTempFile(prefix='target_files-', suffix='.zip')
with zipfile.ZipFile(target_files, 'w') as target_files_zip: with zipfile.ZipFile(target_files, 'w', allowZip64=True) as target_files_zip:
# META/update_engine_config.txt # META/update_engine_config.txt
target_files_zip.writestr( target_files_zip.writestr(
'META/update_engine_config.txt', 'META/update_engine_config.txt',
@ -417,7 +417,7 @@ class OtaFromTargetFilesTest(test_utils.ReleaseToolsTestCase):
'super_google_dynamic_partitions_partition_list=system vendor product', 'super_google_dynamic_partitions_partition_list=system vendor product',
]) ])
with zipfile.ZipFile(input_file, 'a') as append_zip: with zipfile.ZipFile(input_file, 'a', allowZip64=True) as append_zip:
common.ZipWriteStr(append_zip, 'META/misc_info.txt', misc_info) common.ZipWriteStr(append_zip, 'META/misc_info.txt', misc_info)
common.ZipWriteStr(append_zip, 'META/dynamic_partitions_info.txt', common.ZipWriteStr(append_zip, 'META/dynamic_partitions_info.txt',
dynamic_partitions_info) dynamic_partitions_info)
@ -472,7 +472,7 @@ class OtaFromTargetFilesTest(test_utils.ReleaseToolsTestCase):
zip_file = PropertyFilesTest.construct_zip_package(entries) zip_file = PropertyFilesTest.construct_zip_package(entries)
# Add a large entry of 1 GiB if requested. # Add a large entry of 1 GiB if requested.
if large_entry: if large_entry:
with zipfile.ZipFile(zip_file, 'a') as zip_fp: with zipfile.ZipFile(zip_file, 'a', allowZip64=True) as zip_fp:
zip_fp.writestr( zip_fp.writestr(
# Using 'zoo' so that the entry stays behind others after signing. # Using 'zoo' so that the entry stays behind others after signing.
'zoo', 'zoo',
@ -514,7 +514,7 @@ class OtaFromTargetFilesTest(test_utils.ReleaseToolsTestCase):
'optional-entry2', 'optional-entry2',
] ]
zip_file = PropertyFilesTest.construct_zip_package(entries) zip_file = PropertyFilesTest.construct_zip_package(entries)
with zipfile.ZipFile(zip_file, 'a') as zip_fp: with zipfile.ZipFile(zip_file, 'a', allowZip64=True) as zip_fp:
zip_fp.writestr( zip_fp.writestr(
# 'foo-entry1' will appear ahead of all other entries (in alphabetical # 'foo-entry1' will appear ahead of all other entries (in alphabetical
# order) after the signing, which will in turn trigger the # order) after the signing, which will in turn trigger the
@ -558,7 +558,7 @@ class PropertyFilesTest(PropertyFilesTestCase):
) )
zip_file = self.construct_zip_package(entries) zip_file = self.construct_zip_package(entries)
property_files = TestPropertyFiles() property_files = TestPropertyFiles()
with zipfile.ZipFile(zip_file, 'r') as zip_fp: with zipfile.ZipFile(zip_file, 'r', allowZip64=True) as zip_fp:
property_files_string = property_files.Compute(zip_fp) property_files_string = property_files.Compute(zip_fp)
tokens = self._parse_property_files_string(property_files_string) tokens = self._parse_property_files_string(property_files_string)
@ -574,7 +574,7 @@ class PropertyFilesTest(PropertyFilesTestCase):
) )
zip_file = self.construct_zip_package(entries) zip_file = self.construct_zip_package(entries)
property_files = TestPropertyFiles() property_files = TestPropertyFiles()
with zipfile.ZipFile(zip_file, 'r') as zip_fp: with zipfile.ZipFile(zip_file, 'r', allowZip64=True) as zip_fp:
property_files_string = property_files.Compute(zip_fp) property_files_string = property_files.Compute(zip_fp)
tokens = self._parse_property_files_string(property_files_string) tokens = self._parse_property_files_string(property_files_string)
@ -587,7 +587,7 @@ class PropertyFilesTest(PropertyFilesTestCase):
) )
zip_file = self.construct_zip_package(entries) zip_file = self.construct_zip_package(entries)
property_files = TestPropertyFiles() property_files = TestPropertyFiles()
with zipfile.ZipFile(zip_file, 'r') as zip_fp: with zipfile.ZipFile(zip_file, 'r', allowZip64=True) as zip_fp:
self.assertRaises(KeyError, property_files.Compute, zip_fp) self.assertRaises(KeyError, property_files.Compute, zip_fp)
@test_utils.SkipIfExternalToolsUnavailable() @test_utils.SkipIfExternalToolsUnavailable()
@ -600,7 +600,7 @@ class PropertyFilesTest(PropertyFilesTestCase):
] ]
zip_file = self.construct_zip_package(entries) zip_file = self.construct_zip_package(entries)
property_files = TestPropertyFiles() property_files = TestPropertyFiles()
with zipfile.ZipFile(zip_file, 'r') as zip_fp: with zipfile.ZipFile(zip_file, 'r', allowZip64=True) as zip_fp:
raw_metadata = property_files.GetPropertyFilesString( raw_metadata = property_files.GetPropertyFilesString(
zip_fp, reserve_space=False) zip_fp, reserve_space=False)
streaming_metadata = property_files.Finalize(zip_fp, len(raw_metadata)) streaming_metadata = property_files.Finalize(zip_fp, len(raw_metadata))
@ -625,7 +625,7 @@ class PropertyFilesTest(PropertyFilesTestCase):
) )
zip_file = self.construct_zip_package(entries) zip_file = self.construct_zip_package(entries)
property_files = TestPropertyFiles() property_files = TestPropertyFiles()
with zipfile.ZipFile(zip_file, 'r') as zip_fp: with zipfile.ZipFile(zip_file, 'r', allowZip64=True) as zip_fp:
# First get the raw metadata string (i.e. without padding space). # First get the raw metadata string (i.e. without padding space).
raw_metadata = property_files.GetPropertyFilesString( raw_metadata = property_files.GetPropertyFilesString(
zip_fp, reserve_space=False) zip_fp, reserve_space=False)
@ -660,7 +660,7 @@ class PropertyFilesTest(PropertyFilesTestCase):
) )
zip_file = self.construct_zip_package(entries) zip_file = self.construct_zip_package(entries)
property_files = TestPropertyFiles() property_files = TestPropertyFiles()
with zipfile.ZipFile(zip_file, 'r') as zip_fp: with zipfile.ZipFile(zip_file, 'r', allowZip64=True) as zip_fp:
# First get the raw metadata string (i.e. without padding space). # First get the raw metadata string (i.e. without padding space).
raw_metadata = property_files.GetPropertyFilesString( raw_metadata = property_files.GetPropertyFilesString(
zip_fp, reserve_space=False) zip_fp, reserve_space=False)
@ -702,7 +702,7 @@ class StreamingPropertyFilesTest(PropertyFilesTestCase):
) )
zip_file = self.construct_zip_package(entries) zip_file = self.construct_zip_package(entries)
property_files = StreamingPropertyFiles() property_files = StreamingPropertyFiles()
with zipfile.ZipFile(zip_file, 'r') as zip_fp: with zipfile.ZipFile(zip_file, 'r', allowZip64=True) as zip_fp:
property_files_string = property_files.Compute(zip_fp) property_files_string = property_files.Compute(zip_fp)
tokens = self._parse_property_files_string(property_files_string) tokens = self._parse_property_files_string(property_files_string)
@ -720,7 +720,7 @@ class StreamingPropertyFilesTest(PropertyFilesTestCase):
] ]
zip_file = self.construct_zip_package(entries) zip_file = self.construct_zip_package(entries)
property_files = StreamingPropertyFiles() property_files = StreamingPropertyFiles()
with zipfile.ZipFile(zip_file, 'r') as zip_fp: with zipfile.ZipFile(zip_file, 'r', allowZip64=True) as zip_fp:
raw_metadata = property_files.GetPropertyFilesString( raw_metadata = property_files.GetPropertyFilesString(
zip_fp, reserve_space=False) zip_fp, reserve_space=False)
streaming_metadata = property_files.Finalize(zip_fp, len(raw_metadata)) streaming_metadata = property_files.Finalize(zip_fp, len(raw_metadata))
@ -744,7 +744,7 @@ class StreamingPropertyFilesTest(PropertyFilesTestCase):
) )
zip_file = self.construct_zip_package(entries) zip_file = self.construct_zip_package(entries)
property_files = StreamingPropertyFiles() property_files = StreamingPropertyFiles()
with zipfile.ZipFile(zip_file, 'r') as zip_fp: with zipfile.ZipFile(zip_file, 'r', allowZip64=True) as zip_fp:
# First get the raw metadata string (i.e. without padding space). # First get the raw metadata string (i.e. without padding space).
raw_metadata = property_files.GetPropertyFilesString( raw_metadata = property_files.GetPropertyFilesString(
zip_fp, reserve_space=False) zip_fp, reserve_space=False)
@ -802,7 +802,7 @@ class AbOtaPropertyFilesTest(PropertyFilesTestCase):
payload.Sign(payload_signer) payload.Sign(payload_signer)
output_file = common.MakeTempFile(suffix='.zip') output_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(output_file, 'w') as output_zip: with zipfile.ZipFile(output_file, 'w', allowZip64=True) as output_zip:
payload.WriteToZip(output_zip) payload.WriteToZip(output_zip)
# Find out the payload metadata offset and size. # Find out the payload metadata offset and size.
@ -867,7 +867,7 @@ class AbOtaPropertyFilesTest(PropertyFilesTestCase):
payload.Sign(payload_signer) payload.Sign(payload_signer)
zip_file = common.MakeTempFile(suffix='.zip') zip_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(zip_file, 'w') as zip_fp: with zipfile.ZipFile(zip_file, 'w', allowZip64=True) as zip_fp:
# 'payload.bin', # 'payload.bin',
payload.WriteToZip(zip_fp) payload.WriteToZip(zip_fp)
@ -889,7 +889,7 @@ class AbOtaPropertyFilesTest(PropertyFilesTestCase):
def test_Compute(self): def test_Compute(self):
zip_file = self.construct_zip_package_withValidPayload() zip_file = self.construct_zip_package_withValidPayload()
property_files = AbOtaPropertyFiles() property_files = AbOtaPropertyFiles()
with zipfile.ZipFile(zip_file, 'r') as zip_fp: with zipfile.ZipFile(zip_file, 'r', allowZip64=True) as zip_fp:
property_files_string = property_files.Compute(zip_fp) property_files_string = property_files.Compute(zip_fp)
tokens = self._parse_property_files_string(property_files_string) tokens = self._parse_property_files_string(property_files_string)
@ -903,7 +903,7 @@ class AbOtaPropertyFilesTest(PropertyFilesTestCase):
def test_Finalize(self): def test_Finalize(self):
zip_file = self.construct_zip_package_withValidPayload(with_metadata=True) zip_file = self.construct_zip_package_withValidPayload(with_metadata=True)
property_files = AbOtaPropertyFiles() property_files = AbOtaPropertyFiles()
with zipfile.ZipFile(zip_file, 'r') as zip_fp: with zipfile.ZipFile(zip_file, 'r', allowZip64=True) as zip_fp:
raw_metadata = property_files.GetPropertyFilesString( raw_metadata = property_files.GetPropertyFilesString(
zip_fp, reserve_space=False) zip_fp, reserve_space=False)
property_files_string = property_files.Finalize( property_files_string = property_files.Finalize(
@ -920,7 +920,7 @@ class AbOtaPropertyFilesTest(PropertyFilesTestCase):
def test_Verify(self): def test_Verify(self):
zip_file = self.construct_zip_package_withValidPayload(with_metadata=True) zip_file = self.construct_zip_package_withValidPayload(with_metadata=True)
property_files = AbOtaPropertyFiles() property_files = AbOtaPropertyFiles()
with zipfile.ZipFile(zip_file, 'r') as zip_fp: with zipfile.ZipFile(zip_file, 'r', allowZip64=True) as zip_fp:
raw_metadata = property_files.GetPropertyFilesString( raw_metadata = property_files.GetPropertyFilesString(
zip_fp, reserve_space=False) zip_fp, reserve_space=False)
@ -1087,7 +1087,7 @@ class PayloadTest(test_utils.ReleaseToolsTestCase):
payload.Sign(PayloadSigner()) payload.Sign(PayloadSigner())
output_file = common.MakeTempFile(suffix='.zip') output_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(output_file, 'w') as output_zip: with zipfile.ZipFile(output_file, 'w', allowZip64=True) as output_zip:
payload.WriteToZip(output_zip) payload.WriteToZip(output_zip)
import check_ota_package_signature import check_ota_package_signature
@ -1101,7 +1101,7 @@ class PayloadTest(test_utils.ReleaseToolsTestCase):
payload.Sign(PayloadSigner()) payload.Sign(PayloadSigner())
output_file = common.MakeTempFile(suffix='.zip') output_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(output_file, 'w') as output_zip: with zipfile.ZipFile(output_file, 'w', allowZip64=True) as output_zip:
payload.WriteToZip(output_zip) payload.WriteToZip(output_zip)
import check_ota_package_signature import check_ota_package_signature
@ -1140,7 +1140,7 @@ class PayloadTest(test_utils.ReleaseToolsTestCase):
payload.Sign(PayloadSigner()) payload.Sign(PayloadSigner())
output_file = common.MakeTempFile(suffix='.zip') output_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(output_file, 'w') as output_zip: with zipfile.ZipFile(output_file, 'w', allowZip64=True) as output_zip:
payload.WriteToZip(output_zip) payload.WriteToZip(output_zip)
with zipfile.ZipFile(output_file) as verify_zip: with zipfile.ZipFile(output_file) as verify_zip:
@ -1162,14 +1162,14 @@ class PayloadTest(test_utils.ReleaseToolsTestCase):
payload = self._create_payload_full() payload = self._create_payload_full()
output_file = common.MakeTempFile(suffix='.zip') output_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(output_file, 'w') as output_zip: with zipfile.ZipFile(output_file, 'w', allowZip64=True) as output_zip:
self.assertRaises(AssertionError, payload.WriteToZip, output_zip) self.assertRaises(AssertionError, payload.WriteToZip, output_zip)
# Also test with incremental payload. # Also test with incremental payload.
payload = self._create_payload_incremental() payload = self._create_payload_incremental()
output_file = common.MakeTempFile(suffix='.zip') output_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(output_file, 'w') as output_zip: with zipfile.ZipFile(output_file, 'w', allowZip64=True) as output_zip:
self.assertRaises(AssertionError, payload.WriteToZip, output_zip) self.assertRaises(AssertionError, payload.WriteToZip, output_zip)
@test_utils.SkipIfExternalToolsUnavailable() @test_utils.SkipIfExternalToolsUnavailable()
@ -1178,7 +1178,7 @@ class PayloadTest(test_utils.ReleaseToolsTestCase):
payload.Sign(PayloadSigner()) payload.Sign(PayloadSigner())
output_file = common.MakeTempFile(suffix='.zip') output_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(output_file, 'w') as output_zip: with zipfile.ZipFile(output_file, 'w', allowZip64=True) as output_zip:
payload.WriteToZip(output_zip) payload.WriteToZip(output_zip)
with zipfile.ZipFile(output_file) as verify_zip: with zipfile.ZipFile(output_file) as verify_zip:

View File

@ -164,15 +164,15 @@ name="apex.apexd_test_different_app.apex" public_key="system/apex/apexd/apexd_te
"veritykeyid=id:d24f2590e9abab5cff5f59da4c4f0366e3f43e94\n") "veritykeyid=id:d24f2590e9abab5cff5f59da4c4f0366e3f43e94\n")
input_file = common.MakeTempFile(suffix='.zip') input_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(input_file, 'w') as input_zip: with zipfile.ZipFile(input_file, 'w', allowZip64=True) as input_zip:
input_zip.writestr('BOOT/cmdline', BOOT_CMDLINE1) input_zip.writestr('BOOT/cmdline', BOOT_CMDLINE1)
# Test with the first certificate. # Test with the first certificate.
cert_file = os.path.join(self.testdata_dir, 'verity.x509.pem') cert_file = os.path.join(self.testdata_dir, 'verity.x509.pem')
output_file = common.MakeTempFile(suffix='.zip') output_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(input_file, 'r') as input_zip, \ with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip, \
zipfile.ZipFile(output_file, 'w') as output_zip: zipfile.ZipFile(output_file, 'w', allowZip64=True) as output_zip:
ReplaceVerityKeyId(input_zip, output_zip, cert_file) ReplaceVerityKeyId(input_zip, output_zip, cert_file)
with zipfile.ZipFile(output_file) as output_zip: with zipfile.ZipFile(output_file) as output_zip:
@ -181,8 +181,8 @@ name="apex.apexd_test_different_app.apex" public_key="system/apex/apexd/apexd_te
# Test with the second certificate. # Test with the second certificate.
cert_file = os.path.join(self.testdata_dir, 'testkey.x509.pem') cert_file = os.path.join(self.testdata_dir, 'testkey.x509.pem')
with zipfile.ZipFile(input_file, 'r') as input_zip, \ with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip, \
zipfile.ZipFile(output_file, 'w') as output_zip: zipfile.ZipFile(output_file, 'w', allowZip64=True) as output_zip:
ReplaceVerityKeyId(input_zip, output_zip, cert_file) ReplaceVerityKeyId(input_zip, output_zip, cert_file)
with zipfile.ZipFile(output_file) as output_zip: with zipfile.ZipFile(output_file) as output_zip:
@ -195,12 +195,12 @@ name="apex.apexd_test_different_app.apex" public_key="system/apex/apexd/apexd_te
"loop.max_part=7\n") "loop.max_part=7\n")
input_file = common.MakeTempFile(suffix='.zip') input_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(input_file, 'w') as input_zip: with zipfile.ZipFile(input_file, 'w', allowZip64=True) as input_zip:
input_zip.writestr('BOOT/cmdline', BOOT_CMDLINE) input_zip.writestr('BOOT/cmdline', BOOT_CMDLINE)
output_file = common.MakeTempFile(suffix='.zip') output_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(input_file, 'r') as input_zip, \ with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip, \
zipfile.ZipFile(output_file, 'w') as output_zip: zipfile.ZipFile(output_file, 'w', allowZip64=True) as output_zip:
ReplaceVerityKeyId(input_zip, output_zip, None) ReplaceVerityKeyId(input_zip, output_zip, None)
with zipfile.ZipFile(output_file) as output_zip: with zipfile.ZipFile(output_file) as output_zip:
@ -284,7 +284,7 @@ name="apex.apexd_test_different_app.apex" public_key="system/apex/apexd/apexd_te
] ]
entry_name = 'SYSTEM/etc/security/otacerts.zip' entry_name = 'SYSTEM/etc/security/otacerts.zip'
output_file = common.MakeTempFile(suffix='.zip') output_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(output_file, 'w') as output_zip: with zipfile.ZipFile(output_file, 'w', allowZip64=True) as output_zip:
WriteOtacerts(output_zip, entry_name, certs) WriteOtacerts(output_zip, entry_name, certs)
with zipfile.ZipFile(output_file) as input_zip: with zipfile.ZipFile(output_file) as input_zip:
self.assertIn(entry_name, input_zip.namelist()) self.assertIn(entry_name, input_zip.namelist())
@ -294,7 +294,7 @@ name="apex.apexd_test_different_app.apex" public_key="system/apex/apexd/apexd_te
def test_CheckApkAndApexKeysAvailable(self): def test_CheckApkAndApexKeysAvailable(self):
input_file = common.MakeTempFile(suffix='.zip') input_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(input_file, 'w') as input_zip: with zipfile.ZipFile(input_file, 'w', allowZip64=True) as input_zip:
input_zip.writestr('SYSTEM/app/App1.apk', "App1-content") input_zip.writestr('SYSTEM/app/App1.apk', "App1-content")
input_zip.writestr('SYSTEM/app/App2.apk.gz', "App2-content") input_zip.writestr('SYSTEM/app/App2.apk.gz', "App2-content")
@ -318,7 +318,7 @@ name="apex.apexd_test_different_app.apex" public_key="system/apex/apexd/apexd_te
def test_CheckApkAndApexKeysAvailable_invalidApexKeys(self): def test_CheckApkAndApexKeysAvailable_invalidApexKeys(self):
input_file = common.MakeTempFile(suffix='.zip') input_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(input_file, 'w') as input_zip: with zipfile.ZipFile(input_file, 'w', allowZip64=True) as input_zip:
input_zip.writestr('SYSTEM/apex/Apex1.apex', "Apex1-content") input_zip.writestr('SYSTEM/apex/Apex1.apex', "Apex1-content")
input_zip.writestr('SYSTEM/apex/Apex2.apex', "Apex2-content") input_zip.writestr('SYSTEM/apex/Apex2.apex', "Apex2-content")
@ -466,10 +466,10 @@ name="apex.apexd_test_different_app.apex" public_key="system/apex/apexd/apexd_te
def test_ReadApexKeysInfo(self): def test_ReadApexKeysInfo(self):
target_files = common.MakeTempFile(suffix='.zip') target_files = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(target_files, 'w') as target_files_zip: with zipfile.ZipFile(target_files, 'w', allowZip64=True) as target_files_zip:
target_files_zip.writestr('META/apexkeys.txt', self.APEX_KEYS_TXT) target_files_zip.writestr('META/apexkeys.txt', self.APEX_KEYS_TXT)
with zipfile.ZipFile(target_files) as target_files_zip: with zipfile.ZipFile(target_files, allowZip64=True) as target_files_zip:
keys_info = ReadApexKeysInfo(target_files_zip) keys_info = ReadApexKeysInfo(target_files_zip)
self.assertEqual({ self.assertEqual({
@ -491,10 +491,10 @@ name="apex.apexd_test_different_app.apex" public_key="system/apex/apexd/apexd_te
'container_private_key="build/make/target/product/security/testkey2.pk8" ' 'container_private_key="build/make/target/product/security/testkey2.pk8" '
'partition="system"') 'partition="system"')
target_files = common.MakeTempFile(suffix='.zip') target_files = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(target_files, 'w') as target_files_zip: with zipfile.ZipFile(target_files, 'w', allowZip64=True) as target_files_zip:
target_files_zip.writestr('META/apexkeys.txt', apex_keys) target_files_zip.writestr('META/apexkeys.txt', apex_keys)
with zipfile.ZipFile(target_files) as target_files_zip: with zipfile.ZipFile(target_files, allowZip64=True) as target_files_zip:
self.assertRaises(ValueError, ReadApexKeysInfo, target_files_zip) self.assertRaises(ValueError, ReadApexKeysInfo, target_files_zip)
def test_ReadApexKeysInfo_missingPayloadPrivateKey(self): def test_ReadApexKeysInfo_missingPayloadPrivateKey(self):
@ -505,10 +505,10 @@ name="apex.apexd_test_different_app.apex" public_key="system/apex/apexd/apexd_te
'container_certificate="build/make/target/product/security/testkey.x509.pem" ' 'container_certificate="build/make/target/product/security/testkey.x509.pem" '
'container_private_key="build/make/target/product/security/testkey.pk8"') 'container_private_key="build/make/target/product/security/testkey.pk8"')
target_files = common.MakeTempFile(suffix='.zip') target_files = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(target_files, 'w') as target_files_zip: with zipfile.ZipFile(target_files, 'w', allowZip64=True) as target_files_zip:
target_files_zip.writestr('META/apexkeys.txt', apex_keys) target_files_zip.writestr('META/apexkeys.txt', apex_keys)
with zipfile.ZipFile(target_files) as target_files_zip: with zipfile.ZipFile(target_files, allowZip64=True) as target_files_zip:
keys_info = ReadApexKeysInfo(target_files_zip) keys_info = ReadApexKeysInfo(target_files_zip)
self.assertEqual({ self.assertEqual({
@ -528,10 +528,10 @@ name="apex.apexd_test_different_app.apex" public_key="system/apex/apexd/apexd_te
'container_certificate="build/make/target/product/security/testkey.x509.pem" ' 'container_certificate="build/make/target/product/security/testkey.x509.pem" '
'container_private_key="build/make/target/product/security/testkey.pk8"') 'container_private_key="build/make/target/product/security/testkey.pk8"')
target_files = common.MakeTempFile(suffix='.zip') target_files = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(target_files, 'w') as target_files_zip: with zipfile.ZipFile(target_files, 'w', allowZip64=True) as target_files_zip:
target_files_zip.writestr('META/apexkeys.txt', apex_keys) target_files_zip.writestr('META/apexkeys.txt', apex_keys)
with zipfile.ZipFile(target_files) as target_files_zip: with zipfile.ZipFile(target_files, allowZip64=True) as target_files_zip:
keys_info = ReadApexKeysInfo(target_files_zip) keys_info = ReadApexKeysInfo(target_files_zip)
self.assertEqual({ self.assertEqual({
@ -551,10 +551,10 @@ name="apex.apexd_test_different_app.apex" public_key="system/apex/apexd/apexd_te
'container_certificate="PRESIGNED" ' 'container_certificate="PRESIGNED" '
'container_private_key="PRESIGNED"') 'container_private_key="PRESIGNED"')
target_files = common.MakeTempFile(suffix='.zip') target_files = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(target_files, 'w') as target_files_zip: with zipfile.ZipFile(target_files, 'w', allowZip64=True) as target_files_zip:
target_files_zip.writestr('META/apexkeys.txt', apex_keys) target_files_zip.writestr('META/apexkeys.txt', apex_keys)
with zipfile.ZipFile(target_files) as target_files_zip: with zipfile.ZipFile(target_files, allowZip64=True) as target_files_zip:
keys_info = ReadApexKeysInfo(target_files_zip) keys_info = ReadApexKeysInfo(target_files_zip)
self.assertEqual({ self.assertEqual({
@ -574,10 +574,10 @@ name="apex.apexd_test_different_app.apex" public_key="system/apex/apexd/apexd_te
'container_certificate="PRESIGNED" ' 'container_certificate="PRESIGNED" '
'container_private_key="PRESIGNED"') 'container_private_key="PRESIGNED"')
target_files = common.MakeTempFile(suffix='.zip') target_files = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(target_files, 'w') as target_files_zip: with zipfile.ZipFile(target_files, 'w', allowZip64=True) as target_files_zip:
target_files_zip.writestr('META/apexkeys.txt', apex_keys) target_files_zip.writestr('META/apexkeys.txt', apex_keys)
with zipfile.ZipFile(target_files) as target_files_zip: with zipfile.ZipFile(target_files, allowZip64=True) as target_files_zip:
keys_info = ReadApexKeysInfo(target_files_zip) keys_info = ReadApexKeysInfo(target_files_zip)
self.assertEqual({ self.assertEqual({

View File

@ -199,7 +199,7 @@ class PropertyFilesTestCase(ReleaseToolsTestCase):
@staticmethod @staticmethod
def construct_zip_package(entries): def construct_zip_package(entries):
zip_file = common.MakeTempFile(suffix='.zip') zip_file = common.MakeTempFile(suffix='.zip')
with zipfile.ZipFile(zip_file, 'w') as zip_fp: with zipfile.ZipFile(zip_file, 'w', allowZip64=True) as zip_fp:
for entry in entries: for entry in entries:
zip_fp.writestr( zip_fp.writestr(
entry, entry,

View File

@ -272,7 +272,7 @@ class ValidateTargetFilesTest(test_utils.ReleaseToolsTestCase):
input_file = common.MakeTempFile() input_file = common.MakeTempFile()
all_entries = ['SYSTEM/', 'SYSTEM/b', 'SYSTEM/a', 'IMAGES/', all_entries = ['SYSTEM/', 'SYSTEM/b', 'SYSTEM/a', 'IMAGES/',
'IMAGES/system.map', 'IMAGES/system.img'] 'IMAGES/system.map', 'IMAGES/system.img']
with zipfile.ZipFile(input_file, 'w') as input_zip: with zipfile.ZipFile(input_file, 'w', allowZip64=True) as input_zip:
for name in all_entries: for name in all_entries:
input_zip.write(os.path.join(input_tmp, name), arcname=name) input_zip.write(os.path.join(input_tmp, name), arcname=name)
@ -321,7 +321,7 @@ class ValidateTargetFilesTest(test_utils.ReleaseToolsTestCase):
input_file = common.MakeTempFile() input_file = common.MakeTempFile()
all_entries = ['SYSTEM/', 'SYSTEM/abc', 'IMAGES/', all_entries = ['SYSTEM/', 'SYSTEM/abc', 'IMAGES/',
'IMAGES/system.map', 'IMAGES/system.img'] 'IMAGES/system.map', 'IMAGES/system.img']
with zipfile.ZipFile(input_file, 'w') as input_zip: with zipfile.ZipFile(input_file, 'w', allowZip64=True) as input_zip:
for name in all_entries: for name in all_entries:
input_zip.write(os.path.join(input_tmp, name), arcname=name) input_zip.write(os.path.join(input_tmp, name), arcname=name)

View File

@ -487,7 +487,7 @@ def main():
input_tmp = common.UnzipTemp(args.target_files) input_tmp = common.UnzipTemp(args.target_files)
info_dict = common.LoadInfoDict(input_tmp) info_dict = common.LoadInfoDict(input_tmp)
with zipfile.ZipFile(args.target_files, 'r') as input_zip: with zipfile.ZipFile(args.target_files, 'r', allowZip64=True) as input_zip:
ValidateFileConsistency(input_zip, input_tmp, info_dict) ValidateFileConsistency(input_zip, input_tmp, info_dict)
CheckBuildPropDuplicity(input_tmp) CheckBuildPropDuplicity(input_tmp)