From 041e8644d7fd5adf5f8629dd36470871fbca66ba Mon Sep 17 00:00:00 2001 From: "Brint E. Kriebel" Date: Thu, 6 Aug 2015 13:21:29 -0700 Subject: [PATCH] build: Fix extra userdata generation Image generation has been combined into the target file script and requires the prefix parameter to work properly. This also needs to be called properly when creating fastboot packages. Change-Id: I1f716cc375ffe401d5f18487330fc9bb809ff3b4 Ticket: OPO-191 --- tools/releasetools/add_img_to_target_files.py | 20 +++++++++++++++----- tools/releasetools/img_from_target_files.py | 2 ++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/tools/releasetools/add_img_to_target_files.py b/tools/releasetools/add_img_to_target_files.py index ad1740592..c16637a23 100755 --- a/tools/releasetools/add_img_to_target_files.py +++ b/tools/releasetools/add_img_to_target_files.py @@ -211,19 +211,29 @@ def AddUserdata(output_zip, prefix="IMAGES/"): shutil.rmtree(temp_dir) -def AddUserdataExtra(output_zip): +def AddUserdataExtra(output_zip, prefix="IMAGES/"): """Create extra userdata image and store it in output_zip.""" image_props = build_image.ImagePropFromGlobalDict(OPTIONS.info_dict, "data_extra") - # If no userdataextra_size is provided for extfs, skip userdata_extra.img. - if ((image_props.get("fs_type", "").startswith("ext") or - image_props.get("fs_type", "").startswith("f2fs")) and - not image_props.get("partition_size")): + + # The build system has to explicitly request extra userdata. + if "fs_type" not in image_props: return extra_name = image_props.get("partition_name", "extra") + prebuilt_path = os.path.join(OPTIONS.input_tmp, prefix, "userdata_%s.img" % extra_name) + if os.path.exists(prebuilt_path): + print "userdata_%s.img already exists in %s, no need to rebuild..." % (extra_name, prefix,) + return + + # We only allow yaffs to have a 0/missing partition_size. + # Extfs, f2fs must have a size. Skip userdata_extra.img if no size. + if (not image_props.get("fs_type", "").startswith("yaffs") and + not image_props.get("partition_size")): + return + print "creating userdata_%s.img..." % extra_name # The name of the directory it is making an image out of matters to diff --git a/tools/releasetools/img_from_target_files.py b/tools/releasetools/img_from_target_files.py index fac5ab6de..f12fecb7a 100755 --- a/tools/releasetools/img_from_target_files.py +++ b/tools/releasetools/img_from_target_files.py @@ -148,6 +148,8 @@ def main(argv): pass # no vendor partition for this device banner("AddUserdata") add_img_to_target_files.AddUserdata(output_zip, prefix="") + banner("AddUserdataExtra") + add_img_to_target_files.AddUserdataExtra(output_zip, prefix="") banner("AddCache") add_img_to_target_files.AddCache(output_zip, prefix="") -- 2.11.0