Introduce hypervisor capability properties

These properties declare whether or not the hypervisor supports
running traditional and protected virtual machines that are controlled
by Android's Virtualization Framework.

Absence of these properties should be taken to imply the hypervisor's
lack of capability.

Bug: 216639283
Test: build
Change-Id: If2f4314e8acc2c2dc338de5e61eac3be671d6665
diff --git a/srcs/android/sysprop/HypervisorProperties.sysprop b/srcs/android/sysprop/HypervisorProperties.sysprop
index 000186c..291e073 100644
--- a/srcs/android/sysprop/HypervisorProperties.sysprop
+++ b/srcs/android/sysprop/HypervisorProperties.sysprop
@@ -25,3 +25,25 @@
     access: Readonly
     prop_name: "ro.boot.hypervisor.version"
 }
+
+# Declares whether or not the hypervisor supports running traditional virtual
+# machines that can be created and managed via VirtualizationService.
+prop {
+    api_name: "hypervisor_vm_supported"
+    type: Boolean
+    scope: Public
+    access: Readonly
+    prop_name: "ro.boot.hypervisor.vm.supported"
+}
+
+# Declares whether or not the hypervisor supports running protected virtual
+# machines, where the host cannot inspect the virtual machine's internal state,
+# that can be created and managed via VirtualizationService. pKVM is an example
+# of a hypervisor that supports protected virtual machines.
+prop {
+    api_name: "hypervisor_protected_vm_supported"
+    type: Boolean
+    scope: Public
+    access: Readonly
+    prop_name: "ro.boot.hypervisor.protected_vm.supported"
+}
diff --git a/srcs/api/PlatformProperties-current.txt b/srcs/api/PlatformProperties-current.txt
index 640c2be..23f4707 100644
--- a/srcs/api/PlatformProperties-current.txt
+++ b/srcs/api/PlatformProperties-current.txt
@@ -187,10 +187,18 @@
 props {
   module: "android.sysprop.HypervisorProperties"
   prop {
+    api_name: "hypervisor_protected_vm_supported"
+    prop_name: "ro.boot.hypervisor.protected_vm.supported"
+  }
+  prop {
     api_name: "hypervisor_version"
     type: String
     prop_name: "ro.boot.hypervisor.version"
   }
+  prop {
+    api_name: "hypervisor_vm_supported"
+    prop_name: "ro.boot.hypervisor.vm.supported"
+  }
 }
 props {
   module: "android.sysprop.MediaProperties"