Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b8a2f9df authored by Daniel Norman's avatar Daniel Norman
Browse files

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
parent ff14c471
Loading
Loading
Loading
Loading
+19 −3
Original line number Diff line number Diff line
@@ -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()

  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)

+10 −8
Original line number Diff line number Diff line
@@ -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):