From 7e0f160f30247ce234dfc563fc4f1e3a008fed20 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Mon, 6 Mar 2017 15:50:08 -0800 Subject: [PATCH] releasetools: Remove the obsolete path in GetImage(). We must have created the images (system.img, system.map etc) prior to calling ota_from_target_files.py (added by commit 2e0d8fcf08475cc1aac5ca4f47cd3328a9d8c083, into Lollipop). Remove the obsolete suppport for handling "old" target_files zips that don't have such images. This simplies the logic for BuildSystem() and BuildVendor(), which now would only be called by add_img_to_target_files.py itself. Test: Generating full and incremental OTAs give the same results, w/ and w/o this CL. Change-Id: I0ea243d09d3378249d7982701ae4ec339b04b7b8 --- tools/releasetools/ota_from_target_files.py | 51 +++++++-------------- 1 file changed, 17 insertions(+), 34 deletions(-) diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py index f6b60ad84..cfe389ea3 100755 --- a/tools/releasetools/ota_from_target_files.py +++ b/tools/releasetools/ota_from_target_files.py @@ -557,36 +557,21 @@ def CalculateFingerprint(oem_props, oem_dict, info_dict): GetBuildProp("ro.build.thumbprint", info_dict)) -def GetImage(which, tmpdir, info_dict): - # Return an image object (suitable for passing to BlockImageDiff) - # for the 'which' partition (most be "system" or "vendor"). If a - # prebuilt image and file map are found in tmpdir they are used, - # otherwise they are reconstructed from the individual files. +def GetImage(which, tmpdir): + """Returns an image object suitable for passing to BlockImageDiff. + + 'which' partition must be "system" or "vendor". A prebuilt image and file + map must already exist in tmpdir. + """ assert which in ("system", "vendor") path = os.path.join(tmpdir, "IMAGES", which + ".img") mappath = os.path.join(tmpdir, "IMAGES", which + ".map") - if os.path.exists(path) and os.path.exists(mappath): - print("using %s.img from target-files" % (which,)) - # This is a 'new' target-files, which already has the image in it. - else: - print("building %s.img from target-files" % (which,)) - - # This is an 'old' target-files, which does not contain images - # already built. Build them. - - mappath = tempfile.mkstemp()[1] - OPTIONS.tempfiles.append(mappath) - - import add_img_to_target_files - if which == "system": - path = add_img_to_target_files.BuildSystem( - tmpdir, info_dict, block_list=mappath) - elif which == "vendor": - path = add_img_to_target_files.BuildVendor( - tmpdir, info_dict, block_list=mappath) + # The image and map files must have been created prior to calling + # ota_from_target_files.py (since LMP). + assert os.path.exists(path) and os.path.exists(mappath) # Bug: http://b/20939131 # In ext4 filesystems, block 0 might be changed even being mounted @@ -713,7 +698,7 @@ else if get_stage("%(bcb_dev)s") == "3/3" then # image. This has the effect of writing new data from the package # to the entire partition, but lets us reuse the updater code that # writes incrementals to do it. - system_tgt = GetImage("system", OPTIONS.input_tmp, OPTIONS.info_dict) + system_tgt = GetImage("system", OPTIONS.input_tmp) system_tgt.ResetFileMap() system_diff = common.BlockDifference("system", system_tgt, src=None) system_diff.WriteScript(script, output_zip) @@ -746,7 +731,7 @@ else if get_stage("%(bcb_dev)s") == "3/3" then script.ShowProgress(0.1, 0) if block_based: - vendor_tgt = GetImage("vendor", OPTIONS.input_tmp, OPTIONS.info_dict) + vendor_tgt = GetImage("vendor", OPTIONS.input_tmp) vendor_tgt.ResetFileMap() vendor_diff = common.BlockDifference("vendor", vendor_tgt) vendor_diff.WriteScript(script, output_zip) @@ -935,8 +920,8 @@ def WriteBlockIncrementalOTAPackage(target_zip, source_zip, output_zip): target_recovery = common.GetBootableImage( "/tmp/recovery.img", "recovery.img", OPTIONS.target_tmp, "RECOVERY") - system_src = GetImage("system", OPTIONS.source_tmp, OPTIONS.source_info_dict) - system_tgt = GetImage("system", OPTIONS.target_tmp, OPTIONS.target_info_dict) + system_src = GetImage("system", OPTIONS.source_tmp) + system_tgt = GetImage("system", OPTIONS.target_tmp) blockimgdiff_version = 1 if OPTIONS.info_dict: @@ -963,10 +948,8 @@ def WriteBlockIncrementalOTAPackage(target_zip, source_zip, output_zip): if HasVendorPartition(target_zip): if not HasVendorPartition(source_zip): raise RuntimeError("can't generate incremental that adds /vendor") - vendor_src = GetImage("vendor", OPTIONS.source_tmp, - OPTIONS.source_info_dict) - vendor_tgt = GetImage("vendor", OPTIONS.target_tmp, - OPTIONS.target_info_dict) + vendor_src = GetImage("vendor", OPTIONS.source_tmp) + vendor_tgt = GetImage("vendor", OPTIONS.target_tmp) # Check first block of vendor partition for remount R/W only if # disk type is ext4 @@ -1236,13 +1219,13 @@ def WriteVerifyPackage(input_zip, output_zip): recovery_type, recovery_device, recovery_img.size, recovery_img.sha1)) script.AppendExtra("") - system_tgt = GetImage("system", OPTIONS.input_tmp, OPTIONS.info_dict) + system_tgt = GetImage("system", OPTIONS.input_tmp) system_tgt.ResetFileMap() system_diff = common.BlockDifference("system", system_tgt, src=None) system_diff.WriteStrictVerifyScript(script) if HasVendorPartition(input_zip): - vendor_tgt = GetImage("vendor", OPTIONS.input_tmp, OPTIONS.info_dict) + vendor_tgt = GetImage("vendor", OPTIONS.input_tmp) vendor_tgt.ResetFileMap() vendor_diff = common.BlockDifference("vendor", vendor_tgt, src=None) vendor_diff.WriteStrictVerifyScript(script)