Merge "Add an option to specify the path to aapt2." am: 76537be0a9 am: 96cea0f44b am: a6e2ff4804

Original change: https://android-review.googlesource.com/c/platform/build/+/1938648

Change-Id: Id7ef7062bd58f44ee37686539c19a26916755dab
This commit is contained in:
Martin Stjernholm
2022-01-09 20:14:19 +00:00
committed by Automerger Merge Worker

View File

@@ -73,6 +73,7 @@ class Options(object):
self.search_path = os.environ["ANDROID_HOST_OUT"] self.search_path = os.environ["ANDROID_HOST_OUT"]
self.signapk_shared_library_path = "lib64" # Relative to search_path self.signapk_shared_library_path = "lib64" # Relative to search_path
self.extra_signapk_args = [] self.extra_signapk_args = []
self.aapt2_path = "aapt2"
self.java_path = "java" # Use the one on the path by default. self.java_path = "java" # Use the one on the path by default.
self.java_args = ["-Xmx2048m"] # The default JVM args. self.java_args = ["-Xmx2048m"] # The default JVM args.
self.android_jar_path = None self.android_jar_path = None
@@ -2184,8 +2185,8 @@ def GetKeyPasswords(keylist):
def GetMinSdkVersion(apk_name): def GetMinSdkVersion(apk_name):
"""Gets the minSdkVersion declared in the APK. """Gets the minSdkVersion declared in the APK.
It calls 'aapt2' to query the embedded minSdkVersion from the given APK file. It calls OPTIONS.aapt2_path to query the embedded minSdkVersion from the given
This can be both a decimal number (API Level) or a codename. APK file. This can be both a decimal number (API Level) or a codename.
Args: Args:
apk_name: The APK filename. apk_name: The APK filename.
@@ -2197,7 +2198,7 @@ def GetMinSdkVersion(apk_name):
ExternalError: On failing to obtain the min SDK version. ExternalError: On failing to obtain the min SDK version.
""" """
proc = Run( proc = Run(
["aapt2", "dump", "badging", apk_name], stdout=subprocess.PIPE, [OPTIONS.aapt2_path, "dump", "badging", apk_name], stdout=subprocess.PIPE,
stderr=subprocess.PIPE) stderr=subprocess.PIPE)
stdoutdata, stderrdata = proc.communicate() stdoutdata, stderrdata = proc.communicate()
if proc.returncode != 0: if proc.returncode != 0:
@@ -2473,7 +2474,7 @@ def ParseOptions(argv,
opts, args = getopt.getopt( opts, args = getopt.getopt(
argv, "hvp:s:x:" + extra_opts, argv, "hvp:s:x:" + extra_opts,
["help", "verbose", "path=", "signapk_path=", ["help", "verbose", "path=", "signapk_path=",
"signapk_shared_library_path=", "extra_signapk_args=", "signapk_shared_library_path=", "extra_signapk_args=", "aapt2_path=",
"java_path=", "java_args=", "android_jar_path=", "public_key_suffix=", "java_path=", "java_args=", "android_jar_path=", "public_key_suffix=",
"private_key_suffix=", "boot_signer_path=", "boot_signer_args=", "private_key_suffix=", "boot_signer_path=", "boot_signer_args=",
"verity_signer_path=", "verity_signer_args=", "device_specific=", "verity_signer_path=", "verity_signer_args=", "device_specific=",
@@ -2497,6 +2498,8 @@ def ParseOptions(argv,
OPTIONS.signapk_shared_library_path = a OPTIONS.signapk_shared_library_path = a
elif o in ("--extra_signapk_args",): elif o in ("--extra_signapk_args",):
OPTIONS.extra_signapk_args = shlex.split(a) OPTIONS.extra_signapk_args = shlex.split(a)
elif o in ("--aapt2_path",):
OPTIONS.aapt2_path = a
elif o in ("--java_path",): elif o in ("--java_path",):
OPTIONS.java_path = a OPTIONS.java_path = a
elif o in ("--java_args",): elif o in ("--java_args",):