Merge "Move old installed file cleanup logic below build/make/core/Makefile"
diff --git a/tools/releasetools/add_img_to_target_files.py b/tools/releasetools/add_img_to_target_files.py
index e0bcbb7..ac3271b 100644
--- a/tools/releasetools/add_img_to_target_files.py
+++ b/tools/releasetools/add_img_to_target_files.py
@@ -818,6 +818,9 @@
"""Create a super_empty.img and store it in output_zip."""
img = OutputFile(output_zip, OPTIONS.input_tmp, "IMAGES", "super_empty.img")
+ if os.path.exists(img.name):
+ logger.info("super_empty.img already exists; no need to rebuild...")
+ return
build_super_image.BuildSuperImage(OPTIONS.info_dict, img.name)
img.Write()
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index 01bc6e1..4e783ff 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -1376,11 +1376,7 @@
def AppendAVBSigningArgs(cmd, partition):
"""Append signing arguments for avbtool."""
# e.g., "--key path/to/signing_key --algorithm SHA256_RSA4096"
- key_path = OPTIONS.info_dict.get("avb_" + partition + "_key_path")
- if key_path and not os.path.exists(key_path) and OPTIONS.search_path:
- new_key_path = os.path.join(OPTIONS.search_path, key_path)
- if os.path.exists(new_key_path):
- key_path = new_key_path
+ key_path = ResolveAVBSigningPathArgs(OPTIONS.info_dict.get("avb_" + partition + "_key_path"))
algorithm = OPTIONS.info_dict.get("avb_" + partition + "_algorithm")
if key_path and algorithm:
cmd.extend(["--key", key_path, "--algorithm", algorithm])
@@ -1390,6 +1386,32 @@
cmd.extend(["--salt", avb_salt])
+def ResolveAVBSigningPathArgs(split_args):
+
+ def ResolveBinaryPath(path):
+ if os.path.exists(path):
+ return path
+ new_path = os.path.join(OPTIONS.search_path, path)
+ if os.path.exists(new_path):
+ return new_path
+ raise ExternalError(
+ "Failed to find {}".format(new_path))
+
+ if not split_args:
+ return split_args
+
+ if isinstance(split_args, list):
+ for index, arg in enumerate(split_args[:-1]):
+ if arg == '--signing_helper':
+ signing_helper_path = split_args[index + 1]
+ split_args[index + 1] = ResolveBinaryPath(signing_helper_path)
+ break
+ elif isinstance(split_args, str):
+ split_args = ResolveBinaryPath(split_args)
+
+ return split_args
+
+
def GetAvbPartitionArg(partition, image, info_dict=None):
"""Returns the VBMeta arguments for partition.
@@ -1442,10 +1464,7 @@
"""
if key is None:
key = info_dict["avb_" + partition + "_key_path"]
- if key and not os.path.exists(key) and OPTIONS.search_path:
- new_key_path = os.path.join(OPTIONS.search_path, key)
- if os.path.exists(new_key_path):
- key = new_key_path
+ key = ResolveAVBSigningPathArgs(key)
pubkey_path = ExtractAvbPublicKey(info_dict["avb_avbtool"], key)
rollback_index_location = info_dict[
"avb_" + partition + "_rollback_index_location"]
@@ -1461,10 +1480,7 @@
key_path = OPTIONS.info_dict.get("gki_signing_key_path")
algorithm = OPTIONS.info_dict.get("gki_signing_algorithm")
- if not os.path.exists(key_path) and OPTIONS.search_path:
- new_key_path = os.path.join(OPTIONS.search_path, key_path)
- if os.path.exists(new_key_path):
- key_path = new_key_path
+ key_path = ResolveAVBSigningPathArgs(key_path)
# Checks key_path exists, before processing --gki_signing_* args.
if not os.path.exists(key_path):
@@ -1560,6 +1576,8 @@
found = True
break
assert found, 'Failed to find {}'.format(chained_image)
+
+ split_args = ResolveAVBSigningPathArgs(split_args)
cmd.extend(split_args)
RunAndCheckOutput(cmd)
@@ -1770,7 +1788,8 @@
AppendAVBSigningArgs(cmd, partition_name)
args = info_dict.get("avb_" + partition_name + "_add_hash_footer_args")
if args and args.strip():
- cmd.extend(shlex.split(args))
+ split_args = ResolveAVBSigningPathArgs(shlex.split(args))
+ cmd.extend(split_args)
RunAndCheckOutput(cmd)
img.seek(os.SEEK_SET, 0)
@@ -1811,7 +1830,8 @@
AppendAVBSigningArgs(cmd, partition_name)
args = info_dict.get("avb_" + partition_name + "_add_hash_footer_args")
if args and args.strip():
- cmd.extend(shlex.split(args))
+ split_args = ResolveAVBSigningPathArgs(shlex.split(args))
+ cmd.extend(split_args)
RunAndCheckOutput(cmd)
@@ -1991,7 +2011,8 @@
AppendAVBSigningArgs(cmd, partition_name)
args = info_dict.get(f'avb_{partition_name}_add_hash_footer_args')
if args and args.strip():
- cmd.extend(shlex.split(args))
+ split_args = ResolveAVBSigningPathArgs(shlex.split(args))
+ cmd.extend(split_args)
RunAndCheckOutput(cmd)
img.seek(os.SEEK_SET, 0)
diff --git a/tools/releasetools/verity_utils.py b/tools/releasetools/verity_utils.py
index 755241d..dddb7f4 100644
--- a/tools/releasetools/verity_utils.py
+++ b/tools/releasetools/verity_utils.py
@@ -141,11 +141,7 @@
self.footer_type = footer_type
self.avbtool = avbtool
self.algorithm = algorithm
- self.key_path = key_path
- if key_path and not os.path.exists(key_path) and OPTIONS.search_path:
- new_key_path = os.path.join(OPTIONS.search_path, key_path)
- if os.path.exists(new_key_path):
- self.key_path = new_key_path
+ self.key_path = common.ResolveAVBSigningPathArgs(key_path)
self.salt = salt
self.signing_args = signing_args