Merge changes from topic "avf_clean" into main

* changes:
  Format tests/vm_attestation
  Move service_vm/README.md to docs/service_vm.md
  Move service_vm/fake_chain to libs/libservice_vm_fake_chain
  Move service_vm/test_apk to tests/vm_attestation
  Move service_vm/demo_apk to android/VmAttestationDemoApp
  Move service_vm/requests to libs/libservice_vm_requests
  Move service_vm/manager to libs/libservice_vm_manager
  Move service_vm/comm to libs/libservice_vm_comm
  Move service_vm/client_vm_csr to libs/libclient_vm_csr
  Move java/ to android/android.system.virtualmachine.res
  Move java/jni to libs/libvirtualization_jni
  Move java/service to libs/service-virtualization
  Move java/framework to libs/framework-virtualization
  Move vm_payload to libs/libvm_payload
  Move vmclient to libs/libvmclient
  Move vmbase to libs/libvmbase
  Move flags/cpp to libs/libavf_cc_flags
  Move top-level Android.bp to under build
  Move microdroid to under build
  Move vm to under android
  Move zipfuse to under guest
  Move virtualizationservice to under android
  Move virtualizationmanager to android/virtmgr
  Move rialto to under guest
  Move microdroid/derive_microdroid_vendor_dice_node to under guest
  Move microdroid/payload to libs/libmicrodroid_payload_metadata
  Move microdroid/kdump to under guest
  Move pvmfw to under guest
  Move microdroid_manager to under guest
  Move launcher to under guest
  Move encryptedstore to under guest
  Move demo and demo_native to under android
  Move apex to under build
  Move apkdmverity to under guest
  Baseline Lint FlaggedApi violations
diff --git a/README.md b/README.md
index f417b00..fc4d389 100644
--- a/README.md
+++ b/README.md
@@ -14,21 +14,21 @@
 For in-depth explanations about individual topics and components, visit the following links.
 
 AVF components:
-* [pVM firmware](pvmfw/README.md)
+* [pVM firmware](guest/pvmfw/README.md)
 * [Android Boot Loader (ABL)](docs/abl.md)
 * [Microdroid](microdroid/README.md)
 * [Microdroid kernel](microdroid/kernel/README.md)
-* [Microdroid payload](microdroid/payload/README.md)
-* [vmbase](vmbase/README.md)
-* [Encrypted Storage](encryptedstore/README.md)
+* [Microdroid payload](libs/libmicrodroid_payload_metadata/README.md)
+* [vmbase](libs/libvmbase/README.md)
+* [Encrypted Storage](guest/encryptedstore/README.md)
 
 AVF APIs:
-* [Java API](java/framework/README.md)
-* [VM Payload API](vm_payload/README.md)
+* [Java API](libs/framework-virtualization/README.md)
+* [VM Payload API](libs/libvm_payload/README.md)
 
 How-Tos:
-* [Building and running a demo app in Java](demo/README.md)
-* [Building and running a demo app in C++](demo_native/README.md)
+* [Building and running a demo app in Java](android/MicrodroidDemoApp/README.md)
+* [Building and running a demo app in C++](android/vm_demo_native/README.md)
 * [Debugging](docs/debug)
 * [Using custom VM](docs/custom_vm.md)
 * [Device assignment](docs/device_assignment.md)
diff --git a/TEST_MAPPING b/TEST_MAPPING
index 762c3bf..a822210 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -81,13 +81,13 @@
   ],
   "imports": [
     {
-      "path": "packages/modules/Virtualization/apkdmverity"
+      "path": "packages/modules/Virtualization/guest/apkdmverity"
     },
     {
-      "path": "packages/modules/Virtualization/encryptedstore"
+      "path": "packages/modules/Virtualization/guest/encryptedstore"
     },
     {
-      "path": "packages/modules/Virtualization/virtualizationmanager"
+      "path": "packages/modules/Virtualization/android/virtmgr"
     },
     {
       "path": "packages/modules/Virtualization/libs/apexutil"
@@ -120,34 +120,34 @@
       "path": "packages/modules/Virtualization/authfs"
     },
     {
-      "path": "packages/modules/Virtualization/microdroid_manager"
+      "path": "packages/modules/Virtualization/guest/microdroid_manager"
     },
     {
-      "path": "packages/modules/Virtualization/pvmfw"
+      "path": "packages/modules/Virtualization/guest/pvmfw"
     },
     {
-      "path": "packages/modules/Virtualization/rialto"
+      "path": "packages/modules/Virtualization/guest/rialto"
     },
     {
-      "path": "packages/modules/Virtualization/service_vm/client_vm_csr"
+      "path": "packages/modules/Virtualization/libs/libclient_vm_csr"
     },
     {
-      "path": "packages/modules/Virtualization/service_vm/comm"
+      "path": "packages/modules/Virtualization/libs/libservice_vm_comm"
     },
     {
-      "path": "packages/modules/Virtualization/service_vm/requests"
+      "path": "packages/modules/Virtualization/libs/libservice_vm_requests"
     },
     {
-      "path": "packages/modules/Virtualization/virtualizationservice"
+      "path": "packages/modules/Virtualization/android/virtualizationservice"
     },
     {
-      "path": "packages/modules/Virtualization/vm"
+      "path": "packages/modules/Virtualization/android/vm"
     },
     {
-      "path": "packages/modules/Virtualization/vmbase"
+      "path": "packages/modules/Virtualization/libs/libvmbase"
     },
     {
-      "path": "packages/modules/Virtualization/zipfuse"
+      "path": "packages/modules/Virtualization/guest/zipfuse"
     }
   ]
 }
diff --git a/apex/empty-payload-apk/Android.bp b/android/EmptyPayloadApp/Android.bp
similarity index 100%
rename from apex/empty-payload-apk/Android.bp
rename to android/EmptyPayloadApp/Android.bp
diff --git a/apex/empty-payload-apk/AndroidManifest.xml b/android/EmptyPayloadApp/AndroidManifest.xml
similarity index 100%
rename from apex/empty-payload-apk/AndroidManifest.xml
rename to android/EmptyPayloadApp/AndroidManifest.xml
diff --git a/apex/empty-payload-apk/empty_binary.cpp b/android/EmptyPayloadApp/empty_binary.cpp
similarity index 100%
rename from apex/empty-payload-apk/empty_binary.cpp
rename to android/EmptyPayloadApp/empty_binary.cpp
diff --git a/demo/Android.bp b/android/MicrodroidDemoApp/Android.bp
similarity index 100%
rename from demo/Android.bp
rename to android/MicrodroidDemoApp/Android.bp
diff --git a/demo/AndroidManifest.xml b/android/MicrodroidDemoApp/AndroidManifest.xml
similarity index 100%
rename from demo/AndroidManifest.xml
rename to android/MicrodroidDemoApp/AndroidManifest.xml
diff --git a/demo/README.md b/android/MicrodroidDemoApp/README.md
similarity index 100%
rename from demo/README.md
rename to android/MicrodroidDemoApp/README.md
diff --git a/demo/java/com/android/microdroid/demo/MainActivity.java b/android/MicrodroidDemoApp/java/com/android/microdroid/demo/MainActivity.java
similarity index 98%
rename from demo/java/com/android/microdroid/demo/MainActivity.java
rename to android/MicrodroidDemoApp/java/com/android/microdroid/demo/MainActivity.java
index 906d18e..cbea5b9 100644
--- a/demo/java/com/android/microdroid/demo/MainActivity.java
+++ b/android/MicrodroidDemoApp/java/com/android/microdroid/demo/MainActivity.java
@@ -112,9 +112,7 @@
                             logView.append(line + "\n");
                             scrollLogView.fullScroll(View.FOCUS_DOWN);
                         });
-        model.getPayloadOutput()
-                .observeForever(
-                        line -> payloadView.append(line + "\n"));
+        model.getPayloadOutput().observeForever(line -> payloadView.append(line + "\n"));
     }
 
     /** Reads data from an input stream and posts it to the output data */
diff --git a/demo/res/layout/activity_main.xml b/android/MicrodroidDemoApp/res/layout/activity_main.xml
similarity index 100%
rename from demo/res/layout/activity_main.xml
rename to android/MicrodroidDemoApp/res/layout/activity_main.xml
diff --git a/demo/res/values/colors.xml b/android/MicrodroidDemoApp/res/values/colors.xml
similarity index 100%
rename from demo/res/values/colors.xml
rename to android/MicrodroidDemoApp/res/values/colors.xml
diff --git a/demo/res/values/themes.xml b/android/MicrodroidDemoApp/res/values/themes.xml
similarity index 100%
rename from demo/res/values/themes.xml
rename to android/MicrodroidDemoApp/res/values/themes.xml
diff --git a/service_vm/demo_apk/Android.bp b/android/VmAttestationDemoApp/Android.bp
similarity index 100%
rename from service_vm/demo_apk/Android.bp
rename to android/VmAttestationDemoApp/Android.bp
diff --git a/service_vm/demo_apk/AndroidManifest.xml b/android/VmAttestationDemoApp/AndroidManifest.xml
similarity index 100%
rename from service_vm/demo_apk/AndroidManifest.xml
rename to android/VmAttestationDemoApp/AndroidManifest.xml
diff --git a/service_vm/demo_apk/README.md b/android/VmAttestationDemoApp/README.md
similarity index 100%
rename from service_vm/demo_apk/README.md
rename to android/VmAttestationDemoApp/README.md
diff --git a/service_vm/demo_apk/assets/config.json b/android/VmAttestationDemoApp/assets/config.json
similarity index 100%
rename from service_vm/demo_apk/assets/config.json
rename to android/VmAttestationDemoApp/assets/config.json
diff --git a/service_vm/demo_apk/src/main.rs b/android/VmAttestationDemoApp/src/main.rs
similarity index 100%
rename from service_vm/demo_apk/src/main.rs
rename to android/VmAttestationDemoApp/src/main.rs
diff --git a/java/Android.bp b/android/android.system.virtualmachine.res/Android.bp
similarity index 100%
rename from java/Android.bp
rename to android/android.system.virtualmachine.res/Android.bp
diff --git a/java/AndroidManifest.xml b/android/android.system.virtualmachine.res/AndroidManifest.xml
similarity index 100%
rename from java/AndroidManifest.xml
rename to android/android.system.virtualmachine.res/AndroidManifest.xml
diff --git a/java/AndroidManifestNext.xml b/android/android.system.virtualmachine.res/AndroidManifestNext.xml
similarity index 100%
rename from java/AndroidManifestNext.xml
rename to android/android.system.virtualmachine.res/AndroidManifestNext.xml
diff --git a/virtualizationmanager/Android.bp b/android/virtmgr/Android.bp
similarity index 100%
rename from virtualizationmanager/Android.bp
rename to android/virtmgr/Android.bp
diff --git a/virtualizationmanager/TEST_MAPPING b/android/virtmgr/TEST_MAPPING
similarity index 100%
rename from virtualizationmanager/TEST_MAPPING
rename to android/virtmgr/TEST_MAPPING
diff --git a/virtualizationmanager/fsfdt/Android.bp b/android/virtmgr/fsfdt/Android.bp
similarity index 100%
rename from virtualizationmanager/fsfdt/Android.bp
rename to android/virtmgr/fsfdt/Android.bp
diff --git a/virtualizationmanager/fsfdt/src/lib.rs b/android/virtmgr/fsfdt/src/lib.rs
similarity index 100%
rename from virtualizationmanager/fsfdt/src/lib.rs
rename to android/virtmgr/fsfdt/src/lib.rs
diff --git a/virtualizationmanager/fsfdt/src/main.rs b/android/virtmgr/fsfdt/src/main.rs
similarity index 100%
rename from virtualizationmanager/fsfdt/src/main.rs
rename to android/virtmgr/fsfdt/src/main.rs
diff --git a/virtualizationmanager/fsfdt/testdata/fs/avf/reference/oem/stub b/android/virtmgr/fsfdt/testdata/fs/avf/reference/oem/stub
similarity index 100%
rename from virtualizationmanager/fsfdt/testdata/fs/avf/reference/oem/stub
rename to android/virtmgr/fsfdt/testdata/fs/avf/reference/oem/stub
Binary files differ
diff --git a/virtualizationmanager/fsfdt/testdata/fs/avf/reference/vendor/empty b/android/virtmgr/fsfdt/testdata/fs/avf/reference/vendor/empty
similarity index 100%
rename from virtualizationmanager/fsfdt/testdata/fs/avf/reference/vendor/empty
rename to android/virtmgr/fsfdt/testdata/fs/avf/reference/vendor/empty
diff --git a/virtualizationmanager/fsfdt/testdata/fs/avf/reference/vendor/vendor_extra_node/flag b/android/virtmgr/fsfdt/testdata/fs/avf/reference/vendor/vendor_extra_node/flag
similarity index 100%
rename from virtualizationmanager/fsfdt/testdata/fs/avf/reference/vendor/vendor_extra_node/flag
rename to android/virtmgr/fsfdt/testdata/fs/avf/reference/vendor/vendor_extra_node/flag
Binary files differ
diff --git a/virtualizationmanager/fsfdt/testdata/fs/avf/reference/vendor_hashtree_descriptor_root_digest b/android/virtmgr/fsfdt/testdata/fs/avf/reference/vendor_hashtree_descriptor_root_digest
similarity index 100%
rename from virtualizationmanager/fsfdt/testdata/fs/avf/reference/vendor_hashtree_descriptor_root_digest
rename to android/virtmgr/fsfdt/testdata/fs/avf/reference/vendor_hashtree_descriptor_root_digest
Binary files differ
diff --git a/virtualizationmanager/fsfdt/testdata/fs/avf/reference/vendor_image_key b/android/virtmgr/fsfdt/testdata/fs/avf/reference/vendor_image_key
similarity index 100%
rename from virtualizationmanager/fsfdt/testdata/fs/avf/reference/vendor_image_key
rename to android/virtmgr/fsfdt/testdata/fs/avf/reference/vendor_image_key
Binary files differ
diff --git a/virtualizationmanager/fuzzer.cpp b/android/virtmgr/fuzzer.cpp
similarity index 100%
rename from virtualizationmanager/fuzzer.cpp
rename to android/virtmgr/fuzzer.cpp
diff --git a/virtualizationmanager/src/aidl.rs b/android/virtmgr/src/aidl.rs
similarity index 100%
rename from virtualizationmanager/src/aidl.rs
rename to android/virtmgr/src/aidl.rs
diff --git a/virtualizationmanager/src/atom.rs b/android/virtmgr/src/atom.rs
similarity index 100%
rename from virtualizationmanager/src/atom.rs
rename to android/virtmgr/src/atom.rs
diff --git a/virtualizationmanager/src/composite.rs b/android/virtmgr/src/composite.rs
similarity index 100%
rename from virtualizationmanager/src/composite.rs
rename to android/virtmgr/src/composite.rs
diff --git a/virtualizationmanager/src/crosvm.rs b/android/virtmgr/src/crosvm.rs
similarity index 100%
rename from virtualizationmanager/src/crosvm.rs
rename to android/virtmgr/src/crosvm.rs
diff --git a/virtualizationmanager/src/debug_config.rs b/android/virtmgr/src/debug_config.rs
similarity index 100%
rename from virtualizationmanager/src/debug_config.rs
rename to android/virtmgr/src/debug_config.rs
diff --git a/virtualizationmanager/src/dt_overlay.rs b/android/virtmgr/src/dt_overlay.rs
similarity index 100%
rename from virtualizationmanager/src/dt_overlay.rs
rename to android/virtmgr/src/dt_overlay.rs
diff --git a/virtualizationmanager/src/main.rs b/android/virtmgr/src/main.rs
similarity index 100%
rename from virtualizationmanager/src/main.rs
rename to android/virtmgr/src/main.rs
diff --git a/virtualizationmanager/src/payload.rs b/android/virtmgr/src/payload.rs
similarity index 100%
rename from virtualizationmanager/src/payload.rs
rename to android/virtmgr/src/payload.rs
diff --git a/virtualizationmanager/src/selinux.rs b/android/virtmgr/src/selinux.rs
similarity index 100%
rename from virtualizationmanager/src/selinux.rs
rename to android/virtmgr/src/selinux.rs
diff --git a/virtualizationservice/Android.bp b/android/virtualizationservice/Android.bp
similarity index 100%
rename from virtualizationservice/Android.bp
rename to android/virtualizationservice/Android.bp
diff --git a/virtualizationservice/TEST_MAPPING b/android/virtualizationservice/TEST_MAPPING
similarity index 100%
rename from virtualizationservice/TEST_MAPPING
rename to android/virtualizationservice/TEST_MAPPING
diff --git a/virtualizationservice/aidl/Android.bp b/android/virtualizationservice/aidl/Android.bp
similarity index 100%
rename from virtualizationservice/aidl/Android.bp
rename to android/virtualizationservice/aidl/Android.bp
diff --git a/virtualizationservice/aidl/android/system/virtualizationcommon/Certificate.aidl b/android/virtualizationservice/aidl/android/system/virtualizationcommon/Certificate.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationcommon/Certificate.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationcommon/Certificate.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationcommon/DeathReason.aidl b/android/virtualizationservice/aidl/android/system/virtualizationcommon/DeathReason.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationcommon/DeathReason.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationcommon/DeathReason.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationcommon/ErrorCode.aidl b/android/virtualizationservice/aidl/android/system/virtualizationcommon/ErrorCode.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationcommon/ErrorCode.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationcommon/ErrorCode.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationmaintenance/IVirtualizationMaintenance.aidl b/android/virtualizationservice/aidl/android/system/virtualizationmaintenance/IVirtualizationMaintenance.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationmaintenance/IVirtualizationMaintenance.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationmaintenance/IVirtualizationMaintenance.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationmaintenance/IVirtualizationReconciliationCallback.aidl b/android/virtualizationservice/aidl/android/system/virtualizationmaintenance/IVirtualizationReconciliationCallback.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationmaintenance/IVirtualizationReconciliationCallback.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationmaintenance/IVirtualizationReconciliationCallback.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/AssignableDevice.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/AssignableDevice.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/AssignableDevice.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/AssignableDevice.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/AudioConfig.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/AudioConfig.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/AudioConfig.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/AudioConfig.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/CpuTopology.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/CpuTopology.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/CpuTopology.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/CpuTopology.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/DiskImage.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/DiskImage.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/DiskImage.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/DiskImage.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/DisplayConfig.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/DisplayConfig.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/DisplayConfig.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/DisplayConfig.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/GpuConfig.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/GpuConfig.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/GpuConfig.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/GpuConfig.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/IVirtualMachine.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/IVirtualMachine.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/IVirtualMachine.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/IVirtualMachine.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/IVirtualMachineCallback.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/IVirtualMachineCallback.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/IVirtualMachineCallback.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/IVirtualMachineCallback.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/IVirtualizationService.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/IVirtualizationService.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/IVirtualizationService.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/IVirtualizationService.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/InputDevice.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/InputDevice.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/InputDevice.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/InputDevice.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/Partition.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/Partition.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/Partition.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/Partition.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/PartitionType.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/PartitionType.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/PartitionType.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/PartitionType.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineAppConfig.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineAppConfig.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineAppConfig.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineAppConfig.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineConfig.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineConfig.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineConfig.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineConfig.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineDebugInfo.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineDebugInfo.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineDebugInfo.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineDebugInfo.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachinePayloadConfig.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachinePayloadConfig.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachinePayloadConfig.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachinePayloadConfig.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineState.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineState.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineState.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineState.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice_internal/AtomVmBooted.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice_internal/AtomVmBooted.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice_internal/AtomVmBooted.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice_internal/AtomVmBooted.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice_internal/AtomVmCreationRequested.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice_internal/AtomVmCreationRequested.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice_internal/AtomVmCreationRequested.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice_internal/AtomVmCreationRequested.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice_internal/AtomVmExited.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice_internal/AtomVmExited.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice_internal/AtomVmExited.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice_internal/AtomVmExited.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice_internal/IBoundDevice.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice_internal/IBoundDevice.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice_internal/IBoundDevice.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice_internal/IBoundDevice.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice_internal/IGlobalVmContext.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice_internal/IGlobalVmContext.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice_internal/IGlobalVmContext.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice_internal/IGlobalVmContext.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice_internal/IVfioHandler.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice_internal/IVfioHandler.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice_internal/IVfioHandler.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice_internal/IVfioHandler.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice_internal/IVirtualizationServiceInternal.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice_internal/IVirtualizationServiceInternal.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice_internal/IVirtualizationServiceInternal.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice_internal/IVirtualizationServiceInternal.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice_internal/IVmnic.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice_internal/IVmnic.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualizationservice_internal/IVmnic.aidl
rename to android/virtualizationservice/aidl/android/system/virtualizationservice_internal/IVmnic.aidl
diff --git a/virtualizationservice/aidl/android/system/virtualmachineservice/IVirtualMachineService.aidl b/android/virtualizationservice/aidl/android/system/virtualmachineservice/IVirtualMachineService.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/virtualmachineservice/IVirtualMachineService.aidl
rename to android/virtualizationservice/aidl/android/system/virtualmachineservice/IVirtualMachineService.aidl
diff --git a/virtualizationservice/aidl/android/system/vmtethering/IVmTethering.aidl b/android/virtualizationservice/aidl/android/system/vmtethering/IVmTethering.aidl
similarity index 100%
rename from virtualizationservice/aidl/android/system/vmtethering/IVmTethering.aidl
rename to android/virtualizationservice/aidl/android/system/vmtethering/IVmTethering.aidl
diff --git a/virtualizationservice/assignable_devices.xsd b/android/virtualizationservice/assignable_devices.xsd
similarity index 100%
rename from virtualizationservice/assignable_devices.xsd
rename to android/virtualizationservice/assignable_devices.xsd
diff --git a/virtualizationservice/schema/current.txt b/android/virtualizationservice/schema/current.txt
similarity index 100%
rename from virtualizationservice/schema/current.txt
rename to android/virtualizationservice/schema/current.txt
diff --git a/virtualizationservice/schema/last_current.txt b/android/virtualizationservice/schema/last_current.txt
similarity index 100%
rename from virtualizationservice/schema/last_current.txt
rename to android/virtualizationservice/schema/last_current.txt
diff --git a/virtualizationservice/schema/last_removed.txt b/android/virtualizationservice/schema/last_removed.txt
similarity index 100%
rename from virtualizationservice/schema/last_removed.txt
rename to android/virtualizationservice/schema/last_removed.txt
diff --git a/virtualizationservice/schema/removed.txt b/android/virtualizationservice/schema/removed.txt
similarity index 100%
rename from virtualizationservice/schema/removed.txt
rename to android/virtualizationservice/schema/removed.txt
diff --git a/virtualizationservice/src/aidl.rs b/android/virtualizationservice/src/aidl.rs
similarity index 100%
rename from virtualizationservice/src/aidl.rs
rename to android/virtualizationservice/src/aidl.rs
diff --git a/virtualizationservice/src/atom.rs b/android/virtualizationservice/src/atom.rs
similarity index 100%
rename from virtualizationservice/src/atom.rs
rename to android/virtualizationservice/src/atom.rs
diff --git a/virtualizationservice/src/main.rs b/android/virtualizationservice/src/main.rs
similarity index 100%
rename from virtualizationservice/src/main.rs
rename to android/virtualizationservice/src/main.rs
diff --git a/virtualizationservice/src/maintenance.rs b/android/virtualizationservice/src/maintenance.rs
similarity index 100%
rename from virtualizationservice/src/maintenance.rs
rename to android/virtualizationservice/src/maintenance.rs
diff --git a/virtualizationservice/src/maintenance/vmdb.rs b/android/virtualizationservice/src/maintenance/vmdb.rs
similarity index 100%
rename from virtualizationservice/src/maintenance/vmdb.rs
rename to android/virtualizationservice/src/maintenance/vmdb.rs
diff --git a/virtualizationservice/src/remote_provisioning.rs b/android/virtualizationservice/src/remote_provisioning.rs
similarity index 100%
rename from virtualizationservice/src/remote_provisioning.rs
rename to android/virtualizationservice/src/remote_provisioning.rs
diff --git a/virtualizationservice/src/rkpvm.rs b/android/virtualizationservice/src/rkpvm.rs
similarity index 100%
rename from virtualizationservice/src/rkpvm.rs
rename to android/virtualizationservice/src/rkpvm.rs
diff --git a/virtualizationservice/testdata/rkp_cert_chain.der b/android/virtualizationservice/testdata/rkp_cert_chain.der
similarity index 100%
rename from virtualizationservice/testdata/rkp_cert_chain.der
rename to android/virtualizationservice/testdata/rkp_cert_chain.der
Binary files differ
diff --git a/virtualizationservice/vfio_handler/Android.bp b/android/virtualizationservice/vfio_handler/Android.bp
similarity index 100%
rename from virtualizationservice/vfio_handler/Android.bp
rename to android/virtualizationservice/vfio_handler/Android.bp
diff --git a/virtualizationservice/vfio_handler/src/aidl.rs b/android/virtualizationservice/vfio_handler/src/aidl.rs
similarity index 100%
rename from virtualizationservice/vfio_handler/src/aidl.rs
rename to android/virtualizationservice/vfio_handler/src/aidl.rs
diff --git a/virtualizationservice/vfio_handler/src/main.rs b/android/virtualizationservice/vfio_handler/src/main.rs
similarity index 100%
rename from virtualizationservice/vfio_handler/src/main.rs
rename to android/virtualizationservice/vfio_handler/src/main.rs
diff --git a/virtualizationservice/vmnic/Android.bp b/android/virtualizationservice/vmnic/Android.bp
similarity index 100%
rename from virtualizationservice/vmnic/Android.bp
rename to android/virtualizationservice/vmnic/Android.bp
diff --git a/virtualizationservice/vmnic/src/aidl.rs b/android/virtualizationservice/vmnic/src/aidl.rs
similarity index 100%
rename from virtualizationservice/vmnic/src/aidl.rs
rename to android/virtualizationservice/vmnic/src/aidl.rs
diff --git a/virtualizationservice/vmnic/src/main.rs b/android/virtualizationservice/vmnic/src/main.rs
similarity index 100%
rename from virtualizationservice/vmnic/src/main.rs
rename to android/virtualizationservice/vmnic/src/main.rs
diff --git a/vm/Android.bp b/android/vm/Android.bp
similarity index 100%
rename from vm/Android.bp
rename to android/vm/Android.bp
diff --git a/vm/TEST_MAPPING b/android/vm/TEST_MAPPING
similarity index 100%
rename from vm/TEST_MAPPING
rename to android/vm/TEST_MAPPING
diff --git a/vm/src/create_idsig.rs b/android/vm/src/create_idsig.rs
similarity index 100%
rename from vm/src/create_idsig.rs
rename to android/vm/src/create_idsig.rs
diff --git a/vm/src/create_partition.rs b/android/vm/src/create_partition.rs
similarity index 100%
rename from vm/src/create_partition.rs
rename to android/vm/src/create_partition.rs
diff --git a/vm/src/main.rs b/android/vm/src/main.rs
similarity index 100%
rename from vm/src/main.rs
rename to android/vm/src/main.rs
diff --git a/vm/src/run.rs b/android/vm/src/run.rs
similarity index 100%
rename from vm/src/run.rs
rename to android/vm/src/run.rs
diff --git a/vm/vm_shell.sh b/android/vm/vm_shell.sh
similarity index 100%
rename from vm/vm_shell.sh
rename to android/vm/vm_shell.sh
diff --git a/demo_native/Android.bp b/android/vm_demo_native/Android.bp
similarity index 100%
rename from demo_native/Android.bp
rename to android/vm_demo_native/Android.bp
diff --git a/demo_native/README.md b/android/vm_demo_native/README.md
similarity index 97%
rename from demo_native/README.md
rename to android/vm_demo_native/README.md
index 700ca83..4bbbc28 100644
--- a/demo_native/README.md
+++ b/android/vm_demo_native/README.md
@@ -8,7 +8,7 @@
 like creating and using a VM from a HAL process.
 
 For non-system-level VMs, you must use the Java APIs from an Android app. See the [Java demo
-app](../demo/README.md).
+app](../MicrodroidDemoApp/README.md).
 
 ## Building
 
