Initial work to make VM config file optional

Modify VirtualMachineAppConfig to allow configPath to be omitted;
instead a subset of the available config options can be specified
directly.

Modify VS to map the config options to the Metadata proto file.

At this stage nothing ever sets the payload config directly, and
Microdroid would reject it if it received it, but this at least
establishes the plumbing.

Bug: 243513572
Test: atest MicrodroidTests
Change-Id: I596384abf6e3bbbccd8934ba28fa3a85faa51b56
diff --git a/microdroid/payload/metadata.proto b/microdroid/payload/metadata.proto
index 2e92f55..229d03f 100644
--- a/microdroid/payload/metadata.proto
+++ b/microdroid/payload/metadata.proto
@@ -26,7 +26,11 @@
 
   ApkPayload apk = 3;
 
-  string payload_config_path = 4;
+  oneof payload {
+    // Path to JSON config file inside the APK.
+    string config_path = 4;
+    PayloadConfig config = 5;
+  }
 }
 
 message ApexPayload {
@@ -58,3 +62,18 @@
 
   string idsig_partition_name = 3;
 }
+
+message PayloadConfig {
+  // Required.
+  // Path to the payload binary file inside the APK.
+  string payload_binary_path = 1;
+
+  // Required.
+  // Whether tombstones from crashes inside the VM should be exported to the host.
+  bool export_tombstones = 2;
+
+  // Optional.
+  // Arguments to be passed to the payload.
+  // TODO(b/249064104): Remove this
+  repeated string args = 3;
+}