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
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index 5f81d53..813b2c6 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -46,7 +46,7 @@
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
@@ -719,11 +719,10 @@
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")
@@ -875,7 +874,7 @@
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 7f69a57..394ad0a 100755
--- a/tools/releasetools/sign_target_files_apks.py
+++ b/tools/releasetools/sign_target_files_apks.py
@@ -472,11 +472,11 @@
# 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")