From cd4f7c96c008cd35a54522894fe90590c646ff11 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Tue, 8 Nov 2016 12:08:53 -0800 Subject: [PATCH] releasetools: Use java_path in sign_target_files_apks.py. Prior to this CL, it was calling the hard-coded "java" although it was accepting a "--java_path" option. Also switch OPTIONS.java_args from string to list. Otherwise it won't work when providing multiple args. Bug: 32737832 Test: Specify "--java_path=" and "--java_args" when invoking sign_target_files_apks.py with "-v". Check the commands being called. Change-Id: Id7ef98e778646d532027434de7fba9b7a104dbd0 (cherry picked from commit e95540e06000f3b0b33bf12374135111ecf45bd5) --- tools/releasetools/common.py | 13 ++++++------- tools/releasetools/sign_target_files_apks.py | 10 +++++----- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 422ba4321..a4862a6ab 100644 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -46,7 +46,7 @@ class Options(object): self.signapk_shared_library_path = "lib64" # Relative to search_path self.extra_signapk_args = [] self.java_path = "java" # Use the one on the path by default. - self.java_args = "-Xmx2048m" # JVM Args + self.java_args = ["-Xmx2048m"] # The default JVM args. self.public_key_suffix = ".x509.pem" self.private_key_suffix = ".pk8" # use otatools built boot_signer by default @@ -702,11 +702,10 @@ def SignFile(input_name, output_name, key, password, min_api_level=None, java_library_path = os.path.join( OPTIONS.search_path, OPTIONS.signapk_shared_library_path) - cmd = [OPTIONS.java_path, OPTIONS.java_args, - "-Djava.library.path=" + java_library_path, - "-jar", - os.path.join(OPTIONS.search_path, OPTIONS.signapk_path)] - cmd.extend(OPTIONS.extra_signapk_args) + cmd = ([OPTIONS.java_path] + OPTIONS.java_args + + ["-Djava.library.path=" + java_library_path, + "-jar", os.path.join(OPTIONS.search_path, OPTIONS.signapk_path)] + + OPTIONS.extra_signapk_args) if whole_file: cmd.append("-w") @@ -862,7 +861,7 @@ def ParseOptions(argv, elif o in ("--java_path",): OPTIONS.java_path = a elif o in ("--java_args",): - OPTIONS.java_args = a + OPTIONS.java_args = shlex.split(a) elif o in ("--public_key_suffix",): OPTIONS.public_key_suffix = a elif o in ("--private_key_suffix",): diff --git a/tools/releasetools/sign_target_files_apks.py b/tools/releasetools/sign_target_files_apks.py index f758ae04b..457ff5c09 100755 --- a/tools/releasetools/sign_target_files_apks.py +++ b/tools/releasetools/sign_target_files_apks.py @@ -403,11 +403,11 @@ def ReplaceOtaKeys(input_tf_zip, output_tf_zip, misc_info): # recovery uses a version of the key that has been slightly # predigested (by DumpPublicKey.java) and put in res/keys. # extra_recovery_keys are used only in recovery. - - p = common.Run(["java", "-jar", - os.path.join(OPTIONS.search_path, "framework", "dumpkey.jar")] - + mapped_keys + extra_recovery_keys, - stdout=subprocess.PIPE) + cmd = ([OPTIONS.java_path] + OPTIONS.java_args + + ["-jar", + os.path.join(OPTIONS.search_path, "framework", "dumpkey.jar")] + + mapped_keys + extra_recovery_keys) + p = common.Run(cmd, stdout=subprocess.PIPE) new_recovery_keys, _ = p.communicate() if p.returncode != 0: raise common.ExternalError("failed to run dumpkeys")