From 83bd55c1db04af6b6ac7c2bbbe55d62b5443d96e Mon Sep 17 00:00:00 2001 From: Tianjie Xu Date: Wed, 29 Jan 2020 11:37:43 -0800 Subject: Assets should be optional in apex repacking We should only provide the --assets_dir option when the assets directory is available in the original apex. Bug: 148452817 Test: unit tests pass Change-Id: I44308b80a43ff3f441223f0ecc248991d1d83f31 --- tools/releasetools/test_apex_utils.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'tools/releasetools/test_apex_utils.py') diff --git a/tools/releasetools/test_apex_utils.py b/tools/releasetools/test_apex_utils.py index df61ac089e..cc28f3f199 100644 --- a/tools/releasetools/test_apex_utils.py +++ b/tools/releasetools/test_apex_utils.py @@ -16,6 +16,7 @@ import os import os.path +import zipfile import apex_utils import common @@ -155,3 +156,23 @@ class ApexUtilsTest(test_utils.ReleaseToolsTestCase): payload_pubkey = common.ExtractAvbPublicKey('avbtool', self.payload_key) signer.ProcessApexFile(apk_keys, self.payload_key, payload_pubkey) + + @test_utils.SkipIfExternalToolsUnavailable() + def test_ApexApkSigner_noAssetDir(self): + apex_path = os.path.join(self.testdata_dir, 'has_apk.apex') + no_asset = common.MakeTempFile(suffix='.apex') + with zipfile.ZipFile(no_asset, 'w') as output_zip: + with zipfile.ZipFile(apex_path, 'r') as input_zip: + name_list = input_zip.namelist() + for name in name_list: + if not name.startswith('assets'): + output_zip.writestr(name, input_zip.read(name)) + + signer = apex_utils.ApexApkSigner(no_asset, None, None) + apk_keys = {'wifi-service-resources.apk': os.path.join( + self.testdata_dir, 'testkey')} + + self.payload_key = os.path.join(self.testdata_dir, 'testkey_RSA4096.key') + payload_pubkey = common.ExtractAvbPublicKey('avbtool', + self.payload_key) + signer.ProcessApexFile(apk_keys, self.payload_key, payload_pubkey) -- cgit v1.2.3-59-g8ed1b