diff --git a/demo_native/main.cpp b/android/vm_demo_native/main.cpp
similarity index 100%
rename from demo_native/main.cpp
rename to android/vm_demo_native/main.cpp
diff --git a/apex b/apex
new file mode 120000
index 0000000..db9c327
--- /dev/null
+++ b/apex
@@ -0,0 +1 @@
+build/apex
\ No newline at end of file
diff --git a/Android.bp b/build/Android.bp
similarity index 100%
rename from Android.bp
rename to build/Android.bp
diff --git a/apex/Android.bp b/build/apex/Android.bp
similarity index 100%
rename from apex/Android.bp
rename to build/apex/Android.bp
diff --git a/apex/AndroidManifest.xml b/build/apex/AndroidManifest.xml
similarity index 100%
rename from apex/AndroidManifest.xml
rename to build/apex/AndroidManifest.xml
diff --git a/apex/canned_fs_config b/build/apex/canned_fs_config
similarity index 100%
rename from apex/canned_fs_config
rename to build/apex/canned_fs_config
diff --git a/apex/canned_fs_config_sys_nice b/build/apex/canned_fs_config_sys_nice
similarity index 100%
rename from apex/canned_fs_config_sys_nice
rename to build/apex/canned_fs_config_sys_nice
diff --git a/apex/com.android.virt.avbpubkey b/build/apex/com.android.virt.avbpubkey
similarity index 100%
rename from apex/com.android.virt.avbpubkey
rename to build/apex/com.android.virt.avbpubkey
Binary files differ
diff --git a/apex/com.android.virt.pem b/build/apex/com.android.virt.pem
similarity index 100%
rename from apex/com.android.virt.pem
rename to build/apex/com.android.virt.pem
diff --git a/apex/com.android.virt.pk8 b/build/apex/com.android.virt.pk8
similarity index 100%
rename from apex/com.android.virt.pk8
rename to build/apex/com.android.virt.pk8
Binary files differ
diff --git a/apex/com.android.virt.x509.pem b/build/apex/com.android.virt.x509.pem
similarity index 100%
rename from apex/com.android.virt.x509.pem
rename to build/apex/com.android.virt.x509.pem
diff --git a/apex/manifest.json b/build/apex/manifest.json
similarity index 100%
rename from apex/manifest.json
rename to build/apex/manifest.json
diff --git a/apex/permissions/Android.bp b/build/apex/permissions/Android.bp
similarity index 100%
rename from apex/permissions/Android.bp
rename to build/apex/permissions/Android.bp
diff --git a/apex/permissions/features_com.android.virt.xml b/build/apex/permissions/features_com.android.virt.xml
similarity index 100%
rename from apex/permissions/features_com.android.virt.xml
rename to build/apex/permissions/features_com.android.virt.xml
diff --git a/apex/product_packages.mk b/build/apex/product_packages.mk
similarity index 95%
rename from apex/product_packages.mk
rename to build/apex/product_packages.mk
index 486334c..e710021 100644
--- a/apex/product_packages.mk
+++ b/build/apex/product_packages.mk
@@ -17,7 +17,7 @@
 # TODO: Remove this once the APEX is included in base system.
 
 # To include the APEX in your build, insert this in your device.mk:
-#   $(call inherit-product, packages/modules/Virtualization/apex/product_packages.mk)
+#   $(call inherit-product, packages/modules/Virtualization/build/apex/product_packages.mk)
 
 # If devices supports AVF it implies that it uses non-flattened APEXes.
 $(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk)
diff --git a/apex/replace_bytes.py b/build/apex/replace_bytes.py
similarity index 100%
rename from apex/replace_bytes.py
rename to build/apex/replace_bytes.py
diff --git a/apex/sign_virt_apex.py b/build/apex/sign_virt_apex.py
similarity index 100%
rename from apex/sign_virt_apex.py
rename to build/apex/sign_virt_apex.py
diff --git a/apex/sign_virt_apex_test.sh b/build/apex/sign_virt_apex_test.sh
similarity index 100%
rename from apex/sign_virt_apex_test.sh
rename to build/apex/sign_virt_apex_test.sh
diff --git a/apex/sign_virt_apex_test.xml b/build/apex/sign_virt_apex_test.xml
similarity index 100%
rename from apex/sign_virt_apex_test.xml
rename to build/apex/sign_virt_apex_test.xml
diff --git a/apex/test.com.android.virt.pem b/build/apex/test.com.android.virt.pem
similarity index 100%
rename from apex/test.com.android.virt.pem
rename to build/apex/test.com.android.virt.pem
diff --git a/apex/test2.com.android.virt.pem b/build/apex/test2.com.android.virt.pem
similarity index 100%
rename from apex/test2.com.android.virt.pem
rename to build/apex/test2.com.android.virt.pem
diff --git a/apex/vfio_handler.rc b/build/apex/vfio_handler.rc
similarity index 100%
rename from apex/vfio_handler.rc
rename to build/apex/vfio_handler.rc
diff --git a/apex/virtualizationservice.rc.base b/build/apex/virtualizationservice.rc.base
similarity index 100%
rename from apex/virtualizationservice.rc.base
rename to build/apex/virtualizationservice.rc.base
diff --git a/apex/virtualizationservice.rc.llpvm b/build/apex/virtualizationservice.rc.llpvm
similarity index 100%
rename from apex/virtualizationservice.rc.llpvm
rename to build/apex/virtualizationservice.rc.llpvm
diff --git a/apex/virtualizationservice.rc.ra b/build/apex/virtualizationservice.rc.ra
similarity index 100%
rename from apex/virtualizationservice.rc.ra
rename to build/apex/virtualizationservice.rc.ra
diff --git a/apex/virtualizationservice.xml b/build/apex/virtualizationservice.xml
similarity index 100%
rename from apex/virtualizationservice.xml
rename to build/apex/virtualizationservice.xml
diff --git a/apex/vmnic.rc b/build/apex/vmnic.rc
similarity index 100%
rename from apex/vmnic.rc
rename to build/apex/vmnic.rc
diff --git a/avf_flags.aconfig b/build/avf_flags.aconfig
similarity index 100%
rename from avf_flags.aconfig
rename to build/avf_flags.aconfig
diff --git a/microdroid/Android.bp b/build/microdroid/Android.bp
similarity index 100%
rename from microdroid/Android.bp
rename to build/microdroid/Android.bp
diff --git a/microdroid/README.md b/build/microdroid/README.md
similarity index 94%
rename from microdroid/README.md
rename to build/microdroid/README.md
index c0cba97..197eec7 100644
--- a/microdroid/README.md
+++ b/build/microdroid/README.md
@@ -14,7 +14,7 @@
 pre-installed. To do this, add the following line in your product makefile.
 
 ```make
-$(call inherit-product, packages/modules/Virtualization/apex/product_packages.mk)
+$(call inherit-product, packages/modules/Virtualization/build/apex/product_packages.mk)
 ```
 
 Build the target product after adding the line, and flash it. This step needs
