Make signapk use Conscrypt.
This makes the signapk tool use Conscrypt (where possible) instead of the platform-default JCA providers and the Bouncy Castle JCA provider. This speeds up (by 10-30%) APK and OTA update signing because Conscrypt's crypto primitives are backed by BoringSSL. Previously, the signapk tool consisted only of the signapk.jar. Because Conscrypt is backed by native code, signapk now consists of signapk.jar and crypto_openjdk_jni shared library. This requires that users of the tool be updated to provide a suitable -Djava.library.path argument to the Java runtime. This change updates all known users of the tool inside the Android source tree to do so. Bug: 26097626 Change-Id: I8411b37d7f771ed99269751a3007dff103083552
This commit is contained in:
@@ -44,6 +44,7 @@ class Options(object):
|
||||
|
||||
self.search_path = platform_search_path.get(sys.platform, None)
|
||||
self.signapk_path = "framework/signapk.jar" # Relative to search_path
|
||||
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
|
||||
@@ -598,7 +599,12 @@ def SignFile(input_name, output_name, key, password, whole_file=False):
|
||||
zip file.
|
||||
"""
|
||||
|
||||
cmd = [OPTIONS.java_path, OPTIONS.java_args, "-jar",
|
||||
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)
|
||||
if whole_file:
|
||||
@@ -718,7 +724,8 @@ def ParseOptions(argv,
|
||||
try:
|
||||
opts, args = getopt.getopt(
|
||||
argv, "hvp:s:x:" + extra_opts,
|
||||
["help", "verbose", "path=", "signapk_path=", "extra_signapk_args=",
|
||||
["help", "verbose", "path=", "signapk_path=",
|
||||
"signapk_shared_library_path=", "extra_signapk_args=",
|
||||
"java_path=", "java_args=", "public_key_suffix=",
|
||||
"private_key_suffix=", "boot_signer_path=", "boot_signer_args=",
|
||||
"verity_signer_path=", "verity_signer_args=", "device_specific=",
|
||||
@@ -739,6 +746,8 @@ def ParseOptions(argv,
|
||||
OPTIONS.search_path = a
|
||||
elif o in ("--signapk_path",):
|
||||
OPTIONS.signapk_path = a
|
||||
elif o in ("--signapk_shared_library_path",):
|
||||
OPTIONS.signapk_shared_library_path = a
|
||||
elif o in ("--extra_signapk_args",):
|
||||
OPTIONS.extra_signapk_args = shlex.split(a)
|
||||
elif o in ("--java_path",):
|
||||
|
Reference in New Issue
Block a user