Loading tools/releasetools/common.py +18 −6 Original line number Diff line number Diff line Loading @@ -50,7 +50,8 @@ class Options(object): if base_out_path is None: base_search_path = "out" else: base_search_path = os.path.join(base_out_path, os.path.basename(os.getcwd())) base_search_path = os.path.join(base_out_path, os.path.basename(os.getcwd())) platform_search_path = { "linux2": os.path.join(base_search_path, "host/linux-x86"), Loading Loading @@ -552,11 +553,7 @@ def GetAvbChainedPartitionArg(partition, info_dict, key=None): """ if key is None: key = info_dict["avb_" + partition + "_key_path"] avbtool = os.getenv('AVBTOOL') or info_dict["avb_avbtool"] pubkey_path = MakeTempFile(prefix="avb-", suffix=".pubkey") RunAndCheckOutput( [avbtool, "extract_public_key", "--key", key, "--output", pubkey_path]) pubkey_path = ExtractAvbPublicKey(key) rollback_index_location = info_dict[ "avb_" + partition + "_rollback_index_location"] return "{}:{}:{}".format(partition, rollback_index_location, pubkey_path) Loading Loading @@ -2123,6 +2120,21 @@ def ExtractPublicKey(cert): return pubkey def ExtractAvbPublicKey(key): """Extracts the AVB public key from the given public or private key. Args: key: The input key file, which should be PEM-encoded public or private key. Returns: The path to the extracted AVB public key file. """ output = MakeTempFile(prefix='avb-', suffix='.avbpubkey') RunAndCheckOutput( ['avbtool', 'extract_public_key', "--key", key, "--output", output]) return output def MakeRecoveryPatch(input_dir, output_sink, recovery_img, boot_img, info_dict=None): """Generates the recovery-from-boot patch and writes the script to output. Loading tools/releasetools/test_common.py +8 −1 Original line number Diff line number Diff line Loading @@ -491,6 +491,13 @@ class CommonApkUtilsTest(test_utils.ReleaseToolsTestCase): wrong_input = os.path.join(self.testdata_dir, 'testkey.pk8') self.assertRaises(AssertionError, common.ExtractPublicKey, wrong_input) def test_ExtractAvbPublicKey(self): privkey = os.path.join(self.testdata_dir, 'testkey.key') pubkey = os.path.join(self.testdata_dir, 'testkey.pubkey.pem') with open(common.ExtractAvbPublicKey(privkey)) as privkey_fp, \ open(common.ExtractAvbPublicKey(pubkey)) as pubkey_fp: self.assertEqual(privkey_fp.read(), pubkey_fp.read()) def test_ParseCertificate(self): cert = os.path.join(self.testdata_dir, 'testkey.x509.pem') Loading Loading
tools/releasetools/common.py +18 −6 Original line number Diff line number Diff line Loading @@ -50,7 +50,8 @@ class Options(object): if base_out_path is None: base_search_path = "out" else: base_search_path = os.path.join(base_out_path, os.path.basename(os.getcwd())) base_search_path = os.path.join(base_out_path, os.path.basename(os.getcwd())) platform_search_path = { "linux2": os.path.join(base_search_path, "host/linux-x86"), Loading Loading @@ -552,11 +553,7 @@ def GetAvbChainedPartitionArg(partition, info_dict, key=None): """ if key is None: key = info_dict["avb_" + partition + "_key_path"] avbtool = os.getenv('AVBTOOL') or info_dict["avb_avbtool"] pubkey_path = MakeTempFile(prefix="avb-", suffix=".pubkey") RunAndCheckOutput( [avbtool, "extract_public_key", "--key", key, "--output", pubkey_path]) pubkey_path = ExtractAvbPublicKey(key) rollback_index_location = info_dict[ "avb_" + partition + "_rollback_index_location"] return "{}:{}:{}".format(partition, rollback_index_location, pubkey_path) Loading Loading @@ -2123,6 +2120,21 @@ def ExtractPublicKey(cert): return pubkey def ExtractAvbPublicKey(key): """Extracts the AVB public key from the given public or private key. Args: key: The input key file, which should be PEM-encoded public or private key. Returns: The path to the extracted AVB public key file. """ output = MakeTempFile(prefix='avb-', suffix='.avbpubkey') RunAndCheckOutput( ['avbtool', 'extract_public_key', "--key", key, "--output", output]) return output def MakeRecoveryPatch(input_dir, output_sink, recovery_img, boot_img, info_dict=None): """Generates the recovery-from-boot patch and writes the script to output. Loading
tools/releasetools/test_common.py +8 −1 Original line number Diff line number Diff line Loading @@ -491,6 +491,13 @@ class CommonApkUtilsTest(test_utils.ReleaseToolsTestCase): wrong_input = os.path.join(self.testdata_dir, 'testkey.pk8') self.assertRaises(AssertionError, common.ExtractPublicKey, wrong_input) def test_ExtractAvbPublicKey(self): privkey = os.path.join(self.testdata_dir, 'testkey.key') pubkey = os.path.join(self.testdata_dir, 'testkey.pubkey.pem') with open(common.ExtractAvbPublicKey(privkey)) as privkey_fp, \ open(common.ExtractAvbPublicKey(pubkey)) as pubkey_fp: self.assertEqual(privkey_fp.read(), pubkey_fp.read()) def test_ParseCertificate(self): cert = os.path.join(self.testdata_dir, 'testkey.x509.pem') Loading