diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2018-11-28 00:36:50 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-11-28 00:36:50 +0000 |
commit | 08d07f5aa98d05c878838aa91618029cdc6cfaef (patch) | |
tree | aedf29561cf925dce02996e577303259bcaed258 | |
parent | 7f3d46e46d8e0f352e85fefe4eaa486703552202 (diff) | |
parent | 70fc029ab8f47383851c6effc7844727713b2ed5 (diff) | |
download | build-08d07f5aa98d05c878838aa91618029cdc6cfaef.tar.gz |
Merge "Infer prebuilt image size"
-rwxr-xr-x | tools/releasetools/add_img_to_target_files.py | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/tools/releasetools/add_img_to_target_files.py b/tools/releasetools/add_img_to_target_files.py index 2d91b60a15..139d25713a 100755 --- a/tools/releasetools/add_img_to_target_files.py +++ b/tools/releasetools/add_img_to_target_files.py @@ -659,17 +659,25 @@ def AddSuperEmpty(output_zip): def AddSuperSplit(output_zip): """Create split super_*.img and store it in output_zip.""" + def GetPartitionSizeFromImage(img): + try: + simg = sparse_img.SparseImage(img) + return simg.blocksize * simg.total_blocks + except ValueError: + return os.path.getsize(img) + def TransformPartitionArg(arg): lst = arg.split(':') # Because --auto-slot-suffixing for A/B, there is no need to remove suffix. name = lst[0] - assert name + '_size' in OPTIONS.info_dict, ( - "{} is a prebuilt. Dynamic partitions with prebuilt images " - "are not supported yet.".format(name)) - size = OPTIONS.info_dict[name + '_size'] - assert size is not None, \ - '{0}_size is not found; is {0} built?'.format(name) - lst[2] = str(size) + if name + '_size' in OPTIONS.info_dict: + size = str(OPTIONS.info_dict[name + '_size']) + logger.info("Using %s_size = %s", name, size) + else: + size = str(GetPartitionSizeFromImage( + os.path.join(OPTIONS.input_tmp, "IMAGES", '{}.img'.format(name)))) + logger.info("Using size of prebuilt %s = %s", name, size) + lst[2] = size return ':'.join(lst) def GetLpmakeArgsWithSizes(): |