Add a python binary to generate the protobuf for care_map

This binary parses the legacy care_map text in the input file and writes
the generated protobuf message into the output file. For test purpose,
it also has a "--parse_proto" option to reverse the process and convert
a protobuf message file into plain text.

The build script will then call the binary to generate the care_map.txt
in the new format.

Bug: 77867897
Test: Run the binary to convert a care_map.txt, run update_verifier
Change-Id: I3ca65e19027404806132aa8d51e9bff766630c99
diff --git a/update_verifier/Android.bp b/update_verifier/Android.bp
index f4dc1f4..7a860a1 100644
--- a/update_verifier/Android.bp
+++ b/update_verifier/Android.bp
@@ -54,7 +54,7 @@
     proto: {
         type: "lite",
         export_proto_headers: true,
-    }
+    },
 }
 
 cc_binary {
@@ -88,3 +88,32 @@
         "update_verifier.rc",
     ],
 }
+
+python_binary_host {
+    name: "care_map_generator",
+
+    srcs: [
+        "care_map_generator.py",
+        "care_map.proto",
+    ],
+    libs: [
+        "python-symbol",
+        // Soong won't add "libprotobuf-python" to the dependencies if
+        // filegroup contains .proto files. So add it here explicitly.
+        "libprotobuf-python",
+    ],
+    proto: {
+        canonical_path_from_root: false,
+    },
+
+    version: {
+        py2: {
+            enabled: true,
+            embedded_launcher: true,
+        },
+        py3: {
+            enabled: false,
+            embedded_launcher: false,
+        },
+    },
+}