Loading tools/releasetools/apex_utils.py +10 −4 Original line number Original line Diff line number Diff line Loading @@ -52,7 +52,7 @@ class ApexApkSigner(object): self.key_passwords = key_passwords self.key_passwords = key_passwords self.codename_to_api_level_map = codename_to_api_level_map self.codename_to_api_level_map = codename_to_api_level_map def ProcessApexFile(self, apk_keys, payload_key): def ProcessApexFile(self, apk_keys, payload_key, signing_args=None): """Scans and signs the apk files and repack the apex """Scans and signs the apk files and repack the apex Args: Args: Loading Loading @@ -87,7 +87,7 @@ class ApexApkSigner(object): logger.info('No apk file has been signed in %s', self.apex_path) logger.info('No apk file has been signed in %s', self.apex_path) return self.apex_path return self.apex_path return self.RepackApexPayload(payload_dir, payload_key) return self.RepackApexPayload(payload_dir, payload_key, signing_args) def ExtractApexPayloadAndSignApks(self, apk_entries, apk_keys): def ExtractApexPayloadAndSignApks(self, apk_entries, apk_keys): """Extracts the payload image and signs the containing apk files.""" """Extracts the payload image and signs the containing apk files.""" Loading Loading @@ -115,7 +115,7 @@ class ApexApkSigner(object): has_signed_apk = True has_signed_apk = True return payload_dir, has_signed_apk return payload_dir, has_signed_apk def RepackApexPayload(self, payload_dir, payload_key): def RepackApexPayload(self, payload_dir, payload_key, signing_args=None): """Rebuilds the apex file with the updated payload directory.""" """Rebuilds the apex file with the updated payload directory.""" apex_dir = common.MakeTempDir() apex_dir = common.MakeTempDir() # Extract the apex file and reuse its meta files as repack parameters. # Extract the apex file and reuse its meta files as repack parameters. Loading Loading @@ -145,6 +145,12 @@ class ApexApkSigner(object): os.getenv('PATH')] os.getenv('PATH')] for key, val in arguments_dict.items(): for key, val in arguments_dict.items(): generate_image_cmd.extend(['--' + key, val]) generate_image_cmd.extend(['--' + key, val]) # Add quote to the signing_args as we will pass # --signing_args "--signing_helper_with_files=%path" to apexer if signing_args: generate_image_cmd.extend(['--signing_args', '"{}"'.format(signing_args)]) # optional arguments for apex repacking # optional arguments for apex repacking manifest_json = os.path.join(apex_dir, 'apex_manifest.json') manifest_json = os.path.join(apex_dir, 'apex_manifest.json') if os.path.exists(manifest_json): if os.path.exists(manifest_json): Loading Loading @@ -303,7 +309,7 @@ def SignApex(avbtool, apex_data, payload_key, container_key, container_pw, # the apex file after signing. # the apex file after signing. apk_signer = ApexApkSigner(apex_file, container_pw, apk_signer = ApexApkSigner(apex_file, container_pw, codename_to_api_level_map) codename_to_api_level_map) apex_file = apk_signer.ProcessApexFile(apk_keys, payload_key) apex_file = apk_signer.ProcessApexFile(apk_keys, payload_key, signing_args) # 2a. Extract and sign the APEX_PAYLOAD_IMAGE entry with the given # 2a. Extract and sign the APEX_PAYLOAD_IMAGE entry with the given # payload_key. # payload_key. Loading Loading
tools/releasetools/apex_utils.py +10 −4 Original line number Original line Diff line number Diff line Loading @@ -52,7 +52,7 @@ class ApexApkSigner(object): self.key_passwords = key_passwords self.key_passwords = key_passwords self.codename_to_api_level_map = codename_to_api_level_map self.codename_to_api_level_map = codename_to_api_level_map def ProcessApexFile(self, apk_keys, payload_key): def ProcessApexFile(self, apk_keys, payload_key, signing_args=None): """Scans and signs the apk files and repack the apex """Scans and signs the apk files and repack the apex Args: Args: Loading Loading @@ -87,7 +87,7 @@ class ApexApkSigner(object): logger.info('No apk file has been signed in %s', self.apex_path) logger.info('No apk file has been signed in %s', self.apex_path) return self.apex_path return self.apex_path return self.RepackApexPayload(payload_dir, payload_key) return self.RepackApexPayload(payload_dir, payload_key, signing_args) def ExtractApexPayloadAndSignApks(self, apk_entries, apk_keys): def ExtractApexPayloadAndSignApks(self, apk_entries, apk_keys): """Extracts the payload image and signs the containing apk files.""" """Extracts the payload image and signs the containing apk files.""" Loading Loading @@ -115,7 +115,7 @@ class ApexApkSigner(object): has_signed_apk = True has_signed_apk = True return payload_dir, has_signed_apk return payload_dir, has_signed_apk def RepackApexPayload(self, payload_dir, payload_key): def RepackApexPayload(self, payload_dir, payload_key, signing_args=None): """Rebuilds the apex file with the updated payload directory.""" """Rebuilds the apex file with the updated payload directory.""" apex_dir = common.MakeTempDir() apex_dir = common.MakeTempDir() # Extract the apex file and reuse its meta files as repack parameters. # Extract the apex file and reuse its meta files as repack parameters. Loading Loading @@ -145,6 +145,12 @@ class ApexApkSigner(object): os.getenv('PATH')] os.getenv('PATH')] for key, val in arguments_dict.items(): for key, val in arguments_dict.items(): generate_image_cmd.extend(['--' + key, val]) generate_image_cmd.extend(['--' + key, val]) # Add quote to the signing_args as we will pass # --signing_args "--signing_helper_with_files=%path" to apexer if signing_args: generate_image_cmd.extend(['--signing_args', '"{}"'.format(signing_args)]) # optional arguments for apex repacking # optional arguments for apex repacking manifest_json = os.path.join(apex_dir, 'apex_manifest.json') manifest_json = os.path.join(apex_dir, 'apex_manifest.json') if os.path.exists(manifest_json): if os.path.exists(manifest_json): Loading Loading @@ -303,7 +309,7 @@ def SignApex(avbtool, apex_data, payload_key, container_key, container_pw, # the apex file after signing. # the apex file after signing. apk_signer = ApexApkSigner(apex_file, container_pw, apk_signer = ApexApkSigner(apex_file, container_pw, codename_to_api_level_map) codename_to_api_level_map) apex_file = apk_signer.ProcessApexFile(apk_keys, payload_key) apex_file = apk_signer.ProcessApexFile(apk_keys, payload_key, signing_args) # 2a. Extract and sign the APEX_PAYLOAD_IMAGE entry with the given # 2a. Extract and sign the APEX_PAYLOAD_IMAGE entry with the given # payload_key. # payload_key. Loading