Fill missing avb property when resigning virt apex.
Bug: 319035607
Test: atest --host sign_virt_apex_test
Test: sign_virt_apex <private key> <virt_apex dir>
Test: sign_virt_apex --verify <private key> <virt_apex_dir>
Test: avbtool info_image --image <artifacts before resigning>
Test: avbtool info_image --image <artifacts after resigning>
Change-Id: I095f5180a2e69eb90447e12089c3535dcae3ebcd
diff --git a/apex/sign_virt_apex.py b/apex/sign_virt_apex.py
index 1951260..ffc1697 100644
--- a/apex/sign_virt_apex.py
+++ b/apex/sign_virt_apex.py
@@ -212,11 +212,18 @@
def LookUp(pairs, key):
return [v for (k, v) in pairs if k == key]
+# Extract properties from the descriptors of original vbmeta image,
+# append to command as parameter.
+def AppendPropArgument(cmd, descriptors):
+ for prop in LookUp(descriptors, 'Prop'):
+ cmd.append('--prop')
+ result = re.match(r"(.+) -> '(.+)'", prop)
+ cmd.append(result.group(1) + ":" + result.group(2))
def AddHashFooter(args, key, image_path, partition_name, additional_descriptors=None):
if os.path.basename(image_path) in args.key_overrides:
key = args.key_overrides[os.path.basename(image_path)]
- info, _ = AvbInfo(args, image_path)
+ info, descriptors = AvbInfo(args, image_path)
if info:
image_size = ReadBytesSize(info['Image size'])
algorithm = info['Algorithm']
@@ -228,6 +235,7 @@
'--partition_name', partition_name,
'--partition_size', partition_size,
'--image', image_path]
+ AppendPropArgument(cmd, descriptors)
if args.signing_args:
cmd.extend(shlex.split(args.signing_args))
if additional_descriptors:
@@ -258,6 +266,7 @@
'--do_not_generate_fec',
'--hash_algorithm', hash_algorithm,
'--image', image_path]
+ AppendPropArgument(cmd, descriptors)
if args.signing_args:
cmd.extend(shlex.split(args.signing_args))
RunCommand(args, cmd)