diff options
author | Jooyung Han <jooyung@google.com> | 2022-02-07 15:56:53 +0900 |
---|---|---|
committer | Jooyung Han <jooyung@google.com> | 2022-02-07 15:56:53 +0900 |
commit | 39259ec1a47a5f710660966fdb691e399a84dd55 (patch) | |
tree | da0f2495209cb5eace96dc27cfd5e76194b9f3d9 | |
parent | fb9ec40e652cb47e8cd28d2c6a882fb7bd438421 (diff) | |
download | build-39259ec1a47a5f710660966fdb691e399a84dd55.tar.gz |
A custom APEX signing tool with --signing_args
apex_utils.SignApex() has `signing_args` argument which is supposed to
be passed to avbtool to set `--signing_helper` or
`--signing_helper_with_files`.
A custom APEX signing tool which relies on avbtool's signing should pass
the same arguments when signing_args is set.
This change passes signing_args verbatim to the custom APEX signing tool
via --signing_args argument.
Bug: 216971834
Test: tbd
Change-Id: I8aaec9440c4536e11e1e4a1dd4ae5f4fe32d4f23
-rw-r--r-- | tools/releasetools/apex_utils.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/tools/releasetools/apex_utils.py b/tools/releasetools/apex_utils.py index ee0feaeaab..2a39f656df 100644 --- a/tools/releasetools/apex_utils.py +++ b/tools/releasetools/apex_utils.py @@ -102,14 +102,14 @@ class ApexApkSigner(object): ' %s', entry) payload_dir, has_signed_content = self.ExtractApexPayloadAndSignContents( - apk_entries, apk_keys, payload_key) + apk_entries, apk_keys, payload_key, signing_args) if not has_signed_content: logger.info('No contents has been signed in %s', self.apex_path) return self.apex_path return self.RepackApexPayload(payload_dir, payload_key, signing_args) - def ExtractApexPayloadAndSignContents(self, apk_entries, apk_keys, payload_key): + def ExtractApexPayloadAndSignContents(self, apk_entries, apk_keys, payload_key, signing_args): """Extracts the payload image and signs the containing apk files.""" if not os.path.exists(self.debugfs_path): raise ApexSigningError( @@ -143,7 +143,12 @@ class ApexApkSigner(object): if self.sign_tool: logger.info('Signing payload contents in apex %s with %s', self.apex_path, self.sign_tool) - cmd = [self.sign_tool, '--avbtool', self.avbtool, payload_key, payload_dir] + # Pass avbtool to the custom signing tool + cmd = [self.sign_tool, '--avbtool', self.avbtool] + # Pass signing_args verbatim which will be forwarded to avbtool (e.g. --signing_helper=...) + if signing_args: + cmd.extend(['--signing_args', '"{}"'.format(signing_args)]) + cmd.extend([payload_key, payload_dir]) common.RunAndCheckOutput(cmd) has_signed_content = True |