diff --git a/tools/releasetools/apex_utils.py b/tools/releasetools/apex_utils.py index 8783f25b46..3eb5196e6d 100644 --- a/tools/releasetools/apex_utils.py +++ b/tools/releasetools/apex_utils.py @@ -177,7 +177,7 @@ class ApexApkSigner(object): # Add the payload image back to the apex file. 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, compress_type=zipfile.ZIP_STORED) 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) if APEX_PUBKEY in zip_items: 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_public_key, arcname=APEX_PUBKEY) common.ZipClose(apex_zip) diff --git a/tools/releasetools/check_ota_package_signature.py b/tools/releasetools/check_ota_package_signature.py index 0d990f117c..58510a52d2 100755 --- a/tools/releasetools/check_ota_package_signature.py +++ b/tools/releasetools/check_ota_package_signature.py @@ -140,7 +140,7 @@ def VerifyPackage(cert, package): def VerifyAbOtaPayload(cert, package): """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(): common.ZipClose(package_zip) return diff --git a/tools/releasetools/check_target_files_vintf.py b/tools/releasetools/check_target_files_vintf.py index 0edefac9c1..3c2406c22d 100755 --- a/tools/releasetools/check_target_files_vintf.py +++ b/tools/releasetools/check_target_files_vintf.py @@ -252,7 +252,7 @@ def HasTrebleEnabled(target_files, target_info): if os.path.isdir(target_files): return os.path.isdir(os.path.join(target_files, "VENDOR")) 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") return (HasVendorPartition(target_files) and diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index c77d8c68d5..f5dfbecffe 100644 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -1568,7 +1568,7 @@ def UnzipToDir(filename, dirname, patterns=None): cmd = ["unzip", "-o", "-q", filename, "-d", dirname] if patterns is not None: # 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() filtered = [ pattern for pattern in patterns if fnmatch.filter(names, pattern)] diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py index 2833397ed8..18b2b76227 100755 --- a/tools/releasetools/ota_from_target_files.py +++ b/tools/releasetools/ota_from_target_files.py @@ -656,7 +656,7 @@ def GetTargetFilesZipForSecondaryImages(input_file, skip_postinstall=False): target_file = common.MakeTempFile(prefix="targetfiles-", suffix=".zip") 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() 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. """ # 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(): return input_file @@ -754,7 +754,7 @@ def GetTargetFilesZipForRetrofitDynamicPartitions(input_file, target_file = common.MakeTempFile(prefix="targetfiles-", suffix=".zip") 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() input_tmp = common.UnzipTemp(input_file, RETROFIT_DAP_UNZIP_PATTERN) @@ -822,7 +822,7 @@ def GenerateAbOtaPackage(target_file, output_file, source_file=None): else: staging_file = output_file output_zip = zipfile.ZipFile(staging_file, "w", - compression=zipfile.ZIP_DEFLATED) + compression=zipfile.ZIP_DEFLATED, allowZip64=True) if source_file is not None: 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 # 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 target_info.get("avb_enable") == "true"): 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: OPTIONS.info_dict = common.LoadInfoDict(OPTIONS.extracted_input) 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) logger.info("--- target info ---") @@ -1078,7 +1078,7 @@ def main(argv): # Load the source build dict if applicable. if OPTIONS.incremental_source is not None: 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) logger.info("--- source info ---") diff --git a/tools/releasetools/ota_package_parser.py b/tools/releasetools/ota_package_parser.py index 331122b51c..1e733b9ce8 100755 --- a/tools/releasetools/ota_package_parser.py +++ b/tools/releasetools/ota_package_parser.py @@ -215,7 +215,7 @@ def main(argv): logging.basicConfig(level=logging.INFO, format=logging_format) 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.Analyze() except: diff --git a/tools/releasetools/ota_utils.py b/tools/releasetools/ota_utils.py index d444d41f83..f0e4fcfeca 100644 --- a/tools/releasetools/ota_utils.py +++ b/tools/releasetools/ota_utils.py @@ -62,7 +62,7 @@ def FinalizeMetadata(metadata, input_file, output_file, needed_property_files): def ComputeAllPropertyFiles(input_file, needed_property_files): # 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: metadata.property_files[property_files.name] = property_files.Compute( 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: 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) ZipClose(output_zip) @@ -82,7 +82,7 @@ def FinalizeMetadata(metadata, input_file, output_file, needed_property_files): return prelim_signing 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: metadata.property_files[property_files.name] = property_files.Finalize( prelim_signing_zip, @@ -108,7 +108,7 @@ def FinalizeMetadata(metadata, input_file, output_file, needed_property_files): # Replace the METADATA entry. 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) ZipClose(output_zip) @@ -119,7 +119,7 @@ def FinalizeMetadata(metadata, input_file, output_file, needed_property_files): SignOutput(prelim_signing, output_file) # 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: property_files.Verify( 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) input_file = info_dict[partition_prop_key].input_file 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] = \ PartitionBuildProps.FromInputFile(input_zip, partition, placeholder_values) diff --git a/tools/releasetools/sign_target_files_apks.py b/tools/releasetools/sign_target_files_apks.py index b4646b7c75..220f5192a5 100755 --- a/tools/releasetools/sign_target_files_apks.py +++ b/tools/releasetools/sign_target_files_apks.py @@ -813,7 +813,7 @@ def WriteOtacerts(output_zip, filename, keys): keys: A list of public keys to use during OTA package verification. """ temp_file = io.BytesIO() - certs_zip = zipfile.ZipFile(temp_file, "w") + certs_zip = zipfile.ZipFile(temp_file, "w", allowZip64=True) for k in keys: common.ZipWrite(certs_zip, k) common.ZipClose(certs_zip) @@ -1294,7 +1294,7 @@ def main(argv): 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", compression=zipfile.ZIP_DEFLATED, allowZip64=True) diff --git a/tools/releasetools/test_add_img_to_target_files.py b/tools/releasetools/test_add_img_to_target_files.py index efa60b67f3..6b7a7db4e4 100644 --- a/tools/releasetools/test_add_img_to_target_files.py +++ b/tools/releasetools/test_add_img_to_target_files.py @@ -93,10 +93,10 @@ class AddImagesToTargetFilesTest(test_utils.ReleaseToolsTestCase): # Set up the output 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) - with zipfile.ZipFile(output_file, 'r') as verify_zip: + with zipfile.ZipFile(output_file, 'r', allowZip64=True) as verify_zip: for image in images: self.assertIn('IMAGES/' + image + '.img', verify_zip.namelist()) @@ -344,12 +344,12 @@ class AddImagesToTargetFilesTest(test_utils.ReleaseToolsTestCase): image_paths = self._test_AddCareMapForAbOta() 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) care_map_name = "META/care_map.pb" 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()) verify_zip.extract(care_map_name, path=temp_dir) @@ -367,7 +367,7 @@ class AddImagesToTargetFilesTest(test_utils.ReleaseToolsTestCase): image_paths = self._test_AddCareMapForAbOta() 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. common.ZipWriteStr(output_zip, 'META/care_map.pb', 'fake care_map.pb') diff --git a/tools/releasetools/test_apex_utils.py b/tools/releasetools/test_apex_utils.py index 339ddc73df..71f643378d 100644 --- a/tools/releasetools/test_apex_utils.py +++ b/tools/releasetools/test_apex_utils.py @@ -174,8 +174,8 @@ class ApexUtilsTest(test_utils.ReleaseToolsTestCase): @test_utils.SkipIfExternalToolsUnavailable() def test_ApexApkSigner_noAssetDir(self): no_asset = common.MakeTempFile(suffix='.apex') - with zipfile.ZipFile(no_asset, 'w') as output_zip: - with zipfile.ZipFile(self.apex_with_apk, 'r') as input_zip: + with zipfile.ZipFile(no_asset, 'w', allowZip64=True) as output_zip: + with zipfile.ZipFile(self.apex_with_apk, 'r', allowZip64=True) as input_zip: name_list = input_zip.namelist() for name in name_list: if not name.startswith('assets'): diff --git a/tools/releasetools/test_common.py b/tools/releasetools/test_common.py index 81ee53d555..22fc85adf1 100644 --- a/tools/releasetools/test_common.py +++ b/tools/releasetools/test_common.py @@ -363,7 +363,7 @@ class CommonZipTest(test_utils.ReleaseToolsTestCase): self.assertEqual(int(expected_stat.st_mtime), int(new_stat.st_mtime)) # 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. info = zip_file.getinfo(arcname) @@ -399,7 +399,7 @@ class CommonZipTest(test_utils.ReleaseToolsTestCase): arcname = arcname[1:] zip_file.close() - zip_file = zipfile.ZipFile(zip_file_name, "w") + zip_file = zipfile.ZipFile(zip_file_name, "w", allowZip64=True) try: sha1_hash = sha1() @@ -431,7 +431,7 @@ class CommonZipTest(test_utils.ReleaseToolsTestCase): zip_file_name = zip_file.name zip_file.close() - zip_file = zipfile.ZipFile(zip_file_name, "w") + zip_file = zipfile.ZipFile(zip_file_name, "w", allowZip64=True) try: expected_compress_type = extra_args.get("compress_type", @@ -475,7 +475,7 @@ class CommonZipTest(test_utils.ReleaseToolsTestCase): arcname_large = arcname_large[1:] zip_file.close() - zip_file = zipfile.ZipFile(zip_file_name, "w") + zip_file = zipfile.ZipFile(zip_file_name, "w", allowZip64=True) try: sha1_hash = sha1() @@ -599,7 +599,7 @@ class CommonZipTest(test_utils.ReleaseToolsTestCase): try: 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. common.ZipWriteStr(zip_file, "foo", random_string) # Honor the specified perms. @@ -644,7 +644,7 @@ class CommonZipTest(test_utils.ReleaseToolsTestCase): try: 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() self.assertTrue('Test1' in entries) self.assertFalse('Test2' in entries) @@ -652,21 +652,21 @@ class CommonZipTest(test_utils.ReleaseToolsTestCase): self.assertRaises( 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() self.assertTrue('Test1' in entries) self.assertFalse('Test2' in entries) self.assertTrue('Test3' in entries) 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() self.assertTrue('Test1' in entries) self.assertFalse('Test2' in entries) self.assertFalse('Test3' in entries) 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() self.assertFalse('Test1' in entries) self.assertFalse('Test2' in entries) @@ -834,7 +834,7 @@ class CommonApkUtilsTest(test_utils.ReleaseToolsTestCase): if additional is None: additional = [] 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) for entry in additional: target_files_zip.writestr(entry, '') @@ -842,7 +842,7 @@ class CommonApkUtilsTest(test_utils.ReleaseToolsTestCase): def test_ReadApkCerts_NoncompressedApks(self): 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) self.assertDictEqual(self.APKCERTS_CERTMAP1, certmap) @@ -855,7 +855,7 @@ class CommonApkUtilsTest(test_utils.ReleaseToolsTestCase): self.APKCERTS_TXT2, ['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) self.assertDictEqual(self.APKCERTS_CERTMAP2, certmap) @@ -865,7 +865,7 @@ class CommonApkUtilsTest(test_utils.ReleaseToolsTestCase): target_files = self._write_apkcerts_txt( 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) self.assertDictEqual(self.APKCERTS_CERTMAP3, certmap) @@ -876,7 +876,7 @@ class CommonApkUtilsTest(test_utils.ReleaseToolsTestCase): self.APKCERTS_TXT1 + self.APKCERTS_TXT2, ['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_merged = self.APKCERTS_CERTMAP1.copy() @@ -889,7 +889,7 @@ class CommonApkUtilsTest(test_utils.ReleaseToolsTestCase): self.APKCERTS_TXT2 + self.APKCERTS_TXT3, ['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) def test_ReadApkCerts_MismatchingKeys(self): @@ -899,12 +899,12 @@ class CommonApkUtilsTest(test_utils.ReleaseToolsTestCase): ) 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) def test_ReadApkCerts_WithWithoutOptionalFields(self): 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) self.assertDictEqual(self.APKCERTS_CERTMAP4, certmap) @@ -973,7 +973,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): @test_utils.SkipIfExternalToolsUnavailable() def test_GetSparseImage_emptyBlockMapFile(self): 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( test_utils.construct_sparse_image([ (0xCAC1, 6), @@ -985,7 +985,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): target_files_zip.writestr('SYSTEM/file2', os.urandom(4096 * 3)) 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) self.assertDictEqual( @@ -1006,7 +1006,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): @test_utils.SkipIfExternalToolsUnavailable() def test_GetSparseImage_missingBlockMapFile(self): 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( test_utils.construct_sparse_image([ (0xCAC1, 6), @@ -1017,7 +1017,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): target_files_zip.writestr('SYSTEM/file2', os.urandom(4096 * 3)) 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( AssertionError, common.GetSparseImage, 'system', tempdir, input_zip, False) @@ -1026,7 +1026,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): def test_GetSparseImage_sharedBlocks_notAllowed(self): """Tests the case of having overlapping blocks but disallowed.""" 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( test_utils.construct_sparse_image([(0xCAC2, 16)]), arcname='IMAGES/system.img') @@ -1040,7 +1040,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): target_files_zip.writestr('SYSTEM/file2', os.urandom(4096 * 3)) 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( AssertionError, common.GetSparseImage, 'system', tempdir, input_zip, False) @@ -1049,7 +1049,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): def test_GetSparseImage_sharedBlocks_allowed(self): """Tests the case for target using BOARD_EXT4_SHARE_DUP_BLOCKS := true.""" 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". target_files_zip.write( 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)) 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) self.assertDictEqual( @@ -1094,7 +1094,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): def test_GetSparseImage_incompleteRanges(self): """Tests the case of ext4 images with holes.""" 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( test_utils.construct_sparse_image([(0xCAC2, 16)]), arcname='IMAGES/system.img') @@ -1108,7 +1108,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): target_files_zip.writestr('SYSTEM/file2', os.urandom(4096 * 3)) 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) self.assertEqual( @@ -1119,7 +1119,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): @test_utils.SkipIfExternalToolsUnavailable() def test_GetSparseImage_systemRootImage_filenameWithExtraLeadingSlash(self): 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( test_utils.construct_sparse_image([(0xCAC2, 16)]), arcname='IMAGES/system.img') @@ -1136,7 +1136,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): target_files_zip.writestr('SYSTEM/app/file3', os.urandom(4096 * 4)) 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) self.assertEqual( @@ -1149,7 +1149,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): @test_utils.SkipIfExternalToolsUnavailable() def test_GetSparseImage_systemRootImage_nonSystemFiles(self): 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( test_utils.construct_sparse_image([(0xCAC2, 16)]), arcname='IMAGES/system.img') @@ -1163,7 +1163,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): target_files_zip.writestr('ROOT/init.rc', os.urandom(4096 * 4)) 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) self.assertEqual( @@ -1174,7 +1174,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): @test_utils.SkipIfExternalToolsUnavailable() def test_GetSparseImage_fileNotFound(self): 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( test_utils.construct_sparse_image([(0xCAC2, 16)]), arcname='IMAGES/system.img') @@ -1186,7 +1186,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): target_files_zip.writestr('SYSTEM/file1', os.urandom(4096 * 7)) 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( AssertionError, common.GetSparseImage, 'system', tempdir, input_zip, False) @@ -1274,7 +1274,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): @staticmethod def _test_LoadInfoDict_createTargetFiles(info_dict, fstab_path): 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( ['{}={}\n'.format(k, v) for k, v in sorted(info_dict.items())]) 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( self.INFO_DICT_DEFAULT, '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) self.assertEqual(3, loaded_dict['recovery_api_version']) self.assertEqual(2, loaded_dict['fstab_version']) @@ -1305,7 +1305,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): target_files = self._test_LoadInfoDict_createTargetFiles( self.INFO_DICT_DEFAULT, '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) self.assertEqual(3, loaded_dict['recovery_api_version']) self.assertEqual(2, loaded_dict['fstab_version']) @@ -1346,7 +1346,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): target_files = self._test_LoadInfoDict_createTargetFiles( info_dict, '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) self.assertEqual(3, loaded_dict['recovery_api_version']) self.assertEqual(2, loaded_dict['fstab_version']) @@ -1362,7 +1362,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): target_files = self._test_LoadInfoDict_createTargetFiles( info_dict, '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) self.assertEqual(3, loaded_dict['recovery_api_version']) self.assertEqual(2, loaded_dict['fstab_version']) @@ -1376,7 +1376,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): target_files = self._test_LoadInfoDict_createTargetFiles( info_dict, '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) self.assertEqual(3, loaded_dict['recovery_api_version']) self.assertEqual(2, loaded_dict['fstab_version']) @@ -1388,7 +1388,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): self.INFO_DICT_DEFAULT, 'BOOT/RAMDISK/system/etc/recovery.fstab') 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) @test_utils.SkipIfExternalToolsUnavailable() @@ -1412,7 +1412,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase): target_files = self._test_LoadInfoDict_createTargetFiles( self.INFO_DICT_DEFAULT, '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( AssertionError, common.LoadInfoDict, target_files_zip, True) @@ -1704,7 +1704,7 @@ class DynamicPartitionsDifferenceTest(test_utils.ReleaseToolsTestCase): @staticmethod 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: return [line.decode().strip() for line in op_list.readlines() if not line.startswith(b'#')] @@ -1724,7 +1724,7 @@ super_group_foo_partition_list=system vendor MockBlockDifference("vendor", FakeSparseImage(1 * GiB))] 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) self.assertEqual(str(self.script).strip(), """ @@ -1772,7 +1772,7 @@ super_group_qux_group_size={group_qux_size} dp_diff = common.DynamicPartitionsDifference(target_info, block_diffs=[], 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) 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, 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) 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, 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) self.assertNotIn("block_image_update", str(self.script), @@ -1910,7 +1910,7 @@ class PartitionBuildPropsTest(test_utils.ReleaseToolsTestCase): @staticmethod def _BuildZipFile(entries): 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(): input_zip.writestr(name, content) @@ -1927,7 +1927,7 @@ class PartitionBuildPropsTest(test_utils.ReleaseToolsTestCase): '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 = { '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), }) - with zipfile.ZipFile(input_file, 'r') as input_zip: + with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip: placeholder_values = { 'ro.boot.product.device_name': 'std' } @@ -1974,7 +1974,7 @@ class PartitionBuildPropsTest(test_utils.ReleaseToolsTestCase): 'ro.product.odm.name': 'product1', }, 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 = { 'ro.boot.product.device_name': 'pro' } @@ -1995,7 +1995,7 @@ class PartitionBuildPropsTest(test_utils.ReleaseToolsTestCase): '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( input_zip, 'odm') @@ -2038,7 +2038,7 @@ class PartitionBuildPropsTest(test_utils.ReleaseToolsTestCase): '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 = { 'ro.boot.product.device_name': 'std', 'ro.boot.product.product_name': 'product1', @@ -2055,7 +2055,7 @@ class PartitionBuildPropsTest(test_utils.ReleaseToolsTestCase): 'ro.product.odm.name': 'product1' }, 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 = { 'ro.boot.product.device_name': 'pro', '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), }) - with zipfile.ZipFile(input_file, 'r') as input_zip: + with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip: placeholder_values = { 'ro.boot.product.device_name': 'std', } @@ -2126,7 +2126,7 @@ class PartitionBuildPropsTest(test_utils.ReleaseToolsTestCase): '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 = { 'ro.boot.product.device_name': 'std', 'ro.boot.product.product_name': 'product1', diff --git a/tools/releasetools/test_ota_from_target_files.py b/tools/releasetools/test_ota_from_target_files.py index 84cd4c809a..f96bc7ba49 100644 --- a/tools/releasetools/test_ota_from_target_files.py +++ b/tools/releasetools/test_ota_from_target_files.py @@ -37,7 +37,7 @@ from test_utils import PropertyFilesTestCase def construct_target_files(secondary=False): """Returns a target-files.zip file for generating OTA packages.""" 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 target_files_zip.writestr( 'META/update_engine_config.txt', @@ -417,7 +417,7 @@ class OtaFromTargetFilesTest(test_utils.ReleaseToolsTestCase): '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/dynamic_partitions_info.txt', dynamic_partitions_info) @@ -472,7 +472,7 @@ class OtaFromTargetFilesTest(test_utils.ReleaseToolsTestCase): zip_file = PropertyFilesTest.construct_zip_package(entries) # Add a large entry of 1 GiB if requested. 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( # Using 'zoo' so that the entry stays behind others after signing. 'zoo', @@ -514,7 +514,7 @@ class OtaFromTargetFilesTest(test_utils.ReleaseToolsTestCase): 'optional-entry2', ] 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( # 'foo-entry1' will appear ahead of all other entries (in alphabetical # order) after the signing, which will in turn trigger the @@ -558,7 +558,7 @@ class PropertyFilesTest(PropertyFilesTestCase): ) zip_file = self.construct_zip_package(entries) 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) tokens = self._parse_property_files_string(property_files_string) @@ -574,7 +574,7 @@ class PropertyFilesTest(PropertyFilesTestCase): ) zip_file = self.construct_zip_package(entries) 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) tokens = self._parse_property_files_string(property_files_string) @@ -587,7 +587,7 @@ class PropertyFilesTest(PropertyFilesTestCase): ) zip_file = self.construct_zip_package(entries) 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) @test_utils.SkipIfExternalToolsUnavailable() @@ -600,7 +600,7 @@ class PropertyFilesTest(PropertyFilesTestCase): ] zip_file = self.construct_zip_package(entries) 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( zip_fp, reserve_space=False) streaming_metadata = property_files.Finalize(zip_fp, len(raw_metadata)) @@ -625,7 +625,7 @@ class PropertyFilesTest(PropertyFilesTestCase): ) zip_file = self.construct_zip_package(entries) 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). raw_metadata = property_files.GetPropertyFilesString( zip_fp, reserve_space=False) @@ -660,7 +660,7 @@ class PropertyFilesTest(PropertyFilesTestCase): ) zip_file = self.construct_zip_package(entries) 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). raw_metadata = property_files.GetPropertyFilesString( zip_fp, reserve_space=False) @@ -702,7 +702,7 @@ class StreamingPropertyFilesTest(PropertyFilesTestCase): ) zip_file = self.construct_zip_package(entries) 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) tokens = self._parse_property_files_string(property_files_string) @@ -720,7 +720,7 @@ class StreamingPropertyFilesTest(PropertyFilesTestCase): ] zip_file = self.construct_zip_package(entries) 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( zip_fp, reserve_space=False) streaming_metadata = property_files.Finalize(zip_fp, len(raw_metadata)) @@ -744,7 +744,7 @@ class StreamingPropertyFilesTest(PropertyFilesTestCase): ) zip_file = self.construct_zip_package(entries) 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). raw_metadata = property_files.GetPropertyFilesString( zip_fp, reserve_space=False) @@ -802,7 +802,7 @@ class AbOtaPropertyFilesTest(PropertyFilesTestCase): payload.Sign(payload_signer) 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) # Find out the payload metadata offset and size. @@ -867,7 +867,7 @@ class AbOtaPropertyFilesTest(PropertyFilesTestCase): payload.Sign(payload_signer) 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.WriteToZip(zip_fp) @@ -889,7 +889,7 @@ class AbOtaPropertyFilesTest(PropertyFilesTestCase): def test_Compute(self): zip_file = self.construct_zip_package_withValidPayload() 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) tokens = self._parse_property_files_string(property_files_string) @@ -903,7 +903,7 @@ class AbOtaPropertyFilesTest(PropertyFilesTestCase): def test_Finalize(self): zip_file = self.construct_zip_package_withValidPayload(with_metadata=True) 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( zip_fp, reserve_space=False) property_files_string = property_files.Finalize( @@ -920,7 +920,7 @@ class AbOtaPropertyFilesTest(PropertyFilesTestCase): def test_Verify(self): zip_file = self.construct_zip_package_withValidPayload(with_metadata=True) 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( zip_fp, reserve_space=False) @@ -1087,7 +1087,7 @@ class PayloadTest(test_utils.ReleaseToolsTestCase): payload.Sign(PayloadSigner()) 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) import check_ota_package_signature @@ -1101,7 +1101,7 @@ class PayloadTest(test_utils.ReleaseToolsTestCase): payload.Sign(PayloadSigner()) 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) import check_ota_package_signature @@ -1140,7 +1140,7 @@ class PayloadTest(test_utils.ReleaseToolsTestCase): payload.Sign(PayloadSigner()) 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) with zipfile.ZipFile(output_file) as verify_zip: @@ -1162,14 +1162,14 @@ class PayloadTest(test_utils.ReleaseToolsTestCase): payload = self._create_payload_full() 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) # Also test with incremental payload. payload = self._create_payload_incremental() 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) @test_utils.SkipIfExternalToolsUnavailable() @@ -1178,7 +1178,7 @@ class PayloadTest(test_utils.ReleaseToolsTestCase): payload.Sign(PayloadSigner()) 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) with zipfile.ZipFile(output_file) as verify_zip: diff --git a/tools/releasetools/test_sign_target_files_apks.py b/tools/releasetools/test_sign_target_files_apks.py index 308172f356..18e48580ca 100644 --- a/tools/releasetools/test_sign_target_files_apks.py +++ b/tools/releasetools/test_sign_target_files_apks.py @@ -164,15 +164,15 @@ name="apex.apexd_test_different_app.apex" public_key="system/apex/apexd/apexd_te "veritykeyid=id:d24f2590e9abab5cff5f59da4c4f0366e3f43e94\n") 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) # Test with the first certificate. cert_file = os.path.join(self.testdata_dir, 'verity.x509.pem') output_file = common.MakeTempFile(suffix='.zip') - with zipfile.ZipFile(input_file, 'r') as input_zip, \ - zipfile.ZipFile(output_file, 'w') as output_zip: + with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip, \ + zipfile.ZipFile(output_file, 'w', allowZip64=True) as output_zip: ReplaceVerityKeyId(input_zip, output_zip, cert_file) 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. cert_file = os.path.join(self.testdata_dir, 'testkey.x509.pem') - with zipfile.ZipFile(input_file, 'r') as input_zip, \ - zipfile.ZipFile(output_file, 'w') as output_zip: + with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip, \ + zipfile.ZipFile(output_file, 'w', allowZip64=True) as output_zip: ReplaceVerityKeyId(input_zip, output_zip, cert_file) 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") 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) output_file = common.MakeTempFile(suffix='.zip') - with zipfile.ZipFile(input_file, 'r') as input_zip, \ - zipfile.ZipFile(output_file, 'w') as output_zip: + with zipfile.ZipFile(input_file, 'r', allowZip64=True) as input_zip, \ + zipfile.ZipFile(output_file, 'w', allowZip64=True) as output_zip: ReplaceVerityKeyId(input_zip, output_zip, None) 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' 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) with zipfile.ZipFile(output_file) as input_zip: 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): 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/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): 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/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): 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) - 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) 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" ' 'partition="system"') 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) - 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) 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_private_key="build/make/target/product/security/testkey.pk8"') 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) - 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) 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_private_key="build/make/target/product/security/testkey.pk8"') 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) - 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) self.assertEqual({ @@ -551,10 +551,10 @@ name="apex.apexd_test_different_app.apex" public_key="system/apex/apexd/apexd_te 'container_certificate="PRESIGNED" ' 'container_private_key="PRESIGNED"') 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) - 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) self.assertEqual({ @@ -574,10 +574,10 @@ name="apex.apexd_test_different_app.apex" public_key="system/apex/apexd/apexd_te 'container_certificate="PRESIGNED" ' 'container_private_key="PRESIGNED"') 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) - 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) self.assertEqual({ diff --git a/tools/releasetools/test_utils.py b/tools/releasetools/test_utils.py index 7b7f22a9c7..ccd97a938d 100755 --- a/tools/releasetools/test_utils.py +++ b/tools/releasetools/test_utils.py @@ -199,7 +199,7 @@ class PropertyFilesTestCase(ReleaseToolsTestCase): @staticmethod def construct_zip_package(entries): 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: zip_fp.writestr( entry, diff --git a/tools/releasetools/test_validate_target_files.py b/tools/releasetools/test_validate_target_files.py index ca70ca8fd5..e9896ae0cc 100644 --- a/tools/releasetools/test_validate_target_files.py +++ b/tools/releasetools/test_validate_target_files.py @@ -272,7 +272,7 @@ class ValidateTargetFilesTest(test_utils.ReleaseToolsTestCase): input_file = common.MakeTempFile() all_entries = ['SYSTEM/', 'SYSTEM/b', 'SYSTEM/a', 'IMAGES/', '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: input_zip.write(os.path.join(input_tmp, name), arcname=name) @@ -321,7 +321,7 @@ class ValidateTargetFilesTest(test_utils.ReleaseToolsTestCase): input_file = common.MakeTempFile() all_entries = ['SYSTEM/', 'SYSTEM/abc', 'IMAGES/', '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: input_zip.write(os.path.join(input_tmp, name), arcname=name) diff --git a/tools/releasetools/validate_target_files.py b/tools/releasetools/validate_target_files.py index 2e3aa74de6..d2178b214d 100755 --- a/tools/releasetools/validate_target_files.py +++ b/tools/releasetools/validate_target_files.py @@ -487,7 +487,7 @@ def main(): input_tmp = common.UnzipTemp(args.target_files) 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) CheckBuildPropDuplicity(input_tmp)