Adds optional --rebuild_recovery flag to merge_target_files.
Also makes AddSystem check that an output_zip exists before attempting
to add the recovery patch to the output zip.
Bug: 128838154
Test: Running merge_target_files with --rebuild_recovery and verifying
it passes --rebuild_recovery to add_img_to_target_files.
Change-Id: I19347b2c0dabf29b7196045b18551b5d0687df2c
diff --git a/tools/releasetools/merge_target_files.py b/tools/releasetools/merge_target_files.py
index 5014516..20806b8 100755
--- a/tools/releasetools/merge_target_files.py
+++ b/tools/releasetools/merge_target_files.py
@@ -43,6 +43,10 @@
--output-target-files output-target-files-package
The output merged target files package. Also a zip archive.
+
+ --rebuild_recovery
+ Rebuild the recovery patch used by non-A/B devices and write it to the
+ system image.
"""
from __future__ import print_function
@@ -65,6 +69,7 @@
OPTIONS.other_target_files = None
OPTIONS.other_item_list = None
OPTIONS.output_target_files = None
+OPTIONS.rebuild_recovery = False
OPTIONS.keep_tmp = False
# default_system_item_list is a list of items to extract from the partial
@@ -433,7 +438,8 @@
system_misc_info_keys,
other_target_files,
other_item_list,
- output_target_files):
+ output_target_files,
+ rebuild_recovery):
"""Merge two target files packages together.
This function takes system and other target files packages as input, performs
@@ -466,6 +472,9 @@
output_target_files: The name of the output zip archive target files
package created by merging system and other.
+
+ rebuild_recovery: If true, rebuild the recovery patch used by non-A/B
+ devices and write it to the system image.
"""
logger.info(
@@ -531,10 +540,10 @@
# Regenerate IMAGES in the temporary directory.
- add_img_args = [
- '--verbose',
- output_target_files_temp_dir,
- ]
+ add_img_args = ['--verbose']
+ if rebuild_recovery:
+ add_img_args.append('--rebuild_recovery')
+ add_img_args.append(output_target_files_temp_dir)
add_img_to_target_files.main(add_img_args)
@@ -630,6 +639,8 @@
OPTIONS.other_item_list = a
elif o == '--output-target-files':
OPTIONS.output_target_files = a
+ elif o == '--rebuild_recovery':
+ OPTIONS.rebuild_recovery = True
elif o == '--keep_tmp':
OPTIONS.keep_tmp = True
else:
@@ -645,6 +656,7 @@
'other-target-files=',
'other-item-list=',
'output-target-files=',
+ 'rebuild_recovery',
"keep_tmp",
],
extra_option_handler=option_handler)
@@ -679,7 +691,8 @@
system_misc_info_keys=system_misc_info_keys,
other_target_files=OPTIONS.other_target_files,
other_item_list=other_item_list,
- output_target_files=OPTIONS.output_target_files),
+ output_target_files=OPTIONS.output_target_files,
+ rebuild_recovery=OPTIONS.rebuild_recovery),
OPTIONS.keep_tmp)