forked from openkylin/platform_build
Adds support to create img from target files directory instead of zip.
This is used by merge_target_files to prevent an unnecessary unzip and copy. Test: Ran merge_target_files.py and booted using the img.zip. Change-Id: I6fe0dd025b30b3f4965c9b22fb6943019bf5899b
This commit is contained in:
parent
ff14c47182
commit
b8a2f9df51
|
@ -15,11 +15,18 @@
|
|||
# limitations under the License.
|
||||
|
||||
"""
|
||||
Given a target-files zipfile, produces an image zipfile suitable for
|
||||
use with 'fastboot update'.
|
||||
Given target-files, produces an image zipfile suitable for use
|
||||
with 'fastboot update'.
|
||||
|
||||
Usage: img_from_target_files [flags] input_target_files output_image_zip
|
||||
|
||||
input_target_files: one of the following:
|
||||
- directory containing extracted target files. It will load info from
|
||||
OTA/android-info.txt and build the image zipfile using images from IMAGES/.
|
||||
- target files package. Same as above, but extracts the archive before
|
||||
building the image zipfile.
|
||||
|
||||
Flags:
|
||||
-z (--bootable_zip)
|
||||
Include only the bootable images (eg 'boot' and 'recovery') in
|
||||
the output.
|
||||
|
@ -76,7 +83,16 @@ def main(argv):
|
|||
|
||||
common.InitLogging()
|
||||
|
||||
OPTIONS.input_tmp = common.UnzipTemp(args[0], ["IMAGES/*", "OTA/*"])
|
||||
target_files = args[0]
|
||||
if os.path.isdir(target_files):
|
||||
logger.info("Building image zip from extracted target files.")
|
||||
OPTIONS.input_tmp = target_files
|
||||
elif zipfile.is_zipfile(target_files):
|
||||
logger.info("Building image zip from target files zip.")
|
||||
OPTIONS.input_tmp = common.UnzipTemp(args[0], ["IMAGES/*", "OTA/*"])
|
||||
else:
|
||||
raise ValueError("%s is not a valid path." % target_files)
|
||||
|
||||
output_zip = zipfile.ZipFile(args[1], "w", compression=zipfile.ZIP_DEFLATED)
|
||||
CopyInfo(output_zip)
|
||||
|
||||
|
|
|
@ -698,6 +698,16 @@ def merge_target_files(temp_dir, system_target_files, system_item_list,
|
|||
if output_super_empty:
|
||||
shutil.copyfile(super_empty_img, output_super_empty)
|
||||
|
||||
# Create the IMG package from the merged target files (before zipping, in
|
||||
# order to avoid an unnecessary unzip and copy).
|
||||
|
||||
if output_img:
|
||||
img_from_target_files_args = [
|
||||
output_target_files_temp_dir,
|
||||
output_img,
|
||||
]
|
||||
img_from_target_files.main(img_from_target_files_args)
|
||||
|
||||
# Finally, create the output target files zip archive and/or copy the
|
||||
# output items to the output target files directory.
|
||||
|
||||
|
@ -751,14 +761,6 @@ def merge_target_files(temp_dir, system_target_files, system_item_list,
|
|||
]
|
||||
ota_from_target_files.main(ota_from_target_files_args)
|
||||
|
||||
# Create the IMG package from the merged target files package.
|
||||
|
||||
if output_img:
|
||||
img_from_target_files_args = [
|
||||
output_zip,
|
||||
output_img,
|
||||
]
|
||||
img_from_target_files.main(img_from_target_files_args)
|
||||
|
||||
|
||||
def call_func_with_temp_dir(func, keep_tmp):
|
||||
|
|
Loading…
Reference in New Issue