@@ -41,7 +41,7 @@
 ## Building an app
 
 A [vm
-payload](https://android.googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/main/vm_payload/)
+payload](https://android.googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/main/libs/libvm_payload/)
 is a shared library file that gets executed in microdroid. It is packaged as
 part of an Android application.  The library should have an entry point
 `AVmPayload_main` as shown below:
@@ -132,12 +132,12 @@
 ### Using the APIs
 
 Use the [Android Virtualization Framework Java
-APIs](https://android.googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/main/java/framework/README.md)
+APIs](https://android.googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/main/libs/framework-virtualization/README.md)
 in your app to create a microdroid VM and run payload in it. The APIs are currently
 @SystemApi, and only available to preinstalled apps.
 
 If you are looking for an example usage of the APIs, you may refer to the [demo
-app](https://android.googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/main/demo/).
+app](https://android.googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/main/android/MicrodroidDemoApp/).
 
 
 ## Running Microdroid with vendor image
@@ -182,7 +182,7 @@
 [fstab.microdroid]: fstab.microdroid
 [dm-verity]: https://source.android.com/docs/security/features/verifiedboot/dm-verity
 [DTBO]: https://android.googlesource.com/platform/external/dtc/+/refs/heads/main/Documentation/dt-object-internal.txt
-[pvmfw config data]: ../pvmfw/README.md#configuration-data-format
+[pvmfw config data]: ../guest/pvmfw/README.md#configuration-data-format
 [bootloader]: https://source.android.com/docs/core/architecture/bootloader
 [Makefile]: https://cs.android.com/android/platform/superproject/main/+/main:build/make/core/Makefile
 
diff --git a/microdroid/bootconfig.arm64 b/build/microdroid/bootconfig.arm64
similarity index 100%
rename from microdroid/bootconfig.arm64
rename to build/microdroid/bootconfig.arm64
diff --git a/microdroid/bootconfig.common b/build/microdroid/bootconfig.common
similarity index 100%
rename from microdroid/bootconfig.common
rename to build/microdroid/bootconfig.common
diff --git a/microdroid/bootconfig.debuggable b/build/microdroid/bootconfig.debuggable
similarity index 100%
rename from microdroid/bootconfig.debuggable
rename to build/microdroid/bootconfig.debuggable
diff --git a/microdroid/bootconfig.normal b/build/microdroid/bootconfig.normal
similarity index 100%
rename from microdroid/bootconfig.normal
rename to build/microdroid/bootconfig.normal
diff --git a/microdroid/bootconfig.x86_64 b/build/microdroid/bootconfig.x86_64
similarity index 100%
rename from microdroid/bootconfig.x86_64
rename to build/microdroid/bootconfig.x86_64
diff --git a/microdroid/build.prop b/build/microdroid/build.prop
similarity index 100%
rename from microdroid/build.prop
rename to build/microdroid/build.prop
diff --git a/microdroid/dummy_dtb.img b/build/microdroid/dummy_dtb.img
similarity index 100%
rename from microdroid/dummy_dtb.img
rename to build/microdroid/dummy_dtb.img
diff --git a/microdroid/extract_microdroid_kernel_hashes.py b/build/microdroid/extract_microdroid_kernel_hashes.py
similarity index 100%
rename from microdroid/extract_microdroid_kernel_hashes.py
rename to build/microdroid/extract_microdroid_kernel_hashes.py
diff --git a/microdroid/fstab.microdroid b/build/microdroid/fstab.microdroid
similarity index 100%
rename from microdroid/fstab.microdroid
rename to build/microdroid/fstab.microdroid
diff --git a/microdroid/init.rc b/build/microdroid/init.rc
similarity index 100%
rename from microdroid/init.rc
rename to build/microdroid/init.rc
diff --git a/microdroid/init_debug_policy/Android.bp b/build/microdroid/init_debug_policy/Android.bp
similarity index 100%
rename from microdroid/init_debug_policy/Android.bp
rename to build/microdroid/init_debug_policy/Android.bp
diff --git a/microdroid/init_debug_policy/src/init_debug_policy.rs b/build/microdroid/init_debug_policy/src/init_debug_policy.rs
similarity index 100%
rename from microdroid/init_debug_policy/src/init_debug_policy.rs
rename to build/microdroid/init_debug_policy/src/init_debug_policy.rs
diff --git a/microdroid/initrd/Android.bp b/build/microdroid/initrd/Android.bp
similarity index 100%
rename from microdroid/initrd/Android.bp
rename to build/microdroid/initrd/Android.bp
diff --git a/microdroid/initrd/gen_vbmeta_bootconfig.py b/build/microdroid/initrd/gen_vbmeta_bootconfig.py
similarity index 100%
rename from microdroid/initrd/gen_vbmeta_bootconfig.py
rename to build/microdroid/initrd/gen_vbmeta_bootconfig.py
diff --git a/microdroid/initrd/src/main.rs b/build/microdroid/initrd/src/main.rs
similarity index 100%
rename from microdroid/initrd/src/main.rs
rename to build/microdroid/initrd/src/main.rs
diff --git a/microdroid/linker.config.json b/build/microdroid/linker.config.json
similarity index 100%
rename from microdroid/linker.config.json
rename to build/microdroid/linker.config.json
diff --git a/microdroid/microdroid.json b/build/microdroid/microdroid.json
similarity index 100%
rename from microdroid/microdroid.json
rename to build/microdroid/microdroid.json
diff --git a/microdroid/microdroid_event-log-tags b/build/microdroid/microdroid_event-log-tags
similarity index 100%
rename from microdroid/microdroid_event-log-tags
rename to build/microdroid/microdroid_event-log-tags
diff --git a/microdroid/microdroid_gki-android15-6.6.json b/build/microdroid/microdroid_gki-android15-6.6.json
similarity index 100%
rename from microdroid/microdroid_gki-android15-6.6.json
rename to build/microdroid/microdroid_gki-android15-6.6.json
diff --git a/microdroid/microdroid_group b/build/microdroid/microdroid_group
similarity index 100%
rename from microdroid/microdroid_group
rename to build/microdroid/microdroid_group
diff --git a/microdroid/microdroid_manifest.xml b/build/microdroid/microdroid_manifest.xml
similarity index 100%
rename from microdroid/microdroid_manifest.xml
rename to build/microdroid/microdroid_manifest.xml
diff --git a/microdroid/microdroid_passwd b/build/microdroid/microdroid_passwd
similarity index 100%
rename from microdroid/microdroid_passwd
rename to build/microdroid/microdroid_passwd
diff --git a/microdroid/uboot-env.txt b/build/microdroid/uboot-env.txt
similarity index 100%
rename from microdroid/uboot-env.txt
rename to build/microdroid/uboot-env.txt
diff --git a/microdroid/ueventd.rc b/build/microdroid/ueventd.rc
similarity index 100%
rename from microdroid/ueventd.rc
rename to build/microdroid/ueventd.rc
diff --git a/docs/abl.md b/docs/abl.md
index 7139d26..c10f1bf 100644
--- a/docs/abl.md
+++ b/docs/abl.md
@@ -14,7 +14,7 @@
 * loading it into memory, and
 * describing the region where pvmfw is loaded using DT and passing it to hypervisor.
 
-See [ABL Support](../pvmfw/README.md#android-bootloader-abl_support) for more detail.
+See [ABL Support](../guest/pvmfw/README.md#android-bootloader-abl_support) for more detail.
 
 ABL is also responsible for constructing the pvmfw configuration data. The data consists of the
 following info:
@@ -26,7 +26,7 @@
     * Hashtree digest of the
       [microdroid-vendor.img](microdroid_vendor_modules.md#changes-in-abl).
 
-See [Configuration Data](../pvmfw/README.md#configuration-data) for more detail.
+See [Configuration Data](../guest/pvmfw/README.md#configuration-data) for more detail.
 
 ## Android
 
diff --git a/docs/debug/README.md b/docs/debug/README.md
index 1e5f096..4b42531 100644
--- a/docs/debug/README.md
+++ b/docs/debug/README.md
@@ -96,7 +96,7 @@
 
 1. Bootloader loads it from the `dpm` partition and verifies it.
 1. Bootloader appends the loaded debug policy as the [configuration
-   data](../../pvmfw/README.md#configuration-data) of the pvmfw.
+   data](../../guest/pvmfw/README.md#configuration-data) of the pvmfw.
 1. When a pVM is started, pvmfw [overlays][apply_debug_policy] the debug policy to the baseline
    device tree from crosvm.
 1. OS payload (e.g. Microdroid) [reads][read_debug_policy] the device tree and enables specific
diff --git a/docs/debug/gdb_kernel.md b/docs/debug/gdb_kernel.md
index 316faad..ced6d73 100644
--- a/docs/debug/gdb_kernel.md
+++ b/docs/debug/gdb_kernel.md
@@ -33,14 +33,14 @@
 ## Obtaining vmlinux for Microdroid kernels
 
 If you are debugging Microdroid kernel that you have built [locally](
-../../microdroid/kernel/README.md), then look for `out/dist/vmlinux` in your
+../../build/microdroid/kernel/README.md), then look for `out/dist/vmlinux` in your
 kernel repository.
 
 If you are debugging Microdroid kernel bundled with the `com.android.virt` APEX,
 then you need to obtain the build ID of this kernel. You can do this by
 checking the prebuilt-info.txt file in the
-`packages/modules/Virtualization/microdroid/kernel/arm64` or
-`packages/modules/Virtualization/microdroid/kernel/x86_64` directories.
+`packages/modules/Virtualization/build/microdroid/kernel/arm64` or
+`packages/modules/Virtualization/build/microdroid/kernel/x86_64` directories.
 
 Using that build ID you can download the vmlinux from the build server via:
 https://ci.android.com/builds/submitted/${BUILD_ID}/kernel_microdroid_aarch64/latest/vmlinux
diff --git a/docs/device_assignment.md b/docs/device_assignment.md
index 1166cdf..4b2296c 100644
--- a/docs/device_assignment.md
+++ b/docs/device_assignment.md
@@ -221,7 +221,7 @@
 incoming device tree with the VM DTBO.
 
 For more detail about providing VM DTBO in pvmfw,
-see: [pvmfw/README.md](../pvmfw/README.md#configuration-data-format)
+see: [pvmfw/README.md](../guest/pvmfw/README.md#configuration-data-format)
 
 
 ## Launch VM with device assignment
@@ -236,4 +236,4 @@
 
 ```sh
 adb shell /apex/com.android.virt/bin/vm run-microdroid --devices /sys/bus/platform/devices/16d00000.light
-```
\ No newline at end of file
+```
diff --git a/docs/getting_started.md b/docs/getting_started.md
index 74f2012..0a7cca6 100644
--- a/docs/getting_started.md
+++ b/docs/getting_started.md
@@ -94,7 +94,7 @@
 
 ## Step 4: Run a Microdroid VM
 
-[Microdroid](../../microdroid/README.md) is a lightweight version of Android
+[Microdroid](../../build/microdroid/README.md) is a lightweight version of Android
 that is intended to run on pVM. You can run a Microdroid-based VM with an empty
 payload using the following command:
 
diff --git a/docs/microdroid_vendor_modules.md b/docs/microdroid_vendor_modules.md
index ef55225..6ead195 100644
--- a/docs/microdroid_vendor_modules.md
+++ b/docs/microdroid_vendor_modules.md
@@ -111,7 +111,7 @@
 
 The execution flow is very similar to the non-protected case above, however
 there is one important addition. The `pvmfw` binary will use the
-[VM reference DT blob](#../pvmfw/README.md#pvmfw-data-v1-2) passed from the
+[VM reference DT blob](#../guest/pvmfw/README.md#pvmfw-data-v1-2) passed from the
 Android Bootloader (ABL), to validate the guest DT overlay passed from the host.
 
 See [Changes in Android Bootloader](#changes-in-abl) section below for more
@@ -146,7 +146,7 @@
 the host's `vendor.img`.
 
 The Android Bootloader can read that property when construction the
-[VM reference DT blob](#../pvmfw/README.md#pvmfw-data-v1-2) passed to pvmfw.
+[VM reference DT blob](#../guest/pvmfw/README.md#pvmfw-data-v1-2) passed to pvmfw.
 
 ## GKI as Microdroid guest kernel
 
diff --git a/service_vm/README.md b/docs/service_vm.md
similarity index 94%
rename from service_vm/README.md
rename to docs/service_vm.md
index b45b3ae..735c14d 100644
--- a/service_vm/README.md
+++ b/docs/service_vm.md
@@ -18,7 +18,7 @@
 
 [Rialto](../rialto) is used as the bare-metal kernel for the Service VM. It
 shares some low-level setup, such as memory management and virtio device
-parsing, with pvmfw. The common setup code is grouped in [vmbase/](../vmbase).
+parsing, with pvmfw. The common setup code is grouped in [vmbase/](../libs/libvmbase).
 
 ## Functionality
 
@@ -30,7 +30,7 @@
 -   [./requests](./requests) contains the library that processes the requests.
 -   [./manager](./manager) manages the Service VM session, ensuring that only
     one Service VM is active at any given time. The
-    [virtualizationservice](../virtualizationservice) process owns and manages
+    [virtualizationservice](../android/virtualizationservice) process owns and manages
     the Service VM instance.
 
 ### RKP VM (Remote Key Provisioning Virtual Machine)
diff --git a/docs/vm_remote_attestation.md b/docs/vm_remote_attestation.md
index 195804f..6dab37a 100644
--- a/docs/vm_remote_attestation.md
+++ b/docs/vm_remote_attestation.md
@@ -27,7 +27,7 @@
 1.  Attesting the RKP VM against the RKP server.
 2.  Attesting the pVM against the RKP VM.
 
-[rkpvm]: https://android.googlesource.com/platform/packages/modules/Virtualization/+/main/service_vm/README.md
+[rkpvm]: https://android.googlesource.com/platform/packages/modules/Virtualization/+/main/docs/service_vm.md
 
 ### RKP VM attestation
 
@@ -67,8 +67,8 @@
 For detailed information and usage examples, please refer to the
 [demo app][demo].
 
-[api]: https://android.googlesource.com/platform/packages/modules/Virtualization/+/main/vm_payload/README.md
-[demo]: https://android.googlesource.com/platform/packages/modules/Virtualization/+/main/service_vm/demo_apk
+[api]: https://android.googlesource.com/platform/packages/modules/Virtualization/+/main/libs/libvm_payload/README.md
+[demo]: https://android.googlesource.com/platform/packages/modules/Virtualization/+/main/android/VmAttestationDemoApp
 
 ## Output
 
diff --git a/apkdmverity/.cargo/config.toml b/guest/apkdmverity/.cargo/config.toml
similarity index 100%
rename from apkdmverity/.cargo/config.toml
rename to guest/apkdmverity/.cargo/config.toml
diff --git a/apkdmverity/Android.bp b/guest/apkdmverity/Android.bp
similarity index 100%
rename from apkdmverity/Android.bp
rename to guest/apkdmverity/Android.bp
diff --git a/apkdmverity/AndroidTest.xml b/guest/apkdmverity/AndroidTest.xml
similarity index 100%
rename from apkdmverity/AndroidTest.xml
rename to guest/apkdmverity/AndroidTest.xml
diff --git a/apkdmverity/Cargo.toml b/guest/apkdmverity/Cargo.toml
similarity index 100%
rename from apkdmverity/Cargo.toml
rename to guest/apkdmverity/Cargo.toml
diff --git a/apkdmverity/TEST_MAPPING b/guest/apkdmverity/TEST_MAPPING
similarity index 100%
rename from apkdmverity/TEST_MAPPING
rename to guest/apkdmverity/TEST_MAPPING
diff --git a/apkdmverity/src/main.rs b/guest/apkdmverity/src/main.rs
similarity index 100%
rename from apkdmverity/src/main.rs
rename to guest/apkdmverity/src/main.rs
diff --git a/apkdmverity/testdata/README b/guest/apkdmverity/testdata/README
similarity index 100%
rename from apkdmverity/testdata/README
rename to guest/apkdmverity/testdata/README
diff --git a/apkdmverity/testdata/keystore b/guest/apkdmverity/testdata/keystore
similarity index 100%
rename from apkdmverity/testdata/keystore
rename to guest/apkdmverity/testdata/keystore
Binary files differ
diff --git a/apkdmverity/testdata/test.apk b/guest/apkdmverity/testdata/test.apk
similarity index 100%
rename from apkdmverity/testdata/test.apk
rename to guest/apkdmverity/testdata/test.apk
Binary files differ
diff --git a/apkdmverity/testdata/test.apk.idsig b/guest/apkdmverity/testdata/test.apk.idsig
similarity index 100%
rename from apkdmverity/testdata/test.apk.idsig
rename to guest/apkdmverity/testdata/test.apk.idsig
Binary files differ
diff --git a/microdroid/derive_microdroid_vendor_dice_node/Android.bp b/guest/derive_microdroid_vendor_dice_node/Android.bp
similarity index 100%
rename from microdroid/derive_microdroid_vendor_dice_node/Android.bp
rename to guest/derive_microdroid_vendor_dice_node/Android.bp
diff --git a/microdroid/derive_microdroid_vendor_dice_node/src/main.rs b/guest/derive_microdroid_vendor_dice_node/src/main.rs
similarity index 100%
rename from microdroid/derive_microdroid_vendor_dice_node/src/main.rs
rename to guest/derive_microdroid_vendor_dice_node/src/main.rs
diff --git a/encryptedstore/Android.bp b/guest/encryptedstore/Android.bp
similarity index 100%
rename from encryptedstore/Android.bp
rename to guest/encryptedstore/Android.bp
diff --git a/encryptedstore/README.md b/guest/encryptedstore/README.md
similarity index 90%
rename from encryptedstore/README.md
rename to guest/encryptedstore/README.md
index 3d55d85..5627984 100644
--- a/encryptedstore/README.md
+++ b/guest/encryptedstore/README.md
@@ -26,6 +26,6 @@
 even after OTA/updates of boot images and apks. This requires chipsets to support [Secretkeeper HAL][sk_hal].
 
 
-[vm_payload_api]: https://cs.android.com/android/platform/superproject/main/+/main:packages/modules/Virtualization/vm_payload/include/vm_payload.h;l=2?q=vm_payload%2Finclude%2Fvm_payload.h&ss=android%2Fplatform%2Fsuperproject%2Fmain
+[vm_payload_api]: https://cs.android.com/android/platform/superproject/main/+/main:packages/modules/Virtualization/libs/libvm_payload/include/vm_payload.h;l=2?q=vm_payload%2Finclude%2Fvm_payload.h&ss=android%2Fplatform%2Fsuperproject%2Fmain
 [updatable_vm]: https://cs.android.com/android/platform/superproject/main/+/main:packages/modules/Virtualization/docs/updatable_vm.md
 [sk_hal]: https://cs.android.com/android/platform/superproject/main/+/main:system/secretkeeper/README.md
diff --git a/encryptedstore/TEST_MAPPING b/guest/encryptedstore/TEST_MAPPING
similarity index 100%
rename from encryptedstore/TEST_MAPPING
rename to guest/encryptedstore/TEST_MAPPING
diff --git a/encryptedstore/src/main.rs b/guest/encryptedstore/src/main.rs
similarity index 100%
rename from encryptedstore/src/main.rs
rename to guest/encryptedstore/src/main.rs
diff --git a/microdroid/kdump/Android.bp b/guest/kdump/Android.bp
similarity index 100%
rename from microdroid/kdump/Android.bp
rename to guest/kdump/Android.bp
diff --git a/microdroid/kdump/crashdump.c b/guest/kdump/crashdump.c
similarity index 100%
rename from microdroid/kdump/crashdump.c
rename to guest/kdump/crashdump.c
diff --git a/microdroid/kdump/kernel/Android.bp b/guest/kdump/kernel/Android.bp
similarity index 100%
rename from microdroid/kdump/kernel/Android.bp
rename to guest/kdump/kernel/Android.bp
diff --git a/microdroid/kdump/kernel/arm64/kernel-5.15 b/guest/kdump/kernel/arm64/kernel-5.15
similarity index 100%
rename from microdroid/kdump/kernel/arm64/kernel-5.15
rename to guest/kdump/kernel/arm64/kernel-5.15
Binary files differ
diff --git a/microdroid/kdump/kernel/empty b/guest/kdump/kernel/empty
similarity index 100%
rename from microdroid/kdump/kernel/empty
rename to guest/kdump/kernel/empty
diff --git a/microdroid/kdump/kernel/x86_64/kernel-5.15 b/guest/kdump/kernel/x86_64/kernel-5.15
similarity index 100%
rename from microdroid/kdump/kernel/x86_64/kernel-5.15
rename to guest/kdump/kernel/x86_64/kernel-5.15
Binary files differ
diff --git a/microdroid/kdump/kexec.c b/guest/kdump/kexec.c
similarity index 97%
rename from microdroid/kdump/kexec.c
rename to guest/kdump/kexec.c
index d3e8e02..fcec996 100644
--- a/microdroid/kdump/kexec.c
+++ b/guest/kdump/kexec.c
@@ -39,7 +39,7 @@
 static const char *CMDLINE = "1 panic=-1 rdinit=/bin/crashdump nr_cpus=1 reset_devices "
                              "console=hvc0 " EARLYCON;
 
-static int open_checked(const char* path) {
+static int open_checked(const char *path) {
     int fd = open(path, O_RDONLY);
     if (fd == -1) {
         fprintf(stderr, "Failed to open %s: %s\n", path, strerror(errno));
diff --git a/microdroid/kernel/Android.bp b/guest/kernel/Android.bp
similarity index 100%
rename from microdroid/kernel/Android.bp
rename to guest/kernel/Android.bp
diff --git a/microdroid/kernel/README.md b/guest/kernel/README.md
similarity index 94%
rename from microdroid/kernel/README.md
rename to guest/kernel/README.md
index 52df333..c4ffb81 100644
--- a/microdroid/kernel/README.md
+++ b/guest/kernel/README.md
@@ -10,7 +10,7 @@
 ### Checkout the GKI source code.
 
 ```bash
-repo init -u https://android.googlesource.com/kernel/manifest -b common-android14-6.1
+repo init -u https://android.googlesource.com/kernel/manifest -b common-android15-6.6
 repo sync
 ```
 
@@ -55,12 +55,12 @@
 
 For ARM64,
 ```bash
-cp out/dist/Image <android_checkout>/packages/modules/Virtualization/microdroid/kernel/arm64/kernel-6.1
+cp out/dist/Image <android_checkout>/packages/modules/Virtualization/guest/kernel/android15-6.6/arm64/kernel-6.6
 ```
 
 For x86\_64,
 ```bash
-cp out/dist/bzImage <android_checkout>/packages/modules/Virtualization/microdroid/kernel/x86_64/kernel-6.1
+cp out/dist/bzImage <android_checkout>/packages/modules/Virtualization/guest/kernel/android15-6.6/x86_64/kernel-6.6
 ```
 
 ### For official updates
diff --git a/microdroid/kernel/android14-6.1/arm64/System.map b/guest/kernel/android14-6.1/arm64/System.map
similarity index 100%
rename from microdroid/kernel/android14-6.1/arm64/System.map
rename to guest/kernel/android14-6.1/arm64/System.map
diff --git a/microdroid/kernel/android14-6.1/arm64/kernel-6.1 b/guest/kernel/android14-6.1/arm64/kernel-6.1
similarity index 100%
rename from microdroid/kernel/android14-6.1/arm64/kernel-6.1
rename to guest/kernel/android14-6.1/arm64/kernel-6.1
Binary files differ
diff --git a/microdroid/kernel/android14-6.1/arm64/kernel-6.1-gz b/guest/kernel/android14-6.1/arm64/kernel-6.1-gz
similarity index 100%
rename from microdroid/kernel/android14-6.1/arm64/kernel-6.1-gz
rename to guest/kernel/android14-6.1/arm64/kernel-6.1-gz
Binary files differ
diff --git a/microdroid/kernel/android14-6.1/arm64/kernel-6.1-lz4 b/guest/kernel/android14-6.1/arm64/kernel-6.1-lz4
similarity index 100%
rename from microdroid/kernel/android14-6.1/arm64/kernel-6.1-lz4
rename to guest/kernel/android14-6.1/arm64/kernel-6.1-lz4
Binary files differ
diff --git a/microdroid/kernel/android14-6.1/arm64/prebuilt-info.txt b/guest/kernel/android14-6.1/arm64/prebuilt-info.txt
similarity index 100%
rename from microdroid/kernel/android14-6.1/arm64/prebuilt-info.txt
rename to guest/kernel/android14-6.1/arm64/prebuilt-info.txt
diff --git a/microdroid/kernel/android14-6.1/x86_64/System.map b/guest/kernel/android14-6.1/x86_64/System.map
similarity index 100%
rename from microdroid/kernel/android14-6.1/x86_64/System.map
rename to guest/kernel/android14-6.1/x86_64/System.map
diff --git a/microdroid/kernel/android14-6.1/x86_64/kernel-6.1 b/guest/kernel/android14-6.1/x86_64/kernel-6.1
similarity index 100%
rename from microdroid/kernel/android14-6.1/x86_64/kernel-6.1
rename to guest/kernel/android14-6.1/x86_64/kernel-6.1
Binary files differ
diff --git a/microdroid/kernel/android14-6.1/x86_64/prebuilt-info.txt b/guest/kernel/android14-6.1/x86_64/prebuilt-info.txt
similarity index 100%
rename from microdroid/kernel/android14-6.1/x86_64/prebuilt-info.txt
rename to guest/kernel/android14-6.1/x86_64/prebuilt-info.txt
diff --git a/microdroid/kernel/android15-6.6/arm64/System.map b/guest/kernel/android15-6.6/arm64/System.map
similarity index 100%
rename from microdroid/kernel/android15-6.6/arm64/System.map
rename to guest/kernel/android15-6.6/arm64/System.map
diff --git a/microdroid/kernel/android15-6.6/arm64/kernel-6.6 b/guest/kernel/android15-6.6/arm64/kernel-6.6
similarity index 100%
rename from microdroid/kernel/android15-6.6/arm64/kernel-6.6
rename to guest/kernel/android15-6.6/arm64/kernel-6.6
Binary files differ
diff --git a/microdroid/kernel/android15-6.6/arm64/kernel-6.6-gz b/guest/kernel/android15-6.6/arm64/kernel-6.6-gz
similarity index 100%
rename from microdroid/kernel/android15-6.6/arm64/kernel-6.6-gz
rename to guest/kernel/android15-6.6/arm64/kernel-6.6-gz
Binary files differ
diff --git a/microdroid/kernel/android15-6.6/arm64/kernel-6.6-lz4 b/guest/kernel/android15-6.6/arm64/kernel-6.6-lz4
similarity index 100%
rename from microdroid/kernel/android15-6.6/arm64/kernel-6.6-lz4
rename to guest/kernel/android15-6.6/arm64/kernel-6.6-lz4
Binary files differ
diff --git a/microdroid/kernel/android15-6.6/arm64/kernel_version.mk b/guest/kernel/android15-6.6/arm64/kernel_version.mk
similarity index 100%
rename from microdroid/kernel/android15-6.6/arm64/kernel_version.mk
rename to guest/kernel/android15-6.6/arm64/kernel_version.mk
diff --git a/microdroid/kernel/android15-6.6/arm64/prebuilt-info.txt b/guest/kernel/android15-6.6/arm64/prebuilt-info.txt
similarity index 100%
rename from microdroid/kernel/android15-6.6/arm64/prebuilt-info.txt
rename to guest/kernel/android15-6.6/arm64/prebuilt-info.txt
diff --git a/microdroid/kernel/android15-6.6/x86_64/System.map b/guest/kernel/android15-6.6/x86_64/System.map
similarity index 100%
rename from microdroid/kernel/android15-6.6/x86_64/System.map
rename to guest/kernel/android15-6.6/x86_64/System.map
diff --git a/microdroid/kernel/android15-6.6/x86_64/kernel-6.6 b/guest/kernel/android15-6.6/x86_64/kernel-6.6
similarity index 100%
rename from microdroid/kernel/android15-6.6/x86_64/kernel-6.6
rename to guest/kernel/android15-6.6/x86_64/kernel-6.6
Binary files differ
diff --git a/microdroid/kernel/android15-6.6/x86_64/kernel_version.mk b/guest/kernel/android15-6.6/x86_64/kernel_version.mk
similarity index 100%
rename from microdroid/kernel/android15-6.6/x86_64/kernel_version.mk
rename to guest/kernel/android15-6.6/x86_64/kernel_version.mk
diff --git a/microdroid/kernel/android15-6.6/x86_64/prebuilt-info.txt b/guest/kernel/android15-6.6/x86_64/prebuilt-info.txt
similarity index 100%
rename from microdroid/kernel/android15-6.6/x86_64/prebuilt-info.txt
rename to guest/kernel/android15-6.6/x86_64/prebuilt-info.txt
diff --git a/launcher/Android.bp b/guest/microdroid_launcher/Android.bp
similarity index 100%
rename from launcher/Android.bp
rename to guest/microdroid_launcher/Android.bp
diff --git a/launcher/main.cpp b/guest/microdroid_launcher/main.cpp
similarity index 100%
rename from launcher/main.cpp
rename to guest/microdroid_launcher/main.cpp
diff --git a/microdroid_manager/Android.bp b/guest/microdroid_manager/Android.bp
similarity index 100%
rename from microdroid_manager/Android.bp
rename to guest/microdroid_manager/Android.bp
diff --git a/microdroid_manager/TEST_MAPPING b/guest/microdroid_manager/TEST_MAPPING
similarity index 100%
rename from microdroid_manager/TEST_MAPPING
rename to guest/microdroid_manager/TEST_MAPPING
diff --git a/microdroid_manager/aidl/Android.bp b/guest/microdroid_manager/aidl/Android.bp
similarity index 100%
rename from microdroid_manager/aidl/Android.bp
rename to guest/microdroid_manager/aidl/Android.bp
diff --git a/microdroid_manager/aidl/android/system/virtualization/payload/IVmPayloadService.aidl b/guest/microdroid_manager/aidl/android/system/virtualization/payload/IVmPayloadService.aidl
similarity index 100%
rename from microdroid_manager/aidl/android/system/virtualization/payload/IVmPayloadService.aidl
rename to guest/microdroid_manager/aidl/android/system/virtualization/payload/IVmPayloadService.aidl
diff --git a/microdroid_manager/microdroid_manager.rc b/guest/microdroid_manager/microdroid_manager.rc
similarity index 100%
rename from microdroid_manager/microdroid_manager.rc
rename to guest/microdroid_manager/microdroid_manager.rc
diff --git a/microdroid_manager/src/dice.rs b/guest/microdroid_manager/src/dice.rs
similarity index 100%
rename from microdroid_manager/src/dice.rs
rename to guest/microdroid_manager/src/dice.rs
diff --git a/microdroid_manager/src/instance.rs b/guest/microdroid_manager/src/instance.rs
similarity index 100%
rename from microdroid_manager/src/instance.rs
rename to guest/microdroid_manager/src/instance.rs
diff --git a/microdroid_manager/src/ioutil.rs b/guest/microdroid_manager/src/ioutil.rs
similarity index 100%
rename from microdroid_manager/src/ioutil.rs
rename to guest/microdroid_manager/src/ioutil.rs
diff --git a/microdroid_manager/src/main.rs b/guest/microdroid_manager/src/main.rs
similarity index 100%
rename from microdroid_manager/src/main.rs
rename to guest/microdroid_manager/src/main.rs
diff --git a/microdroid_manager/src/payload.rs b/guest/microdroid_manager/src/payload.rs
similarity index 100%
rename from microdroid_manager/src/payload.rs
rename to guest/microdroid_manager/src/payload.rs
diff --git a/microdroid_manager/src/swap.rs b/guest/microdroid_manager/src/swap.rs
similarity index 100%
rename from microdroid_manager/src/swap.rs
rename to guest/microdroid_manager/src/swap.rs
diff --git a/microdroid_manager/src/verify.rs b/guest/microdroid_manager/src/verify.rs
similarity index 100%
rename from microdroid_manager/src/verify.rs
rename to guest/microdroid_manager/src/verify.rs
diff --git a/microdroid_manager/src/vm_payload_service.rs b/guest/microdroid_manager/src/vm_payload_service.rs
similarity index 100%
rename from microdroid_manager/src/vm_payload_service.rs
rename to guest/microdroid_manager/src/vm_payload_service.rs
diff --git a/microdroid_manager/src/vm_secret.rs b/guest/microdroid_manager/src/vm_secret.rs
similarity index 100%
rename from microdroid_manager/src/vm_secret.rs
rename to guest/microdroid_manager/src/vm_secret.rs
diff --git a/pvmfw/Android.bp b/guest/pvmfw/Android.bp
similarity index 100%
rename from pvmfw/Android.bp
rename to guest/pvmfw/Android.bp
diff --git a/pvmfw/README.md b/guest/pvmfw/README.md
similarity index 100%
rename from pvmfw/README.md
rename to guest/pvmfw/README.md
diff --git a/pvmfw/TEST_MAPPING b/guest/pvmfw/TEST_MAPPING
similarity index 100%
rename from pvmfw/TEST_MAPPING
rename to guest/pvmfw/TEST_MAPPING
diff --git a/pvmfw/avb/Android.bp b/guest/pvmfw/avb/Android.bp
similarity index 100%
rename from pvmfw/avb/Android.bp
rename to guest/pvmfw/avb/Android.bp
diff --git a/pvmfw/avb/fuzz/Android.bp b/guest/pvmfw/avb/fuzz/Android.bp
similarity index 100%
rename from pvmfw/avb/fuzz/Android.bp
rename to guest/pvmfw/avb/fuzz/Android.bp
diff --git a/pvmfw/avb/fuzz/with_footer_verify_fuzzer.rs b/guest/pvmfw/avb/fuzz/with_footer_verify_fuzzer.rs
similarity index 96%
rename from pvmfw/avb/fuzz/with_footer_verify_fuzzer.rs
rename to guest/pvmfw/avb/fuzz/with_footer_verify_fuzzer.rs
index 6eed15b..141361e 100644
--- a/pvmfw/avb/fuzz/with_footer_verify_fuzzer.rs
+++ b/guest/pvmfw/avb/fuzz/with_footer_verify_fuzzer.rs
@@ -55,5 +55,5 @@
         .copy_from_slice(&AVB_MAGIC[..(AVB_MAGIC_LEN as usize)]);
     modified_kernel[kernel_and_vbmeta.len()..].copy_from_slice(&avb_footer);
 
-    let _ = verify_payload(&modified_kernel, /*initrd=*/ None, &[0u8; 64]);
+    let _ = verify_payload(&modified_kernel, /* initrd= */ None, &[0u8; 64]);
 });
diff --git a/pvmfw/avb/fuzz/without_footer_verify_fuzzer.rs b/guest/pvmfw/avb/fuzz/without_footer_verify_fuzzer.rs
similarity index 93%
rename from pvmfw/avb/fuzz/without_footer_verify_fuzzer.rs
rename to guest/pvmfw/avb/fuzz/without_footer_verify_fuzzer.rs
index fc8fa85..d57f96f 100644
--- a/pvmfw/avb/fuzz/without_footer_verify_fuzzer.rs
+++ b/guest/pvmfw/avb/fuzz/without_footer_verify_fuzzer.rs
@@ -24,5 +24,5 @@
     // kernel can pass the kernel verification, so the value of `initrd`
     // is not so important as we won't reach initrd verification with
     // this fuzzer.
-    let _ = verify_payload(kernel, /*initrd=*/ None, &[0u8; 64]);
+    let _ = verify_payload(kernel, /* initrd= */ None, &[0u8; 64]);
 });
diff --git a/pvmfw/avb/src/error.rs b/guest/pvmfw/avb/src/error.rs
similarity index 100%
rename from pvmfw/avb/src/error.rs
rename to guest/pvmfw/avb/src/error.rs
diff --git a/pvmfw/avb/src/lib.rs b/guest/pvmfw/avb/src/lib.rs
similarity index 100%
rename from pvmfw/avb/src/lib.rs
rename to guest/pvmfw/avb/src/lib.rs
diff --git a/pvmfw/avb/src/ops.rs b/guest/pvmfw/avb/src/ops.rs
similarity index 100%
rename from pvmfw/avb/src/ops.rs
rename to guest/pvmfw/avb/src/ops.rs
diff --git a/pvmfw/avb/src/partition.rs b/guest/pvmfw/avb/src/partition.rs
similarity index 100%
rename from pvmfw/avb/src/partition.rs
rename to guest/pvmfw/avb/src/partition.rs
diff --git a/pvmfw/avb/src/verify.rs b/guest/pvmfw/avb/src/verify.rs
similarity index 100%
rename from pvmfw/avb/src/verify.rs
rename to guest/pvmfw/avb/src/verify.rs
diff --git a/pvmfw/avb/tests/api_test.rs b/guest/pvmfw/avb/tests/api_test.rs
similarity index 100%
rename from pvmfw/avb/tests/api_test.rs
rename to guest/pvmfw/avb/tests/api_test.rs
diff --git a/pvmfw/avb/tests/utils.rs b/guest/pvmfw/avb/tests/utils.rs
similarity index 100%
rename from pvmfw/avb/tests/utils.rs
rename to guest/pvmfw/avb/tests/utils.rs
diff --git a/pvmfw/idmap.S b/guest/pvmfw/idmap.S
similarity index 100%
rename from pvmfw/idmap.S
rename to guest/pvmfw/idmap.S
diff --git a/pvmfw/image.ld b/guest/pvmfw/image.ld
similarity index 100%
rename from pvmfw/image.ld
rename to guest/pvmfw/image.ld
diff --git a/pvmfw/platform.dts b/guest/pvmfw/platform.dts
similarity index 100%
rename from pvmfw/platform.dts
rename to guest/pvmfw/platform.dts
diff --git a/pvmfw/src/bcc.rs b/guest/pvmfw/src/bcc.rs
similarity index 100%
rename from pvmfw/src/bcc.rs
rename to guest/pvmfw/src/bcc.rs
diff --git a/pvmfw/src/bootargs.rs b/guest/pvmfw/src/bootargs.rs
similarity index 100%
rename from pvmfw/src/bootargs.rs
rename to guest/pvmfw/src/bootargs.rs
diff --git a/pvmfw/src/config.rs b/guest/pvmfw/src/config.rs
similarity index 100%
rename from pvmfw/src/config.rs
rename to guest/pvmfw/src/config.rs
diff --git a/pvmfw/src/device_assignment.rs b/guest/pvmfw/src/device_assignment.rs
similarity index 100%
rename from pvmfw/src/device_assignment.rs
rename to guest/pvmfw/src/device_assignment.rs
diff --git a/pvmfw/src/dice.rs b/guest/pvmfw/src/dice.rs
similarity index 100%
rename from pvmfw/src/dice.rs
rename to guest/pvmfw/src/dice.rs
diff --git a/pvmfw/src/entry.rs b/guest/pvmfw/src/entry.rs
similarity index 100%
rename from pvmfw/src/entry.rs
rename to guest/pvmfw/src/entry.rs
diff --git a/pvmfw/src/exceptions.rs b/guest/pvmfw/src/exceptions.rs
similarity index 100%
rename from pvmfw/src/exceptions.rs
rename to guest/pvmfw/src/exceptions.rs
diff --git a/pvmfw/src/fdt.rs b/guest/pvmfw/src/fdt.rs
similarity index 100%
rename from pvmfw/src/fdt.rs
rename to guest/pvmfw/src/fdt.rs
diff --git a/pvmfw/src/gpt.rs b/guest/pvmfw/src/gpt.rs
similarity index 100%
rename from pvmfw/src/gpt.rs
rename to guest/pvmfw/src/gpt.rs
diff --git a/pvmfw/src/helpers.rs b/guest/pvmfw/src/helpers.rs
similarity index 100%
rename from pvmfw/src/helpers.rs
rename to guest/pvmfw/src/helpers.rs
diff --git a/pvmfw/src/instance.rs b/guest/pvmfw/src/instance.rs
similarity index 98%
rename from pvmfw/src/instance.rs
rename to guest/pvmfw/src/instance.rs
index 43c7442..0ef57dc 100644
--- a/pvmfw/src/instance.rs
+++ b/guest/pvmfw/src/instance.rs
@@ -237,7 +237,7 @@
 
 /// Marks the start of an instance.img entry.
 ///
-/// Note: Virtualization/microdroid_manager/src/instance.rs uses the name "partition".
+/// Note: Virtualization/guest/microdroid_manager/src/instance.rs uses the name "partition".
 #[derive(AsBytes, FromZeroes, FromBytes)]
 #[repr(C, packed)]
 struct EntryHeader {
diff --git a/pvmfw/src/main.rs b/guest/pvmfw/src/main.rs
similarity index 100%
rename from pvmfw/src/main.rs
rename to guest/pvmfw/src/main.rs
diff --git a/pvmfw/src/memory.rs b/guest/pvmfw/src/memory.rs
similarity index 100%
rename from pvmfw/src/memory.rs
rename to guest/pvmfw/src/memory.rs
diff --git a/pvmfw/testdata/expected_dt_with_dependency.dts b/guest/pvmfw/testdata/expected_dt_with_dependency.dts
similarity index 100%
rename from pvmfw/testdata/expected_dt_with_dependency.dts
rename to guest/pvmfw/testdata/expected_dt_with_dependency.dts
diff --git a/pvmfw/testdata/expected_dt_with_dependency_loop.dts b/guest/pvmfw/testdata/expected_dt_with_dependency_loop.dts
similarity index 100%
rename from pvmfw/testdata/expected_dt_with_dependency_loop.dts
rename to guest/pvmfw/testdata/expected_dt_with_dependency_loop.dts
diff --git a/pvmfw/testdata/expected_dt_with_multiple_dependencies.dts b/guest/pvmfw/testdata/expected_dt_with_multiple_dependencies.dts
similarity index 100%
rename from pvmfw/testdata/expected_dt_with_multiple_dependencies.dts
rename to guest/pvmfw/testdata/expected_dt_with_multiple_dependencies.dts
diff --git a/pvmfw/testdata/test_crosvm_dt_base.dtsi b/guest/pvmfw/testdata/test_crosvm_dt_base.dtsi
similarity index 100%
rename from pvmfw/testdata/test_crosvm_dt_base.dtsi
rename to guest/pvmfw/testdata/test_crosvm_dt_base.dtsi
diff --git a/pvmfw/testdata/test_pvmfw_devices_overlapping_pvmfw.dts b/guest/pvmfw/testdata/test_pvmfw_devices_overlapping_pvmfw.dts
similarity index 100%
rename from pvmfw/testdata/test_pvmfw_devices_overlapping_pvmfw.dts
rename to guest/pvmfw/testdata/test_pvmfw_devices_overlapping_pvmfw.dts
diff --git a/pvmfw/testdata/test_pvmfw_devices_vm_dtbo.dts b/guest/pvmfw/testdata/test_pvmfw_devices_vm_dtbo.dts
similarity index 100%
rename from pvmfw/testdata/test_pvmfw_devices_vm_dtbo.dts
rename to guest/pvmfw/testdata/test_pvmfw_devices_vm_dtbo.dts
diff --git a/pvmfw/testdata/test_pvmfw_devices_vm_dtbo_with_dependencies.dts b/guest/pvmfw/testdata/test_pvmfw_devices_vm_dtbo_with_dependencies.dts
similarity index 100%
rename from pvmfw/testdata/test_pvmfw_devices_vm_dtbo_with_dependencies.dts
rename to guest/pvmfw/testdata/test_pvmfw_devices_vm_dtbo_with_dependencies.dts
diff --git a/pvmfw/testdata/test_pvmfw_devices_vm_dtbo_with_duplicated_iommus.dts b/guest/pvmfw/testdata/test_pvmfw_devices_vm_dtbo_with_duplicated_iommus.dts
similarity index 100%
rename from pvmfw/testdata/test_pvmfw_devices_vm_dtbo_with_duplicated_iommus.dts
rename to guest/pvmfw/testdata/test_pvmfw_devices_vm_dtbo_with_duplicated_iommus.dts
diff --git a/pvmfw/testdata/test_pvmfw_devices_vm_dtbo_without_symbols.dts b/guest/pvmfw/testdata/test_pvmfw_devices_vm_dtbo_without_symbols.dts
similarity index 100%
rename from pvmfw/testdata/test_pvmfw_devices_vm_dtbo_without_symbols.dts
rename to guest/pvmfw/testdata/test_pvmfw_devices_vm_dtbo_without_symbols.dts
diff --git a/pvmfw/testdata/test_pvmfw_devices_with_dependency.dts b/guest/pvmfw/testdata/test_pvmfw_devices_with_dependency.dts
similarity index 100%
rename from pvmfw/testdata/test_pvmfw_devices_with_dependency.dts
rename to guest/pvmfw/testdata/test_pvmfw_devices_with_dependency.dts
diff --git a/pvmfw/testdata/test_pvmfw_devices_with_dependency_loop.dts b/guest/pvmfw/testdata/test_pvmfw_devices_with_dependency_loop.dts
similarity index 100%
rename from pvmfw/testdata/test_pvmfw_devices_with_dependency_loop.dts
rename to guest/pvmfw/testdata/test_pvmfw_devices_with_dependency_loop.dts
diff --git a/pvmfw/testdata/test_pvmfw_devices_with_duplicated_pviommus.dts b/guest/pvmfw/testdata/test_pvmfw_devices_with_duplicated_pviommus.dts
similarity index 100%
rename from pvmfw/testdata/test_pvmfw_devices_with_duplicated_pviommus.dts
rename to guest/pvmfw/testdata/test_pvmfw_devices_with_duplicated_pviommus.dts
diff --git a/pvmfw/testdata/test_pvmfw_devices_with_iommu_id_conflict.dts b/guest/pvmfw/testdata/test_pvmfw_devices_with_iommu_id_conflict.dts
similarity index 100%
rename from pvmfw/testdata/test_pvmfw_devices_with_iommu_id_conflict.dts
rename to guest/pvmfw/testdata/test_pvmfw_devices_with_iommu_id_conflict.dts
diff --git a/pvmfw/testdata/test_pvmfw_devices_with_iommu_sharing.dts b/guest/pvmfw/testdata/test_pvmfw_devices_with_iommu_sharing.dts
similarity index 100%
rename from pvmfw/testdata/test_pvmfw_devices_with_iommu_sharing.dts
rename to guest/pvmfw/testdata/test_pvmfw_devices_with_iommu_sharing.dts
diff --git a/pvmfw/testdata/test_pvmfw_devices_with_multiple_dependencies.dts b/guest/pvmfw/testdata/test_pvmfw_devices_with_multiple_dependencies.dts
similarity index 100%
rename from pvmfw/testdata/test_pvmfw_devices_with_multiple_dependencies.dts
rename to guest/pvmfw/testdata/test_pvmfw_devices_with_multiple_dependencies.dts
diff --git a/pvmfw/testdata/test_pvmfw_devices_with_multiple_devices_iommus.dts b/guest/pvmfw/testdata/test_pvmfw_devices_with_multiple_devices_iommus.dts
similarity index 100%
rename from pvmfw/testdata/test_pvmfw_devices_with_multiple_devices_iommus.dts
rename to guest/pvmfw/testdata/test_pvmfw_devices_with_multiple_devices_iommus.dts
diff --git a/pvmfw/testdata/test_pvmfw_devices_with_multiple_reg_iommus.dts b/guest/pvmfw/testdata/test_pvmfw_devices_with_multiple_reg_iommus.dts
similarity index 100%
rename from pvmfw/testdata/test_pvmfw_devices_with_multiple_reg_iommus.dts
rename to guest/pvmfw/testdata/test_pvmfw_devices_with_multiple_reg_iommus.dts
diff --git a/pvmfw/testdata/test_pvmfw_devices_with_rng.dts b/guest/pvmfw/testdata/test_pvmfw_devices_with_rng.dts
similarity index 100%
rename from pvmfw/testdata/test_pvmfw_devices_with_rng.dts
rename to guest/pvmfw/testdata/test_pvmfw_devices_with_rng.dts
diff --git a/pvmfw/testdata/test_pvmfw_devices_without_device.dts b/guest/pvmfw/testdata/test_pvmfw_devices_without_device.dts
similarity index 100%
rename from pvmfw/testdata/test_pvmfw_devices_without_device.dts
rename to guest/pvmfw/testdata/test_pvmfw_devices_without_device.dts
diff --git a/pvmfw/testdata/test_pvmfw_devices_without_iommus.dts b/guest/pvmfw/testdata/test_pvmfw_devices_without_iommus.dts
similarity index 100%
rename from pvmfw/testdata/test_pvmfw_devices_without_iommus.dts
rename to guest/pvmfw/testdata/test_pvmfw_devices_without_iommus.dts
diff --git a/rialto/Android.bp b/guest/rialto/Android.bp
similarity index 100%
rename from rialto/Android.bp
rename to guest/rialto/Android.bp
diff --git a/rialto/AndroidTest.xml b/guest/rialto/AndroidTest.xml
similarity index 100%
rename from rialto/AndroidTest.xml
rename to guest/rialto/AndroidTest.xml
diff --git a/rialto/TEST_MAPPING b/guest/rialto/TEST_MAPPING
similarity index 100%
rename from rialto/TEST_MAPPING
rename to guest/rialto/TEST_MAPPING
diff --git a/rialto/idmap.S b/guest/rialto/idmap.S
similarity index 100%
rename from rialto/idmap.S
rename to guest/rialto/idmap.S
diff --git a/rialto/image.ld b/guest/rialto/image.ld
similarity index 100%
rename from rialto/image.ld
rename to guest/rialto/image.ld
diff --git a/rialto/src/communication.rs b/guest/rialto/src/communication.rs
similarity index 100%
rename from rialto/src/communication.rs
rename to guest/rialto/src/communication.rs
diff --git a/rialto/src/error.rs b/guest/rialto/src/error.rs
similarity index 100%
rename from rialto/src/error.rs
rename to guest/rialto/src/error.rs
diff --git a/rialto/src/exceptions.rs b/guest/rialto/src/exceptions.rs
similarity index 100%
rename from rialto/src/exceptions.rs
rename to guest/rialto/src/exceptions.rs
diff --git a/rialto/src/fdt.rs b/guest/rialto/src/fdt.rs
similarity index 100%
rename from rialto/src/fdt.rs
rename to guest/rialto/src/fdt.rs
diff --git a/rialto/src/main.rs b/guest/rialto/src/main.rs
similarity index 100%
rename from rialto/src/main.rs
rename to guest/rialto/src/main.rs
diff --git a/rialto/tests/test.rs b/guest/rialto/tests/test.rs
similarity index 100%
rename from rialto/tests/test.rs
rename to guest/rialto/tests/test.rs
diff --git a/zipfuse/.cargo/config.toml b/guest/zipfuse/.cargo/config.toml
similarity index 100%
rename from zipfuse/.cargo/config.toml
rename to guest/zipfuse/.cargo/config.toml
diff --git a/zipfuse/Android.bp b/guest/zipfuse/Android.bp
similarity index 100%
rename from zipfuse/Android.bp
rename to guest/zipfuse/Android.bp
diff --git a/zipfuse/AndroidTest.xml b/guest/zipfuse/AndroidTest.xml
similarity index 100%
rename from zipfuse/AndroidTest.xml
rename to guest/zipfuse/AndroidTest.xml
diff --git a/zipfuse/Cargo.toml b/guest/zipfuse/Cargo.toml
similarity index 100%
rename from zipfuse/Cargo.toml
rename to guest/zipfuse/Cargo.toml
diff --git a/zipfuse/TEST_MAPPING b/guest/zipfuse/TEST_MAPPING
similarity index 100%
rename from zipfuse/TEST_MAPPING
rename to guest/zipfuse/TEST_MAPPING
diff --git a/zipfuse/src/inode.rs b/guest/zipfuse/src/inode.rs
similarity index 100%
rename from zipfuse/src/inode.rs
rename to guest/zipfuse/src/inode.rs
diff --git a/zipfuse/src/main.rs b/guest/zipfuse/src/main.rs
similarity index 100%
rename from zipfuse/src/main.rs
rename to guest/zipfuse/src/main.rs
diff --git a/zipfuse/testdata/README b/guest/zipfuse/testdata/README
similarity index 100%
rename from zipfuse/testdata/README
rename to guest/zipfuse/testdata/README
diff --git a/zipfuse/testdata/dir/file1 b/guest/zipfuse/testdata/dir/file1
similarity index 100%
rename from zipfuse/testdata/dir/file1
rename to guest/zipfuse/testdata/dir/file1
diff --git a/zipfuse/testdata/dir/file2 b/guest/zipfuse/testdata/dir/file2
similarity index 100%
rename from zipfuse/testdata/dir/file2
rename to guest/zipfuse/testdata/dir/file2
diff --git a/zipfuse/testdata/test.zip b/guest/zipfuse/testdata/test.zip
similarity index 100%
rename from zipfuse/testdata/test.zip
rename to guest/zipfuse/testdata/test.zip
Binary files differ
diff --git a/java/framework/Android.bp b/libs/framework-virtualization/Android.bp
similarity index 96%
rename from java/framework/Android.bp
rename to libs/framework-virtualization/Android.bp
index 7c0240d..d3a2b54 100644
--- a/java/framework/Android.bp
+++ b/libs/framework-virtualization/Android.bp
@@ -47,6 +47,7 @@
         "avf_aconfig_flags",
     ],
     lint: {
+        baseline_filename: "lint-baseline.xml",
         warning_checks: [
             "FlaggedApi",
         ],
diff --git a/java/framework/README.md b/libs/framework-virtualization/README.md
similarity index 95%
rename from java/framework/README.md
rename to libs/framework-virtualization/README.md
index 61ba096..0dd7e64 100644
--- a/java/framework/README.md
+++ b/libs/framework-virtualization/README.md
@@ -1,12 +1,12 @@
 # Android Virtualization Framework API
 
 These Java APIs allow an app to configure and run a Virtual Machine running
-[Microdroid](../microdroid/README.md) and execute native code from the app (the
+[Microdroid](../build/microdroid/README.md) and execute native code from the app (the
 payload) within it.
 
 There is more information on AVF [here](../README.md). To see how to package the
 payload code that is to run inside a VM, and the native API available to it, see
-the [VM Payload API](../vm_payload/README.md)
+the [VM Payload API](../libs/libvm_payload/README.md)
 
 The API classes are all in the
 [`android.system.virtualmachine`](src/android/system/virtualmachine) package.
@@ -137,10 +137,10 @@
 - `onPayloadStarted()`: The VM payload is about to be run.
 - `onPayloadReady()`: The VM payload is running and ready to accept
   connections. (This notification is triggered by the payload code, using the
-  [`AVmPayload_notifyPayloadReady()`](../vm_payload/include/vm_payload.h)
+  [`AVmPayload_notifyPayloadReady()`](../libs/libvm_payload/include/vm_payload.h)
   function.)
 - `onPayloadFinished()`: The VM payload has exited normally. The exit code of
-  the VM (the value returned by [`AVmPayload_main()`](../vm_payload/README.md))
+  the VM (the value returned by [`AVmPayload_main()`](../libs/libvm_payload/README.md))
   is supplied as a parameter.
 - `onError()`: The VM failed; something went wrong. An error code and
   human-readable message are provided which may help diagnosing the problem.
@@ -195,7 +195,7 @@
 The payload code is not given direct access to the VM secret, but an API is
 provided to allow deterministically deriving further secrets from it,
 e.g. encryption or signing keys. See
-[`AVmPayload_getVmInstanceSecret()`](../vm_payload/include/vm_payload.h).
+[`AVmPayload_getVmInstanceSecret()`](../libs/libvm_payload/include/vm_payload.h).
 
 Some VM configuration changes are allowed that don’t affect the identity -
 e.g. changing the number of CPUs or the amount of memory allocated to the
@@ -304,7 +304,7 @@
 the `onStopped()` callback).
 
 Then you can arrange for your VM payload code to exit when it has finished its
-task (by returning from [`AVmPayload_main()`](../vm_payload/README.md), or
+task (by returning from [`AVmPayload_main()`](../libs/libvm_payload/README.md), or
 calling `exit()`). Alternatively you could exit when you receive a request to do
 so from the app, e.g. via binder.
 
@@ -330,7 +330,7 @@
 builder.
 
 Inside the VM this storage is mounted at a path that can be retrieved via the
-[`AVmPayload_getEncryptedStoragePath()`](../vm_payload/include/vm_payload.h)
+[`AVmPayload_getEncryptedStoragePath()`](../libs/libvm_payload/include/vm_payload.h)
 function. The VM can create sub-directories and read and write files here. Any
 data written is persisted and should be available next time the VM is run. (An
 automatic sync is done when the payload exits normally.)
@@ -343,7 +343,7 @@
 powerful attacker could delete it, wholly or partially roll it back to an
 earlier version, or modify it, corrupting the data.
 
-For more info see [README](https://cs.android.com/android/platform/superproject/main/+/main:packages/modules/Virtualization/java/framework/README.md)
+For more info see [README](https://cs.android.com/android/platform/superproject/main/+/main:packages/modules/Virtualization/libs/framework-virtualization/README.md)
 
 # Transferring a VM
 
diff --git a/java/framework/api/current.txt b/libs/framework-virtualization/api/current.txt
similarity index 100%
rename from java/framework/api/current.txt
rename to libs/framework-virtualization/api/current.txt
diff --git a/java/framework/api/module-lib-current.txt b/libs/framework-virtualization/api/module-lib-current.txt
similarity index 100%
rename from java/framework/api/module-lib-current.txt
rename to libs/framework-virtualization/api/module-lib-current.txt
diff --git a/java/framework/api/module-lib-removed.txt b/libs/framework-virtualization/api/module-lib-removed.txt
similarity index 100%
rename from java/framework/api/module-lib-removed.txt
rename to libs/framework-virtualization/api/module-lib-removed.txt
diff --git a/java/framework/api/removed.txt b/libs/framework-virtualization/api/removed.txt
similarity index 100%
rename from java/framework/api/removed.txt
rename to libs/framework-virtualization/api/removed.txt
diff --git a/java/framework/api/system-current.txt b/libs/framework-virtualization/api/system-current.txt
similarity index 100%
rename from java/framework/api/system-current.txt
rename to libs/framework-virtualization/api/system-current.txt
diff --git a/java/framework/api/system-removed.txt b/libs/framework-virtualization/api/system-removed.txt
similarity index 100%
rename from java/framework/api/system-removed.txt
rename to libs/framework-virtualization/api/system-removed.txt
diff --git a/java/framework/api/test-current.txt b/libs/framework-virtualization/api/test-current.txt
similarity index 100%
rename from java/framework/api/test-current.txt
rename to libs/framework-virtualization/api/test-current.txt
diff --git a/java/framework/api/test-removed.txt b/libs/framework-virtualization/api/test-removed.txt
similarity index 100%
rename from java/framework/api/test-removed.txt
rename to libs/framework-virtualization/api/test-removed.txt
diff --git a/java/framework/jarjar-rules.txt b/libs/framework-virtualization/jarjar-rules.txt
similarity index 100%
rename from java/framework/jarjar-rules.txt
rename to libs/framework-virtualization/jarjar-rules.txt
diff --git a/libs/framework-virtualization/lint-baseline.xml b/libs/framework-virtualization/lint-baseline.xml
new file mode 100644
index 0000000..a77a80b
--- /dev/null
+++ b/libs/framework-virtualization/lint-baseline.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 8.4.0-alpha08" type="baseline" client="" dependencies="true" name="" variant="all" version="8.4.0-alpha08">
+
+    <issue
+        id="FlaggedApi"
+        message="Method `getExtraApks()` is a flagged API and should be inside an `if (Flags.avfVTestApis())` check (or annotate the surrounding method `createVirtualMachineConfigForAppFrom` with `@FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS) to transfer requirement to caller`)"
+        errorLine1="        if (!vmConfig.getExtraApks().isEmpty()) {"
+        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="packages/modules/Virtualization/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachine.java"
+            line="1105"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="FlaggedApi"
+        message="Method `getExtraApks()` is a flagged API and should be inside an `if (Flags.avfVTestApis())` check (or annotate the surrounding method `setupExtraApks` with `@FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS) to transfer requirement to caller`)"
+        errorLine1="        List&lt;String> extraApks = config.getExtraApks();"
+        errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+		file="packages/modules/Virtualization/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachine.java"
+            line="1730"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="FlaggedApi"
+        message="Method `setVendorDiskImage()` is a flagged API and should be inside an `if (Flags.avfVTestApis())` check (or annotate the surrounding method `fromPersistableBundle` with `@FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS) to transfer requirement to caller`)"
+        errorLine1="            builder.setVendorDiskImage(new File(vendorDiskImagePath));"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+		file="packages/modules/Virtualization/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java"
+            line="367"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="FlaggedApi"
+        message="Method `setOs()` is a flagged API and should be inside an `if (Flags.avfVTestApis())` check (or annotate the surrounding method `fromPersistableBundle` with `@FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS) to transfer requirement to caller`)"
+        errorLine1="        builder.setOs(b.getString(KEY_OS));"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+		file="packages/modules/Virtualization/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java"
+            line="370"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="FlaggedApi"
+        message="Method `addExtraApk()` is a flagged API and should be inside an `if (Flags.avfVTestApis())` check (or annotate the surrounding method `fromPersistableBundle` with `@FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS) to transfer requirement to caller`)"
+        errorLine1="                builder.addExtraApk(extraApk);"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+		file="packages/modules/Virtualization/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java"
+            line="375"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="FlaggedApi"
+        message="Field `MICRODROID` is a flagged API and should be inside an `if (Flags.avfVTestApis())` check (or annotate the surrounding method `?` with `@FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS) to transfer requirement to caller`)"
+        errorLine1="        @OsName private final String DEFAULT_OS = MICRODROID;"
+        errorLine2="                                                  ~~~~~~~~~~">
+        <location
+		file="packages/modules/Virtualization/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java"
+            line="855"
+            column="51"/>
+    </issue>
+
+</issues>
diff --git a/java/framework/src/android/system/virtualmachine/VirtualMachine.java b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachine.java
similarity index 97%
rename from java/framework/src/android/system/virtualmachine/VirtualMachine.java
rename to libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachine.java
index edfc558..3b16a8a 100644
--- a/java/framework/src/android/system/virtualmachine/VirtualMachine.java
+++ b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachine.java
@@ -132,7 +132,7 @@
  * #connectToVsockServer} or {@link #connectVsock}.
  *
  * <p>The payload code running inside the VM has access to a set of native APIs; see the <a
- * href="https://cs.android.com/android/platform/superproject/+/master:packages/modules/Virtualization/vm_payload/README.md">README
+ * href="https://cs.android.com/android/platform/superproject/main/+/main:packages/modules/Virtualization/libs/libvm_payload/README.md">README
  * file</a> for details.
  *
  * <p>Each VM has a unique secret, computed from the APK that contains the code running in it, the
@@ -193,11 +193,9 @@
      * @hide
      */
     @Retention(RetentionPolicy.SOURCE)
-    @IntDef(prefix = "STATUS_", value = {
-            STATUS_STOPPED,
-            STATUS_RUNNING,
-            STATUS_DELETED
-    })
+    @IntDef(
+            prefix = "STATUS_",
+            value = {STATUS_STOPPED, STATUS_RUNNING, STATUS_DELETED})
     public @interface Status {}
 
     /** The virtual machine has just been created, or {@link #stop} was called on it. */
@@ -245,9 +243,7 @@
     /** Name of this VM within the package. The name should be unique in the package. */
     @NonNull private final String mName;
 
-    /**
-     * Path to the directory containing all the files related to this VM.
-     */
+    /** Path to the directory containing all the files related to this VM. */
     @NonNull private final File mVmRootPath;
 
     /**
@@ -691,8 +687,7 @@
             try {
                 byte[] instanceId = Files.readAllBytes(mInstanceIdPath.toPath());
                 service.claimVmInstance(instanceId);
-            }
-            catch (IOException e) {
+            } catch (IOException e) {
                 throw new VirtualMachineException("failed to read instance_id", e);
             } catch (RemoteException e) {
                 throw e.rethrowAsRuntimeException();
@@ -1773,7 +1768,6 @@
         }
     }
 
-
     /**
      * Returns the stream object representing the log output from the virtual machine. The log
      * output is only available if the VirtualMachineConfig specifies that it should be {@linkplain
@@ -1907,22 +1901,26 @@
     private static void deleteRecursively(File dir) throws IOException {
         // Note: This doesn't follow symlinks, which is important. Instead they are just deleted
         // (and Files.delete deletes the link not the target).
-        Files.walkFileTree(dir.toPath(), new SimpleFileVisitor<>() {
-            @Override
-            public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
-                    throws IOException {
-                Files.delete(file);
-                return FileVisitResult.CONTINUE;
-            }
+        Files.walkFileTree(
+                dir.toPath(),
+                new SimpleFileVisitor<>() {
+                    @Override
+                    public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
+                            throws IOException {
+                        Files.delete(file);
+                        return FileVisitResult.CONTINUE;
+                    }
 
-            @Override
-            public FileVisitResult postVisitDirectory(Path dir, IOException e) throws IOException {
-                // Directory is deleted after we've visited (deleted) all its contents, so it
-                // should be empty by now.
-                Files.delete(dir);
-                return FileVisitResult.CONTINUE;
-            }
-        });
+                    @Override
+                    public FileVisitResult postVisitDirectory(Path dir, IOException e)
+                            throws IOException {
+                        // Directory is deleted after we've visited (deleted) all its contents, so
+                        // it
+                        // should be empty by now.
+                        Files.delete(dir);
+                        return FileVisitResult.CONTINUE;
+                    }
+                });
     }
 
     /**
@@ -2110,21 +2108,14 @@
         String payloadBinaryName = config.getPayloadBinaryName();
 
         StringBuilder result = new StringBuilder();
-        result.append("VirtualMachine(")
-                .append("name:")
-                .append(getName())
-                .append(", ");
+        result.append("VirtualMachine(").append("name:").append(getName()).append(", ");
         if (payloadBinaryName != null) {
             result.append("payload:").append(payloadBinaryName).append(", ");
         }
         if (payloadConfigPath != null) {
-            result.append("config:")
-                    .append(payloadConfigPath)
-                    .append(", ");
+            result.append("config:").append(payloadConfigPath).append(", ");
         }
-        result.append("package: ")
-                .append(mPackageName)
-                .append(")");
+        result.append("package: ").append(mPackageName).append(")");
         return result.toString();
     }
 
@@ -2171,7 +2162,7 @@
     private static List<String> parseExtraApkListFromPayloadConfig(JsonReader reader)
             throws VirtualMachineException {
         /*
-         * JSON schema from packages/modules/Virtualization/microdroid/payload/config/src/lib.rs:
+         * JSON schema from packages/modules/Virtualization/microdroid/libs/libmicrodroid_payload_metadata/config/src/lib.rs:
          *
          * <p>{ "extra_apks": [ { "path": "/system/app/foo.apk", }, ... ], ... }
          */
@@ -2232,7 +2223,7 @@
             throws VirtualMachineException {
         try (FileChannel idOutput = new FileOutputStream(mInstanceIdPath).getChannel();
                 FileChannel idInput = new AutoCloseInputStream(instanceIdFd).getChannel()) {
-            idOutput.transferFrom(idInput, /*position=*/ 0, idInput.size());
+            idOutput.transferFrom(idInput, /* position= */ 0, idInput.size());
         } catch (IOException e) {
             throw new VirtualMachineException("failed to copy instance_id", e);
         }
@@ -2242,7 +2233,7 @@
             throws VirtualMachineException {
         try (FileChannel instance = new FileOutputStream(mInstanceFilePath).getChannel();
                 FileChannel instanceInput = new AutoCloseInputStream(instanceFd).getChannel()) {
-            instance.transferFrom(instanceInput, /*position=*/ 0, instanceInput.size());
+            instance.transferFrom(instanceInput, /* position= */ 0, instanceInput.size());
         } catch (IOException e) {
             throw new VirtualMachineException("failed to transfer instance image", e);
         }
@@ -2252,7 +2243,7 @@
             throws VirtualMachineException {
         try (FileChannel storeOutput = new FileOutputStream(mEncryptedStoreFilePath).getChannel();
                 FileChannel storeInput = new AutoCloseInputStream(encryptedStoreFd).getChannel()) {
-            storeOutput.transferFrom(storeInput, /*position=*/ 0, storeInput.size());
+            storeOutput.transferFrom(storeInput, /* position= */ 0, storeInput.size());
         } catch (IOException e) {
             throw new VirtualMachineException("failed to transfer encryptedstore image", e);
         }
diff --git a/java/framework/src/android/system/virtualmachine/VirtualMachineCallback.java b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCallback.java
similarity index 95%
rename from java/framework/src/android/system/virtualmachine/VirtualMachineCallback.java
rename to libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCallback.java
index d72ba14..b077826 100644
--- a/java/framework/src/android/system/virtualmachine/VirtualMachineCallback.java
+++ b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCallback.java
@@ -35,23 +35,28 @@
 public interface VirtualMachineCallback {
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
-    @IntDef(prefix = "ERROR_", value = {
-        ERROR_UNKNOWN,
-        ERROR_PAYLOAD_VERIFICATION_FAILED,
-        ERROR_PAYLOAD_CHANGED,
-        ERROR_PAYLOAD_INVALID_CONFIG
-    })
+    @IntDef(
+            prefix = "ERROR_",
+            value = {
+                ERROR_UNKNOWN,
+                ERROR_PAYLOAD_VERIFICATION_FAILED,
+                ERROR_PAYLOAD_CHANGED,
+                ERROR_PAYLOAD_INVALID_CONFIG
+            })
     @interface ErrorCode {}
 
     /** Error code for all other errors not listed below. */
     int ERROR_UNKNOWN = 0;
+
     /**
      * Error code indicating that the payload can't be verified due to various reasons (e.g invalid
      * merkle tree, invalid formats, etc).
      */
     int ERROR_PAYLOAD_VERIFICATION_FAILED = 1;
+
     /** Error code indicating that the payload is verified, but has changed since the last boot. */
     int ERROR_PAYLOAD_CHANGED = 2;
+
     /** Error code indicating that the payload config is invalid. */
     int ERROR_PAYLOAD_INVALID_CONFIG = 3;
 
diff --git a/java/framework/src/android/system/virtualmachine/VirtualMachineConfig.java b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java
similarity index 98%
rename from java/framework/src/android/system/virtualmachine/VirtualMachineConfig.java
rename to libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java
index a2d8ee6..7ae4a55 100644
--- a/java/framework/src/android/system/virtualmachine/VirtualMachineConfig.java
+++ b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java
@@ -105,10 +105,9 @@
 
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
-    @IntDef(prefix = "DEBUG_LEVEL_", value = {
-            DEBUG_LEVEL_NONE,
-            DEBUG_LEVEL_FULL
-    })
+    @IntDef(
+            prefix = "DEBUG_LEVEL_",
+            value = {DEBUG_LEVEL_NONE, DEBUG_LEVEL_FULL})
     public @interface DebugLevel {}
 
     /**
@@ -164,9 +163,7 @@
 
     @DebugLevel private final int mDebugLevel;
 
-    /**
-     * Whether to run the VM in protected mode, so the host can't access its memory.
-     */
+    /** Whether to run the VM in protected mode, so the host can't access its memory. */
     private final boolean mProtectedVm;
 
     /**
@@ -181,9 +178,7 @@
     /** The serial device for VM console input. */
     @Nullable private final String mConsoleInputDevice;
 
-    /**
-     * Path within the APK to the payload config file that defines software aspects of the VM.
-     */
+    /** Path within the APK to the payload config file that defines software aspects of the VM. */
     @Nullable private final String mPayloadConfigPath;
 
     /** Name of the payload binary file within the APK that will be executed within the VM. */
@@ -754,11 +749,9 @@
             VirtualMachinePayloadConfig payloadConfig = new VirtualMachinePayloadConfig();
             payloadConfig.payloadBinaryName = mPayloadBinaryName;
             payloadConfig.extraApks = Collections.emptyList();
-            vsConfig.payload =
-                    VirtualMachineAppConfig.Payload.payloadConfig(payloadConfig);
+            vsConfig.payload = VirtualMachineAppConfig.Payload.payloadConfig(payloadConfig);
         } else {
-            vsConfig.payload =
-                    VirtualMachineAppConfig.Payload.configPath(mPayloadConfigPath);
+            vsConfig.payload = VirtualMachineAppConfig.Payload.configPath(mPayloadConfigPath);
         }
         vsConfig.osName = mOs;
         switch (mDebugLevel) {
@@ -1013,7 +1006,8 @@
         /**
          * Sets the path within the APK to the payload config file that defines software aspects of
          * the VM. The file is a JSON file; see
-         * packages/modules/Virtualization/microdroid/payload/config/src/lib.rs for the format.
+         * packages/modules/Virtualization/libs/libmicrodroid_payload_metadata/config/src/lib.rs for
+         * the format.
          *
          * @hide
          */
diff --git a/java/framework/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java
similarity index 99%
rename from java/framework/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java
rename to libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java
index 2da83a0..37dc8fa 100644
--- a/java/framework/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java
+++ b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java
@@ -211,8 +211,6 @@
         return builder.build();
     }
 
-
-
     PersistableBundle toPersistableBundle() {
         PersistableBundle pb = new PersistableBundle();
         pb.putString(KEY_NAME, this.name);
diff --git a/java/framework/src/android/system/virtualmachine/VirtualMachineDescriptor.java b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineDescriptor.java
similarity index 100%
rename from java/framework/src/android/system/virtualmachine/VirtualMachineDescriptor.java
rename to libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineDescriptor.java
diff --git a/java/framework/src/android/system/virtualmachine/VirtualMachineException.java b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineException.java
similarity index 100%
rename from java/framework/src/android/system/virtualmachine/VirtualMachineException.java
rename to libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineException.java
diff --git a/java/framework/src/android/system/virtualmachine/VirtualMachineManager.java b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineManager.java
similarity index 98%
rename from java/framework/src/android/system/virtualmachine/VirtualMachineManager.java
rename to libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineManager.java
index abb2c81..242dc91 100644
--- a/java/framework/src/android/system/virtualmachine/VirtualMachineManager.java
+++ b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineManager.java
@@ -89,10 +89,10 @@
      * @hide
      */
     @Retention(RetentionPolicy.SOURCE)
-    @IntDef(prefix = "CAPABILITY_", flag = true, value = {
-            CAPABILITY_PROTECTED_VM,
-            CAPABILITY_NON_PROTECTED_VM
-    })
+    @IntDef(
+            prefix = "CAPABILITY_",
+            flag = true,
+            value = {CAPABILITY_PROTECTED_VM, CAPABILITY_NON_PROTECTED_VM})
     public @interface Capability {}
 
     /**
diff --git a/java/framework/src/android/system/virtualmachine/VirtualizationFrameworkInitializer.java b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualizationFrameworkInitializer.java
similarity index 100%
rename from java/framework/src/android/system/virtualmachine/VirtualizationFrameworkInitializer.java
rename to libs/framework-virtualization/src/android/system/virtualmachine/VirtualizationFrameworkInitializer.java
diff --git a/java/framework/src/android/system/virtualmachine/VirtualizationService.java b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualizationService.java
similarity index 100%
rename from java/framework/src/android/system/virtualmachine/VirtualizationService.java
rename to libs/framework-virtualization/src/android/system/virtualmachine/VirtualizationService.java
diff --git a/flags/cpp/Android.bp b/libs/libavf_cc_flags/Android.bp
similarity index 100%
rename from flags/cpp/Android.bp
rename to libs/libavf_cc_flags/Android.bp
diff --git a/flags/cpp/include/android/avf_cc_flags.h b/libs/libavf_cc_flags/include/android/avf_cc_flags.h
similarity index 100%
rename from flags/cpp/include/android/avf_cc_flags.h
rename to libs/libavf_cc_flags/include/android/avf_cc_flags.h
diff --git a/service_vm/client_vm_csr/Android.bp b/libs/libclient_vm_csr/Android.bp
similarity index 100%
rename from service_vm/client_vm_csr/Android.bp
rename to libs/libclient_vm_csr/Android.bp
diff --git a/service_vm/client_vm_csr/TEST_MAPPING b/libs/libclient_vm_csr/TEST_MAPPING
similarity index 100%
rename from service_vm/client_vm_csr/TEST_MAPPING
rename to libs/libclient_vm_csr/TEST_MAPPING
diff --git a/service_vm/client_vm_csr/src/lib.rs b/libs/libclient_vm_csr/src/lib.rs
similarity index 98%
rename from service_vm/client_vm_csr/src/lib.rs
rename to libs/libclient_vm_csr/src/lib.rs
index 70152cb..77cfea9 100644
--- a/service_vm/client_vm_csr/src/lib.rs
+++ b/libs/libclient_vm_csr/src/lib.rs
@@ -36,7 +36,7 @@
 
 /// Key parameters for the attestation key.
 ///
-/// See service_vm/comm/client_vm_csr.cddl for more information about the attestation key.
+/// See libs/libservice_vm_comm/client_vm_csr.cddl for more information about the attestation key.
 const ATTESTATION_KEY_NID: Nid = Nid::X9_62_PRIME256V1; // NIST P-256 curve
 const ATTESTATION_KEY_ALGO: iana::Algorithm = iana::Algorithm::ES256;
 const ATTESTATION_KEY_CURVE: iana::EllipticCurve = iana::EllipticCurve::P_256;
diff --git a/microdroid/payload/Android.bp b/libs/libmicrodroid_payload_metadata/Android.bp
similarity index 100%
rename from microdroid/payload/Android.bp
rename to libs/libmicrodroid_payload_metadata/Android.bp
diff --git a/microdroid/payload/README.md b/libs/libmicrodroid_payload_metadata/README.md
similarity index 92%
rename from microdroid/payload/README.md
rename to libs/libmicrodroid_payload_metadata/README.md
index b1eb63f..98ace61 100644
--- a/microdroid/payload/README.md
+++ b/libs/libmicrodroid_payload_metadata/README.md
@@ -3,7 +3,7 @@
 Payload disk is a composite disk image referencing host APEXes and an APK so that microdroid
 mounts/activates APK/APEXes and executes a binary within the APK.
 
-Payload disk is created by [VirtualizationService](../../virtualizationservice) Service when
+Payload disk is created by [VirtualizationService](../../android/virtualizationservice) Service when
 starting a VM.
 
 ## Partitions
diff --git a/microdroid/payload/config/Android.bp b/libs/libmicrodroid_payload_metadata/config/Android.bp
similarity index 100%
rename from microdroid/payload/config/Android.bp
rename to libs/libmicrodroid_payload_metadata/config/Android.bp
diff --git a/microdroid/payload/config/src/lib.rs b/libs/libmicrodroid_payload_metadata/config/src/lib.rs
similarity index 100%
rename from microdroid/payload/config/src/lib.rs
rename to libs/libmicrodroid_payload_metadata/config/src/lib.rs
diff --git a/microdroid/payload/include/microdroid/metadata.h b/libs/libmicrodroid_payload_metadata/include/microdroid/metadata.h
similarity index 100%
rename from microdroid/payload/include/microdroid/metadata.h
rename to libs/libmicrodroid_payload_metadata/include/microdroid/metadata.h
diff --git a/microdroid/payload/metadata.cc b/libs/libmicrodroid_payload_metadata/metadata.cc
similarity index 100%
rename from microdroid/payload/metadata.cc
rename to libs/libmicrodroid_payload_metadata/metadata.cc
diff --git a/microdroid/payload/metadata.proto b/libs/libmicrodroid_payload_metadata/metadata.proto
similarity index 100%
rename from microdroid/payload/metadata.proto
rename to libs/libmicrodroid_payload_metadata/metadata.proto
diff --git a/microdroid/payload/metadata/Android.bp b/libs/libmicrodroid_payload_metadata/metadata/Android.bp
similarity index 100%
rename from microdroid/payload/metadata/Android.bp
rename to libs/libmicrodroid_payload_metadata/metadata/Android.bp
diff --git a/microdroid/payload/metadata/src/lib.rs b/libs/libmicrodroid_payload_metadata/metadata/src/lib.rs
similarity index 100%
rename from microdroid/payload/metadata/src/lib.rs
rename to libs/libmicrodroid_payload_metadata/metadata/src/lib.rs
diff --git a/microdroid/payload/src/com/android/virt/PayloadMetadata.java b/libs/libmicrodroid_payload_metadata/src/com/android/virt/PayloadMetadata.java
similarity index 100%
rename from microdroid/payload/src/com/android/virt/PayloadMetadata.java
rename to libs/libmicrodroid_payload_metadata/src/com/android/virt/PayloadMetadata.java
diff --git a/service_vm/comm/Android.bp b/libs/libservice_vm_comm/Android.bp
similarity index 100%
rename from service_vm/comm/Android.bp
rename to libs/libservice_vm_comm/Android.bp
diff --git a/service_vm/comm/TEST_MAPPING b/libs/libservice_vm_comm/TEST_MAPPING
similarity index 100%
rename from service_vm/comm/TEST_MAPPING
rename to libs/libservice_vm_comm/TEST_MAPPING
diff --git a/service_vm/comm/src/client_vm_csr.cddl b/libs/libservice_vm_comm/src/client_vm_csr.cddl
similarity index 100%
rename from service_vm/comm/src/client_vm_csr.cddl
rename to libs/libservice_vm_comm/src/client_vm_csr.cddl
diff --git a/service_vm/comm/src/csr.rs b/libs/libservice_vm_comm/src/csr.rs
similarity index 100%
rename from service_vm/comm/src/csr.rs
rename to libs/libservice_vm_comm/src/csr.rs
diff --git a/service_vm/comm/src/lib.rs b/libs/libservice_vm_comm/src/lib.rs
similarity index 100%
rename from service_vm/comm/src/lib.rs
rename to libs/libservice_vm_comm/src/lib.rs
diff --git a/service_vm/comm/src/message.rs b/libs/libservice_vm_comm/src/message.rs
similarity index 100%
rename from service_vm/comm/src/message.rs
rename to libs/libservice_vm_comm/src/message.rs
diff --git a/service_vm/comm/src/vsock.rs b/libs/libservice_vm_comm/src/vsock.rs
similarity index 100%
rename from service_vm/comm/src/vsock.rs
rename to libs/libservice_vm_comm/src/vsock.rs
diff --git a/service_vm/comm/tests/api_test.rs b/libs/libservice_vm_comm/tests/api_test.rs
similarity index 100%
rename from service_vm/comm/tests/api_test.rs
rename to libs/libservice_vm_comm/tests/api_test.rs
diff --git a/service_vm/fake_chain/Android.bp b/libs/libservice_vm_fake_chain/Android.bp
similarity index 94%
rename from service_vm/fake_chain/Android.bp
rename to libs/libservice_vm_fake_chain/Android.bp
index 2bc7b4e..39f36eb 100644
--- a/service_vm/fake_chain/Android.bp
+++ b/libs/libservice_vm_fake_chain/Android.bp
@@ -22,7 +22,7 @@
     defaults: ["avf_build_flags_rust"],
     srcs: ["src/lib.rs"],
     visibility: [
-        "//packages/modules/Virtualization/rialto:__subpackages__",
+        "//packages/modules/Virtualization/guest/rialto:__subpackages__",
     ],
     prefer_rlib: true,
     rustlibs: [
diff --git a/service_vm/fake_chain/src/client_vm.rs b/libs/libservice_vm_fake_chain/src/client_vm.rs
similarity index 100%
rename from service_vm/fake_chain/src/client_vm.rs
rename to libs/libservice_vm_fake_chain/src/client_vm.rs
diff --git a/service_vm/fake_chain/src/lib.rs b/libs/libservice_vm_fake_chain/src/lib.rs
similarity index 100%
rename from service_vm/fake_chain/src/lib.rs
rename to libs/libservice_vm_fake_chain/src/lib.rs
diff --git a/service_vm/fake_chain/src/service_vm.rs b/libs/libservice_vm_fake_chain/src/service_vm.rs
similarity index 100%
rename from service_vm/fake_chain/src/service_vm.rs
rename to libs/libservice_vm_fake_chain/src/service_vm.rs
diff --git a/service_vm/manager/Android.bp b/libs/libservice_vm_manager/Android.bp
similarity index 100%
rename from service_vm/manager/Android.bp
rename to libs/libservice_vm_manager/Android.bp
diff --git a/service_vm/manager/src/lib.rs b/libs/libservice_vm_manager/src/lib.rs
similarity index 100%
rename from service_vm/manager/src/lib.rs
rename to libs/libservice_vm_manager/src/lib.rs
diff --git a/service_vm/requests/Android.bp b/libs/libservice_vm_requests/Android.bp
similarity index 100%
rename from service_vm/requests/Android.bp
rename to libs/libservice_vm_requests/Android.bp
diff --git a/service_vm/requests/TEST_MAPPING b/libs/libservice_vm_requests/TEST_MAPPING
similarity index 100%
rename from service_vm/requests/TEST_MAPPING
rename to libs/libservice_vm_requests/TEST_MAPPING
diff --git a/service_vm/requests/src/api.rs b/libs/libservice_vm_requests/src/api.rs
similarity index 100%
rename from service_vm/requests/src/api.rs
rename to libs/libservice_vm_requests/src/api.rs
diff --git a/service_vm/requests/src/cert.rs b/libs/libservice_vm_requests/src/cert.rs
similarity index 100%
rename from service_vm/requests/src/cert.rs
rename to libs/libservice_vm_requests/src/cert.rs
diff --git a/service_vm/requests/src/client_vm.rs b/libs/libservice_vm_requests/src/client_vm.rs
similarity index 98%
rename from service_vm/requests/src/client_vm.rs
rename to libs/libservice_vm_requests/src/client_vm.rs
index 2aa7113..4e54510 100644
--- a/service_vm/requests/src/client_vm.rs
+++ b/libs/libservice_vm_requests/src/client_vm.rs
@@ -55,7 +55,7 @@
         vendor_hashtree_root_digest_from_dt,
     )?;
 
-    // AAD is empty as defined in service_vm/comm/client_vm_csr.cddl.
+    // AAD is empty as defined in libs/libservice_vm_comm/client_vm_csr.cddl.
     let aad = &[];
 
     // Verifies the first signature with the leaf private key in the DICE chain.
diff --git a/service_vm/requests/src/dice.rs b/libs/libservice_vm_requests/src/dice.rs
similarity index 100%
rename from service_vm/requests/src/dice.rs
rename to libs/libservice_vm_requests/src/dice.rs
diff --git a/service_vm/requests/src/keyblob.rs b/libs/libservice_vm_requests/src/keyblob.rs
similarity index 100%
rename from service_vm/requests/src/keyblob.rs
rename to libs/libservice_vm_requests/src/keyblob.rs
diff --git a/service_vm/requests/src/lib.rs b/libs/libservice_vm_requests/src/lib.rs
similarity index 100%
rename from service_vm/requests/src/lib.rs
rename to libs/libservice_vm_requests/src/lib.rs
diff --git a/service_vm/requests/src/pub_key.rs b/libs/libservice_vm_requests/src/pub_key.rs
similarity index 100%
rename from service_vm/requests/src/pub_key.rs
rename to libs/libservice_vm_requests/src/pub_key.rs
diff --git a/service_vm/requests/src/rkp.rs b/libs/libservice_vm_requests/src/rkp.rs
similarity index 100%
rename from service_vm/requests/src/rkp.rs
rename to libs/libservice_vm_requests/src/rkp.rs
diff --git a/java/jni/Android.bp b/libs/libvirtualization_jni/Android.bp
similarity index 100%
rename from java/jni/Android.bp
rename to libs/libvirtualization_jni/Android.bp
diff --git a/java/jni/android_system_virtualmachine_VirtualMachine.cpp b/libs/libvirtualization_jni/android_system_virtualmachine_VirtualMachine.cpp
similarity index 96%
rename from java/jni/android_system_virtualmachine_VirtualMachine.cpp
rename to libs/libvirtualization_jni/android_system_virtualmachine_VirtualMachine.cpp
index ed102bf..3f1d8a0 100644
--- a/java/jni/android_system_virtualmachine_VirtualMachine.cpp
+++ b/libs/libvirtualization_jni/android_system_virtualmachine_VirtualMachine.cpp
@@ -49,7 +49,7 @@
 
 extern "C" JNIEXPORT jobject JNICALL
 Java_android_system_virtualmachine_VirtualMachine_nativeConnectToVsockServer(
-        JNIEnv* env, [[maybe_unused]] jclass clazz, jobject vmBinder, jint port) {
+        JNIEnv *env, [[maybe_unused]] jclass clazz, jobject vmBinder, jint port) {
     using aidl::android::system::virtualizationservice::IVirtualMachine;
     using ndk::ScopedFileDescriptor;
     using ndk::SpAIBinder;
@@ -59,8 +59,8 @@
     std::tuple args{env, vm.get(), port};
     using Args = decltype(args);
 
-    auto requestFunc = [](void* param) {
-        auto [env, vm, port] = *static_cast<Args*>(param);
+    auto requestFunc = [](void *param) {
+        auto [env, vm, port] = *static_cast<Args *>(param);
 
         ScopedFileDescriptor fd;
         if (auto status = vm->connectVsock(port, &fd); !status.isOk()) {
diff --git a/java/jni/android_system_virtualmachine_VirtualizationService.cpp b/libs/libvirtualization_jni/android_system_virtualmachine_VirtualizationService.cpp
similarity index 100%
rename from java/jni/android_system_virtualmachine_VirtualizationService.cpp
rename to libs/libvirtualization_jni/android_system_virtualmachine_VirtualizationService.cpp
diff --git a/java/jni/common.h b/libs/libvirtualization_jni/common.h
similarity index 100%
rename from java/jni/common.h
rename to libs/libvirtualization_jni/common.h
diff --git a/vm_payload/Android.bp b/libs/libvm_payload/Android.bp
similarity index 100%
rename from vm_payload/Android.bp
rename to libs/libvm_payload/Android.bp
diff --git a/vm_payload/README.md b/libs/libvm_payload/README.md
similarity index 93%
rename from vm_payload/README.md
rename to libs/libvm_payload/README.md
index 66fd532..8ef1bac 100644
--- a/vm_payload/README.md
+++ b/libs/libvm_payload/README.md
@@ -2,14 +2,14 @@
 
 This directory contains the definition of the VM Payload API. This is a native
 API, exposed as a set of C functions, available to payload code running inside a
-[Microdroid](https://android.googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/main/microdroid/README.md)
+[Microdroid](https://android.googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/main/build/microdroid/README.md)
 VM.
 
 Note that only native code is supported in Microdroid, so no Java APIs are
 available in the VM, and only 64 bit code is supported.
 
 To create a VM and run the payload from Android see the [AVF Java
-APIs](../java/framework/README.md).
+APIs](../libs/framework-virtualization/README.md).
 
 ## Entry point
 
@@ -17,7 +17,7 @@
 under the `lib/<ABI>` directory, like other JNI code.
 
 The primary .so, which is specified as part of the VM configuration via
-[VirtualMachineConfig.Builder#setPayloadBinaryPath](https://android.googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/main/java/framework/src/android/system/virtualmachine/VirtualMachineConfig.java),
+[VirtualMachineConfig.Builder#setPayloadBinaryPath](https://android.googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/main/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java),
 must define the entry point for the payload.
 
 This entry point is a C function called `AVmPayload_main()`, as declared in
diff --git a/vm_payload/include-restricted/vm_payload_restricted.h b/libs/libvm_payload/include-restricted/vm_payload_restricted.h
similarity index 100%
rename from vm_payload/include-restricted/vm_payload_restricted.h
rename to libs/libvm_payload/include-restricted/vm_payload_restricted.h
diff --git a/vm_payload/include/vm_main.h b/libs/libvm_payload/include/vm_main.h
similarity index 100%
rename from vm_payload/include/vm_main.h
rename to libs/libvm_payload/include/vm_main.h
diff --git a/vm_payload/include/vm_payload.h b/libs/libvm_payload/include/vm_payload.h
similarity index 100%
rename from vm_payload/include/vm_payload.h
rename to libs/libvm_payload/include/vm_payload.h
diff --git a/vm_payload/libvm_payload.map.txt b/libs/libvm_payload/libvm_payload.map.txt
similarity index 100%
rename from vm_payload/libvm_payload.map.txt
rename to libs/libvm_payload/libvm_payload.map.txt
diff --git a/vm_payload/src/lib.rs b/libs/libvm_payload/src/lib.rs
similarity index 100%
rename from vm_payload/src/lib.rs
rename to libs/libvm_payload/src/lib.rs
diff --git a/vm_payload/stub/readme.txt b/libs/libvm_payload/stub/readme.txt
similarity index 85%
rename from vm_payload/stub/readme.txt
rename to libs/libvm_payload/stub/readme.txt
index 47679b5..15b8743 100644
--- a/vm_payload/stub/readme.txt
+++ b/libs/libvm_payload/stub/readme.txt
@@ -14,4 +14,4 @@
 lunch aosp_arm64-eng
 m MicrodroidTestNativeLib
 
-The generated stub file can then be found at out/soong/.intermediates/packages/modules/Virtualization/vm_payload/libvm_payload/android_arm64_armv8-a_shared_current/gen/stub.c
+The generated stub file can then be found at out/soong/.intermediates/packages/modules/Virtualization/libs/libvm_payload/libvm_payload/android_arm64_armv8-a_shared_current/gen/stub.c
diff --git a/vm_payload/stub/stub.c b/libs/libvm_payload/stub/stub.c
similarity index 100%
rename from vm_payload/stub/stub.c
rename to libs/libvm_payload/stub/stub.c
diff --git a/vm_payload/wrapper/attestation.rs b/libs/libvm_payload/wrapper/attestation.rs
similarity index 100%
rename from vm_payload/wrapper/attestation.rs
rename to libs/libvm_payload/wrapper/attestation.rs
diff --git a/vm_payload/wrapper/lib.rs b/libs/libvm_payload/wrapper/lib.rs
similarity index 98%
rename from vm_payload/wrapper/lib.rs
rename to libs/libvm_payload/wrapper/lib.rs
index d3f03d7..b9ce6c8 100644
--- a/vm_payload/wrapper/lib.rs
+++ b/libs/libvm_payload/wrapper/lib.rs
@@ -17,7 +17,7 @@
 //! Rust wrapper for the VM Payload API, allowing virtual machine payload code to be written in
 //! Rust. This wraps the raw C API, accessed via bindgen, into a more idiomatic Rust interface.
 //!
-//! See `https://cs.android.com/android/platform/superproject/main/+/main:packages/modules/Virtualization/vm_payload/README.md`
+//! See `https://cs.android.com/android/platform/superproject/main/+/main:packages/modules/Virtualization/libs/libvm_payload/README.md`
 //! for more information on the VM Payload API.
 
 mod attestation;
diff --git a/vmbase/Android.bp b/libs/libvmbase/Android.bp
similarity index 100%
rename from vmbase/Android.bp
rename to libs/libvmbase/Android.bp
diff --git a/vmbase/README.md b/libs/libvmbase/README.md
similarity index 100%
rename from vmbase/README.md
rename to libs/libvmbase/README.md
diff --git a/vmbase/TEST_MAPPING b/libs/libvmbase/TEST_MAPPING
similarity index 100%
rename from vmbase/TEST_MAPPING
rename to libs/libvmbase/TEST_MAPPING
diff --git a/vmbase/common.h b/libs/libvmbase/common.h
similarity index 100%
rename from vmbase/common.h
rename to libs/libvmbase/common.h
diff --git a/vmbase/entry.S b/libs/libvmbase/entry.S
similarity index 100%
rename from vmbase/entry.S
rename to libs/libvmbase/entry.S
diff --git a/vmbase/example/Android.bp b/libs/libvmbase/example/Android.bp
similarity index 100%
rename from vmbase/example/Android.bp
rename to libs/libvmbase/example/Android.bp
diff --git a/vmbase/example/idmap.S b/libs/libvmbase/example/idmap.S
similarity index 100%
rename from vmbase/example/idmap.S
rename to libs/libvmbase/example/idmap.S
diff --git a/vmbase/example/image.ld b/libs/libvmbase/example/image.ld
similarity index 100%
rename from vmbase/example/image.ld
rename to libs/libvmbase/example/image.ld
diff --git a/vmbase/example/src/exceptions.rs b/libs/libvmbase/example/src/exceptions.rs
similarity index 100%
rename from vmbase/example/src/exceptions.rs
rename to libs/libvmbase/example/src/exceptions.rs
diff --git a/vmbase/example/src/layout.rs b/libs/libvmbase/example/src/layout.rs
similarity index 100%
rename from vmbase/example/src/layout.rs
rename to libs/libvmbase/example/src/layout.rs
diff --git a/vmbase/example/src/main.rs b/libs/libvmbase/example/src/main.rs
similarity index 100%
rename from vmbase/example/src/main.rs
rename to libs/libvmbase/example/src/main.rs
diff --git a/vmbase/example/src/pci.rs b/libs/libvmbase/example/src/pci.rs
similarity index 100%
rename from vmbase/example/src/pci.rs
rename to libs/libvmbase/example/src/pci.rs
diff --git a/vmbase/example/tests/test.rs b/libs/libvmbase/example/tests/test.rs
similarity index 100%
rename from vmbase/example/tests/test.rs
rename to libs/libvmbase/example/tests/test.rs
diff --git a/vmbase/exceptions.S b/libs/libvmbase/exceptions.S
similarity index 100%
rename from vmbase/exceptions.S
rename to libs/libvmbase/exceptions.S
diff --git a/vmbase/exceptions_panic.S b/libs/libvmbase/exceptions_panic.S
similarity index 100%
rename from vmbase/exceptions_panic.S
rename to libs/libvmbase/exceptions_panic.S
diff --git a/vmbase/sections.ld b/libs/libvmbase/sections.ld
similarity index 100%
rename from vmbase/sections.ld
rename to libs/libvmbase/sections.ld
diff --git a/vmbase/src/arch.rs b/libs/libvmbase/src/arch.rs
similarity index 100%
rename from vmbase/src/arch.rs
rename to libs/libvmbase/src/arch.rs
diff --git a/vmbase/src/bionic.rs b/libs/libvmbase/src/bionic.rs
similarity index 100%
rename from vmbase/src/bionic.rs
rename to libs/libvmbase/src/bionic.rs
diff --git a/vmbase/src/console.rs b/libs/libvmbase/src/console.rs
similarity index 100%
rename from vmbase/src/console.rs
rename to libs/libvmbase/src/console.rs
diff --git a/vmbase/src/entry.rs b/libs/libvmbase/src/entry.rs
similarity index 100%
rename from vmbase/src/entry.rs
rename to libs/libvmbase/src/entry.rs
diff --git a/vmbase/src/exceptions.rs b/libs/libvmbase/src/exceptions.rs
similarity index 100%
rename from vmbase/src/exceptions.rs
rename to libs/libvmbase/src/exceptions.rs
diff --git a/vmbase/src/fdt.rs b/libs/libvmbase/src/fdt.rs
similarity index 100%
rename from vmbase/src/fdt.rs
rename to libs/libvmbase/src/fdt.rs
diff --git a/vmbase/src/heap.rs b/libs/libvmbase/src/heap.rs
similarity index 100%
rename from vmbase/src/heap.rs
rename to libs/libvmbase/src/heap.rs
diff --git a/vmbase/src/hvc.rs b/libs/libvmbase/src/hvc.rs
similarity index 100%
rename from vmbase/src/hvc.rs
rename to libs/libvmbase/src/hvc.rs
diff --git a/vmbase/src/hvc/trng.rs b/libs/libvmbase/src/hvc/trng.rs
similarity index 100%
rename from vmbase/src/hvc/trng.rs
rename to libs/libvmbase/src/hvc/trng.rs
diff --git a/vmbase/src/hyp.rs b/libs/libvmbase/src/hyp.rs
similarity index 100%
rename from vmbase/src/hyp.rs
rename to libs/libvmbase/src/hyp.rs
diff --git a/vmbase/src/hyp/error.rs b/libs/libvmbase/src/hyp/error.rs
similarity index 100%
rename from vmbase/src/hyp/error.rs
rename to libs/libvmbase/src/hyp/error.rs
diff --git a/vmbase/src/hyp/hypervisor.rs b/libs/libvmbase/src/hyp/hypervisor.rs
similarity index 100%
rename from vmbase/src/hyp/hypervisor.rs
rename to libs/libvmbase/src/hyp/hypervisor.rs
diff --git a/vmbase/src/hyp/hypervisor/common.rs b/libs/libvmbase/src/hyp/hypervisor/common.rs
similarity index 100%
rename from vmbase/src/hyp/hypervisor/common.rs
rename to libs/libvmbase/src/hyp/hypervisor/common.rs
diff --git a/vmbase/src/hyp/hypervisor/geniezone.rs b/libs/libvmbase/src/hyp/hypervisor/geniezone.rs
similarity index 100%
rename from vmbase/src/hyp/hypervisor/geniezone.rs
rename to libs/libvmbase/src/hyp/hypervisor/geniezone.rs
diff --git a/vmbase/src/hyp/hypervisor/gunyah.rs b/libs/libvmbase/src/hyp/hypervisor/gunyah.rs
similarity index 100%
rename from vmbase/src/hyp/hypervisor/gunyah.rs
rename to libs/libvmbase/src/hyp/hypervisor/gunyah.rs
diff --git a/vmbase/src/hyp/hypervisor/kvm.rs b/libs/libvmbase/src/hyp/hypervisor/kvm.rs
similarity index 100%
rename from vmbase/src/hyp/hypervisor/kvm.rs
rename to libs/libvmbase/src/hyp/hypervisor/kvm.rs
diff --git a/vmbase/src/layout.rs b/libs/libvmbase/src/layout.rs
similarity index 100%
rename from vmbase/src/layout.rs
rename to libs/libvmbase/src/layout.rs
diff --git a/vmbase/src/layout/crosvm.rs b/libs/libvmbase/src/layout/crosvm.rs
similarity index 100%
rename from vmbase/src/layout/crosvm.rs
rename to libs/libvmbase/src/layout/crosvm.rs
diff --git a/vmbase/src/lib.rs b/libs/libvmbase/src/lib.rs
similarity index 100%
rename from vmbase/src/lib.rs
rename to libs/libvmbase/src/lib.rs
diff --git a/vmbase/src/linker.rs b/libs/libvmbase/src/linker.rs
similarity index 100%
rename from vmbase/src/linker.rs
rename to libs/libvmbase/src/linker.rs
diff --git a/vmbase/src/logger.rs b/libs/libvmbase/src/logger.rs
similarity index 100%
rename from vmbase/src/logger.rs
rename to libs/libvmbase/src/logger.rs
diff --git a/vmbase/src/memory.rs b/libs/libvmbase/src/memory.rs
similarity index 100%
rename from vmbase/src/memory.rs
rename to libs/libvmbase/src/memory.rs
diff --git a/vmbase/src/memory/dbm.rs b/libs/libvmbase/src/memory/dbm.rs
similarity index 100%
rename from vmbase/src/memory/dbm.rs
rename to libs/libvmbase/src/memory/dbm.rs
diff --git a/vmbase/src/memory/error.rs b/libs/libvmbase/src/memory/error.rs
similarity index 100%
rename from vmbase/src/memory/error.rs
rename to libs/libvmbase/src/memory/error.rs
diff --git a/vmbase/src/memory/page_table.rs b/libs/libvmbase/src/memory/page_table.rs
similarity index 100%
rename from vmbase/src/memory/page_table.rs
rename to libs/libvmbase/src/memory/page_table.rs
diff --git a/vmbase/src/memory/shared.rs b/libs/libvmbase/src/memory/shared.rs
similarity index 100%
rename from vmbase/src/memory/shared.rs
rename to libs/libvmbase/src/memory/shared.rs
diff --git a/vmbase/src/memory/util.rs b/libs/libvmbase/src/memory/util.rs
similarity index 100%
rename from vmbase/src/memory/util.rs
rename to libs/libvmbase/src/memory/util.rs
diff --git a/vmbase/src/power.rs b/libs/libvmbase/src/power.rs
similarity index 100%
rename from vmbase/src/power.rs
rename to libs/libvmbase/src/power.rs
diff --git a/vmbase/src/rand.rs b/libs/libvmbase/src/rand.rs
similarity index 100%
rename from vmbase/src/rand.rs
rename to libs/libvmbase/src/rand.rs
diff --git a/vmbase/src/uart.rs b/libs/libvmbase/src/uart.rs
similarity index 100%
rename from vmbase/src/uart.rs
rename to libs/libvmbase/src/uart.rs
diff --git a/vmbase/src/util.rs b/libs/libvmbase/src/util.rs
similarity index 100%
rename from vmbase/src/util.rs
rename to libs/libvmbase/src/util.rs
diff --git a/vmbase/src/virtio.rs b/libs/libvmbase/src/virtio.rs
similarity index 100%
rename from vmbase/src/virtio.rs
rename to libs/libvmbase/src/virtio.rs
diff --git a/vmbase/src/virtio/hal.rs b/libs/libvmbase/src/virtio/hal.rs
similarity index 100%
rename from vmbase/src/virtio/hal.rs
rename to libs/libvmbase/src/virtio/hal.rs
diff --git a/vmbase/src/virtio/pci.rs b/libs/libvmbase/src/virtio/pci.rs
similarity index 100%
rename from vmbase/src/virtio/pci.rs
rename to libs/libvmbase/src/virtio/pci.rs
diff --git a/vmclient/Android.bp b/libs/libvmclient/Android.bp
similarity index 100%
rename from vmclient/Android.bp
rename to libs/libvmclient/Android.bp
diff --git a/vmclient/src/death_reason.rs b/libs/libvmclient/src/death_reason.rs
similarity index 100%
rename from vmclient/src/death_reason.rs
rename to libs/libvmclient/src/death_reason.rs
diff --git a/vmclient/src/error_code.rs b/libs/libvmclient/src/error_code.rs
similarity index 100%
rename from vmclient/src/error_code.rs
rename to libs/libvmclient/src/error_code.rs
diff --git a/vmclient/src/errors.rs b/libs/libvmclient/src/errors.rs
similarity index 100%
rename from vmclient/src/errors.rs
rename to libs/libvmclient/src/errors.rs
diff --git a/vmclient/src/lib.rs b/libs/libvmclient/src/lib.rs
similarity index 100%
rename from vmclient/src/lib.rs
rename to libs/libvmclient/src/lib.rs
diff --git a/vmclient/src/sync.rs b/libs/libvmclient/src/sync.rs
similarity index 100%
rename from vmclient/src/sync.rs
rename to libs/libvmclient/src/sync.rs
diff --git a/java/service/Android.bp b/libs/service-virtualization/Android.bp
similarity index 100%
rename from java/service/Android.bp
rename to libs/service-virtualization/Android.bp
diff --git a/java/service/src/com/android/system/virtualmachine/SecretkeeperJobService.java b/libs/service-virtualization/src/com/android/system/virtualmachine/SecretkeeperJobService.java
similarity index 98%
rename from java/service/src/com/android/system/virtualmachine/SecretkeeperJobService.java
rename to libs/service-virtualization/src/com/android/system/virtualmachine/SecretkeeperJobService.java
index 473fbfb..4899dcb 100644
--- a/java/service/src/com/android/system/virtualmachine/SecretkeeperJobService.java
+++ b/libs/service-virtualization/src/com/android/system/virtualmachine/SecretkeeperJobService.java
@@ -95,7 +95,7 @@
                 }
                 sJob.set(null);
                 // We don't reschedule on error, we will try again the next day anyway.
-                jobFinished(params, /*wantReschedule=*/ false);
+                jobFinished(params, /* wantReschedule= */ false);
             }
         }.start();
 
diff --git a/java/service/src/com/android/system/virtualmachine/VirtualizationSystemService.java b/libs/service-virtualization/src/com/android/system/virtualmachine/VirtualizationSystemService.java
similarity index 100%
rename from java/service/src/com/android/system/virtualmachine/VirtualizationSystemService.java
rename to libs/service-virtualization/src/com/android/system/virtualmachine/VirtualizationSystemService.java
diff --git a/service_vm/test_apk/Android.bp b/tests/vm_attestation/Android.bp
similarity index 100%
rename from service_vm/test_apk/Android.bp
rename to tests/vm_attestation/Android.bp
diff --git a/service_vm/test_apk/AndroidManifest.rkpd.xml b/tests/vm_attestation/AndroidManifest.rkpd.xml
similarity index 100%
rename from service_vm/test_apk/AndroidManifest.rkpd.xml
rename to tests/vm_attestation/AndroidManifest.rkpd.xml
diff --git a/service_vm/test_apk/AndroidManifest.xml b/tests/vm_attestation/AndroidManifest.xml
similarity index 100%
rename from service_vm/test_apk/AndroidManifest.xml
rename to tests/vm_attestation/AndroidManifest.xml
diff --git a/service_vm/test_apk/AndroidTest.rkpd.xml b/tests/vm_attestation/AndroidTest.rkpd.xml
similarity index 100%
rename from service_vm/test_apk/AndroidTest.rkpd.xml
rename to tests/vm_attestation/AndroidTest.rkpd.xml
diff --git a/service_vm/test_apk/AndroidTest.xml b/tests/vm_attestation/AndroidTest.xml
similarity index 100%
rename from service_vm/test_apk/AndroidTest.xml
rename to tests/vm_attestation/AndroidTest.xml
diff --git a/service_vm/test_apk/aidl/Android.bp b/tests/vm_attestation/aidl/Android.bp
similarity index 100%
rename from service_vm/test_apk/aidl/Android.bp
rename to tests/vm_attestation/aidl/Android.bp
diff --git a/service_vm/test_apk/aidl/com/android/virt/vm_attestation/testservice/IAttestationService.aidl b/tests/vm_attestation/aidl/com/android/virt/vm_attestation/testservice/IAttestationService.aidl
similarity index 100%
rename from service_vm/test_apk/aidl/com/android/virt/vm_attestation/testservice/IAttestationService.aidl
rename to tests/vm_attestation/aidl/com/android/virt/vm_attestation/testservice/IAttestationService.aidl
diff --git a/service_vm/test_apk/src/java/com/android/virt/rkpd/vm_attestation/testapp/RkpdVmAttestationTest.java b/tests/vm_attestation/src/java/com/android/virt/rkpd/vm_attestation/testapp/RkpdVmAttestationTest.java
similarity index 99%
rename from service_vm/test_apk/src/java/com/android/virt/rkpd/vm_attestation/testapp/RkpdVmAttestationTest.java
rename to tests/vm_attestation/src/java/com/android/virt/rkpd/vm_attestation/testapp/RkpdVmAttestationTest.java
index f456cb4..b41323f 100644
--- a/service_vm/test_apk/src/java/com/android/virt/rkpd/vm_attestation/testapp/RkpdVmAttestationTest.java
+++ b/tests/vm_attestation/src/java/com/android/virt/rkpd/vm_attestation/testapp/RkpdVmAttestationTest.java
@@ -20,17 +20,17 @@
 
 import static com.google.common.truth.TruthJUnit.assume;
 
-import android.net.ConnectivityManager;
-import android.net.NetworkCapabilities;
-import android.net.Network;
 import android.content.Context;
+import android.net.ConnectivityManager;
+import android.net.Network;
+import android.net.NetworkCapabilities;
 import android.system.virtualmachine.VirtualMachine;
 import android.system.virtualmachine.VirtualMachineConfig;
+import android.system.virtualmachine.VirtualMachineManager;
 
 import com.android.microdroid.test.device.MicrodroidDeviceTestBase;
 import com.android.virt.vm_attestation.testservice.IAttestationService.SigningResult;
 import com.android.virt.vm_attestation.util.X509Utils;
-import android.system.virtualmachine.VirtualMachineManager;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/service_vm/test_apk/src/java/com/android/virt/vm_attestation/testapp/VmAttestationTests.java b/tests/vm_attestation/src/java/com/android/virt/vm_attestation/testapp/VmAttestationTests.java
similarity index 99%
rename from service_vm/test_apk/src/java/com/android/virt/vm_attestation/testapp/VmAttestationTests.java
rename to tests/vm_attestation/src/java/com/android/virt/vm_attestation/testapp/VmAttestationTests.java
index ff760b4..43a4c66 100644
--- a/service_vm/test_apk/src/java/com/android/virt/vm_attestation/testapp/VmAttestationTests.java
+++ b/tests/vm_attestation/src/java/com/android/virt/vm_attestation/testapp/VmAttestationTests.java
@@ -16,27 +16,29 @@
 
 package com.android.virt.vm_attestation.testapp;
 
+import static android.system.virtualmachine.VirtualMachineConfig.DEBUG_LEVEL_FULL;
+
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.TruthJUnit.assume;
-import static android.system.virtualmachine.VirtualMachineConfig.DEBUG_LEVEL_FULL;
 
 import android.system.virtualmachine.VirtualMachine;
 import android.system.virtualmachine.VirtualMachineConfig;
 import android.system.virtualmachine.VirtualMachineManager;
 
+import com.android.microdroid.test.device.MicrodroidDeviceTestBase;
+import com.android.virt.vm_attestation.testservice.IAttestationService;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
 
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import com.android.microdroid.test.device.MicrodroidDeviceTestBase;
-import com.android.virt.vm_attestation.testservice.IAttestationService;
-
 @RunWith(Parameterized.class)
 public class VmAttestationTests extends MicrodroidDeviceTestBase {
     private static final String TAG = "VmAttestationTest";
diff --git a/service_vm/test_apk/src/java/com/android/virt/vm_attestation/util/X509Utils.java b/tests/vm_attestation/src/java/com/android/virt/vm_attestation/util/X509Utils.java
similarity index 100%
rename from service_vm/test_apk/src/java/com/android/virt/vm_attestation/util/X509Utils.java
rename to tests/vm_attestation/src/java/com/android/virt/vm_attestation/util/X509Utils.java
diff --git a/service_vm/test_apk/src/native/main.rs b/tests/vm_attestation/src/native/main.rs
similarity index 100%
rename from service_vm/test_apk/src/native/main.rs
rename to tests/vm_attestation/src/native/main.rs