aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTao Bao <tbao@google.com>2017-07-21 17:11:40 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-07-21 17:11:40 +0000
commit9c77abd6f23de824d898a88241297c3279fec3e1 (patch)
tree3b105711d07bdb3099d75ea83d1b0f88c767c881
parent8fc04cc40a9511fe5d850d4cf453de1a6e956943 (diff)
parent1dc5d47653c319bc148175ce85b3b19b65952851 (diff)
downloadbuild-9c77abd6f23de824d898a88241297c3279fec3e1.tar.gz
Merge "Look for non-existent files listed in avb_vbmeta_args." into oc-dr1-dev
-rwxr-xr-xtools/releasetools/add_img_to_target_files.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/tools/releasetools/add_img_to_target_files.py b/tools/releasetools/add_img_to_target_files.py
index 4a85496aea..cf78d5ee61 100755
--- a/tools/releasetools/add_img_to_target_files.py
+++ b/tools/releasetools/add_img_to_target_files.py
@@ -377,7 +377,27 @@ def AddVBMeta(output_zip, boot_img_path, system_img_path, vendor_img_path,
args = OPTIONS.info_dict.get("avb_vbmeta_args")
if args and args.strip():
- cmd.extend(shlex.split(args))
+ split_args = shlex.split(args)
+ for index, arg in enumerate(split_args[:-1]):
+ # Sanity check that the image file exists. Some images might be defined
+ # as a path relative to source tree, which may not be available at the
+ # same location when running this script (we have the input target_files
+ # zip only). For such cases, we additionally scan other locations (e.g.
+ # IMAGES/, RADIO/, etc) before bailing out.
+ if arg == '--include_descriptors_from_image':
+ image_path = split_args[index + 1]
+ if os.path.exists(image_path):
+ continue
+ found = False
+ for dir in ['IMAGES', 'RADIO', 'VENDOR_IMAGES', 'PREBUILT_IMAGES']:
+ alt_path = os.path.join(
+ OPTIONS.input_tmp, dir, os.path.basename(image_path))
+ if os.path.exists(alt_path):
+ split_args[index + 1] = alt_path
+ found = True
+ break
+ assert found, 'failed to find %s' % (image_path,)
+ cmd.extend(split_args)
p = common.Run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.communicate()