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)