Loading tools/releasetools/sign_target_files_apks.py +6 −3 Original line number Diff line number Diff line Loading @@ -1097,13 +1097,16 @@ def ReadApexKeysInfo(tf_zip): # full names only. container_cert = matches.group("CONTAINER_CERT") container_private_key = matches.group("CONTAINER_PRIVATE_KEY") if not CompareKeys( if container_cert == 'PRESIGNED' and container_private_key == 'PRESIGNED': container_key = 'PRESIGNED' elif CompareKeys( container_cert, OPTIONS.public_key_suffix, container_private_key, OPTIONS.private_key_suffix): container_key = container_cert[:-len(OPTIONS.public_key_suffix)] else: raise ValueError("Failed to parse container keys: \n{}".format(line)) keys[name] = (payload_private_key, container_cert[:-len(OPTIONS.public_key_suffix)]) keys[name] = (payload_private_key, container_key) return keys Loading tools/releasetools/test_sign_target_files_apks.py +23 −0 Original line number Diff line number Diff line Loading @@ -461,3 +461,26 @@ name="apex.apexd_test_different_app.apex" public_key="system/apex/apexd/apexd_te 'system/apex/apexd/apexd_testdata/com.android.apex.test_package_2.pem', 'build/make/target/product/security/testkey'), }, keys_info) def test_ReadApexKeysInfo_presignedKeys(self): apex_keys = self.APEX_KEYS_TXT + ( 'name="apex.apexd_test_different_app2.apex" ' 'private_key="PRESIGNED" ' 'public_key="PRESIGNED" ' 'container_certificate="PRESIGNED" ' 'container_private_key="PRESIGNED"') target_files = common.MakeTempFile(suffix='.zip') with zipfile.ZipFile(target_files, 'w') as target_files_zip: target_files_zip.writestr('META/apexkeys.txt', apex_keys) with zipfile.ZipFile(target_files) as target_files_zip: keys_info = ReadApexKeysInfo(target_files_zip) self.assertEqual({ 'apex.apexd_test.apex': ( 'system/apex/apexd/apexd_testdata/com.android.apex.test_package.pem', 'build/make/target/product/security/testkey'), 'apex.apexd_test_different_app.apex': ( 'system/apex/apexd/apexd_testdata/com.android.apex.test_package_2.pem', 'build/make/target/product/security/testkey'), }, keys_info) Loading
tools/releasetools/sign_target_files_apks.py +6 −3 Original line number Diff line number Diff line Loading @@ -1097,13 +1097,16 @@ def ReadApexKeysInfo(tf_zip): # full names only. container_cert = matches.group("CONTAINER_CERT") container_private_key = matches.group("CONTAINER_PRIVATE_KEY") if not CompareKeys( if container_cert == 'PRESIGNED' and container_private_key == 'PRESIGNED': container_key = 'PRESIGNED' elif CompareKeys( container_cert, OPTIONS.public_key_suffix, container_private_key, OPTIONS.private_key_suffix): container_key = container_cert[:-len(OPTIONS.public_key_suffix)] else: raise ValueError("Failed to parse container keys: \n{}".format(line)) keys[name] = (payload_private_key, container_cert[:-len(OPTIONS.public_key_suffix)]) keys[name] = (payload_private_key, container_key) return keys Loading
tools/releasetools/test_sign_target_files_apks.py +23 −0 Original line number Diff line number Diff line Loading @@ -461,3 +461,26 @@ name="apex.apexd_test_different_app.apex" public_key="system/apex/apexd/apexd_te 'system/apex/apexd/apexd_testdata/com.android.apex.test_package_2.pem', 'build/make/target/product/security/testkey'), }, keys_info) def test_ReadApexKeysInfo_presignedKeys(self): apex_keys = self.APEX_KEYS_TXT + ( 'name="apex.apexd_test_different_app2.apex" ' 'private_key="PRESIGNED" ' 'public_key="PRESIGNED" ' 'container_certificate="PRESIGNED" ' 'container_private_key="PRESIGNED"') target_files = common.MakeTempFile(suffix='.zip') with zipfile.ZipFile(target_files, 'w') as target_files_zip: target_files_zip.writestr('META/apexkeys.txt', apex_keys) with zipfile.ZipFile(target_files) as target_files_zip: keys_info = ReadApexKeysInfo(target_files_zip) self.assertEqual({ 'apex.apexd_test.apex': ( 'system/apex/apexd/apexd_testdata/com.android.apex.test_package.pem', 'build/make/target/product/security/testkey'), 'apex.apexd_test_different_app.apex': ( 'system/apex/apexd/apexd_testdata/com.android.apex.test_package_2.pem', 'build/make/target/product/security/testkey'), }, keys_info)