Add an option to start a pVM without pvmfw
This can be useful when debugging issues related to early boot of pVMs.
Note: this option is only available for debugging and requires `adb
root`.
Bug: 376870129
Test: adb shell 'setprop hypervisor.pvmfw.path none
Test: adb shell /apex/com.android.virt/bin/vm run-microdroid -p
Change-Id: I61074fbec5df3dcd7b6273586f491c32d810cc70
diff --git a/android/virtmgr/src/crosvm.rs b/android/virtmgr/src/crosvm.rs
index b28834a..94379a9 100644
--- a/android/virtmgr/src/crosvm.rs
+++ b/android/virtmgr/src/crosvm.rs
@@ -975,7 +975,11 @@
if config.protected {
match system_properties::read(SYSPROP_CUSTOM_PVMFW_PATH)? {
Some(pvmfw_path) if !pvmfw_path.is_empty() => {
- command.arg("--protected-vm-with-firmware").arg(pvmfw_path)
+ if pvmfw_path == "none" {
+ command.arg("--protected-vm-without-firmware")
+ } else {
+ command.arg("--protected-vm-with-firmware").arg(pvmfw_path)
+ }
}
_ => command.arg("--protected-vm"),
};
diff --git a/guest/pvmfw/README.md b/guest/pvmfw/README.md
index 3ffa3f0..50fe3d3 100644
--- a/guest/pvmfw/README.md
+++ b/guest/pvmfw/README.md
@@ -487,3 +487,19 @@
Note: `adb root` is required to set the system property.
[bcc.dat]: https://cs.android.com/android/platform/superproject/main/+/main:packages/modules/Virtualization/tests/pvmfw/assets/bcc.dat
+
+### Running pVM without pvmfw
+
+Sometimes, it might be useful to start a pVM without pvmfw, e.g. when debugging
+early pVM boot issues. You can achieve that by setting `hypervisor.pvmfw.path`
+propety to the value `none`:
+
+```shell
+adb shell 'setprop hypervisor.pvmfw.path "none"'
+```
+
+Then run a protected VM:
+
+```shell
+adb shell /apex/com.android.virt/bin/vm run-microdroid --protected
+```