aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTianjie <xunchang@google.com>2021-07-14 15:56:37 -0700
committerTianjie <xunchang@google.com>2021-07-14 16:07:33 -0700
commite7d0377f4af826fbc8f98864a01da835112e2f8c (patch)
tree99a9027a85d12ce741b854bfdeb5269f792a0937
parent69f66460deeef65f4120c0c05ac6a4c23d0af088 (diff)
downloadbuild-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.py39
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)