diff options
author | Tianjie <xunchang@google.com> | 2021-07-14 15:56:37 -0700 |
---|---|---|
committer | Tianjie <xunchang@google.com> | 2021-07-14 16:07:33 -0700 |
commit | e7d0377f4af826fbc8f98864a01da835112e2f8c (patch) | |
tree | 99a9027a85d12ce741b854bfdeb5269f792a0937 | |
parent | 69f66460deeef65f4120c0c05ac6a4c23d0af088 (diff) | |
download | build-e7d0377f4af826fbc8f98864a01da835112e2f8c.tar.gz |
Write the vbmeta digest to the output zipfile also
During signing, we write the entry directly to the output zip, intead
of a temp directory. Add the logic to write vbmeta_digest.txt to output
zipfile too. So the digest file will show up in the signed target files.
Bug: 189926233
Test: add_img_to_target_files -a <target-files.zip>
Change-Id: Ibf28a8f97512bda8c8c695e06190e1fb6573c53e
(cherry picked from commit c3bf3d00a3077b66aa178f00fb789d34a042c9e8)
-rw-r--r-- | tools/releasetools/add_img_to_target_files.py | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/tools/releasetools/add_img_to_target_files.py b/tools/releasetools/add_img_to_target_files.py index c583d013b3..babfc7dcad 100644 --- a/tools/releasetools/add_img_to_target_files.py +++ b/tools/releasetools/add_img_to_target_files.py @@ -704,6 +704,31 @@ def AddApexInfo(output_zip): common.ZipWrite(output_zip, output_file, arc_name) +def AddVbmetaDigest(output_zip): + """Write the vbmeta digest to the output dir and zipfile.""" + + # Calculate the vbmeta digest and put the result in to META/ + boot_images = OPTIONS.info_dict.get("boot_images") + # Disable the digest calculation if the target_file is used as a container + # for boot images. + boot_container = boot_images and len(boot_images.split()) >= 2 + if (OPTIONS.info_dict.get("avb_enable") == "true" and not boot_container and + OPTIONS.info_dict.get("avb_building_vbmeta_image") == "true"): + avbtool = OPTIONS.info_dict["avb_avbtool"] + digest = verity_utils.CalculateVbmetaDigest(OPTIONS.input_tmp, avbtool) + vbmeta_digest_txt = os.path.join(OPTIONS.input_tmp, "META", + "vbmeta_digest.txt") + with open(vbmeta_digest_txt, 'w') as f: + f.write(digest) + # writes to the output zipfile + if output_zip: + arc_name = "META/vbmeta_digest.txt" + if arc_name in output_zip.namelist(): + OPTIONS.replace_updated_files_list.append(arc_name) + else: + common.ZipWriteStr(output_zip, arc_name, digest) + + def AddImagesToTargetFiles(filename): """Creates and adds images (boot/recovery/system/...) to a target_files.zip. @@ -957,19 +982,7 @@ def AddImagesToTargetFiles(filename): with open(pack_radioimages_txt) as f: AddPackRadioImages(output_zip, f.readlines()) - # Calculate the vbmeta digest and put the result in to META/ - boot_images = OPTIONS.info_dict.get("boot_images") - # Disable the digest calculation if the target_file is used as a container - # for boot images. - boot_container = boot_images and len(boot_images.split()) >= 2 - if (OPTIONS.info_dict.get("avb_enable") == "true" and not boot_container and - OPTIONS.info_dict.get("avb_building_vbmeta_image") == "true"): - avbtool = OPTIONS.info_dict["avb_avbtool"] - digest = verity_utils.CalculateVbmetaDigest(OPTIONS.input_tmp, avbtool) - vbmeta_digest_txt = os.path.join(OPTIONS.input_tmp, "META", - "vbmeta_digest.txt") - with open(vbmeta_digest_txt, 'w') as f: - f.write(digest) + AddVbmetaDigest(output_zip) if output_zip: common.ZipClose(output_zip) |