Move vm_payload to libs/libvm_payload

Bug: 352458998
Test: pass TH
Change-Id: Ibb1364410c12e3b4daaa9f81d4ec830ccdbf475f
diff --git a/README.md b/README.md
index 75382c8..a47f5b3 100644
--- a/README.md
+++ b/README.md
@@ -24,7 +24,7 @@
 
 AVF APIs:
 * [Java API](java/framework/README.md)
-* [VM Payload API](vm_payload/README.md)
+* [VM Payload API](libs/libvm_payload/README.md)
 
 How-Tos:
 * [Building and running a demo app in Java](android/MicrodroidDemoApp/README.md)
diff --git a/build/microdroid/README.md b/build/microdroid/README.md
index e3d310f..da81300 100644
--- a/build/microdroid/README.md
+++ b/build/microdroid/README.md
@@ -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:
diff --git a/docs/vm_remote_attestation.md b/docs/vm_remote_attestation.md
index 195804f..e41b8e7 100644
--- a/docs/vm_remote_attestation.md
+++ b/docs/vm_remote_attestation.md
@@ -67,7 +67,7 @@
 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
+[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/service_vm/demo_apk
 
 ## Output
diff --git a/guest/encryptedstore/README.md b/guest/encryptedstore/README.md
index 3d55d85..5627984 100644
--- a/guest/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/java/framework/README.md b/java/framework/README.md
index 2638d3b..e80d908 100644
--- a/java/framework/README.md
+++ b/java/framework/README.md
@@ -6,7 +6,7 @@
 
 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.)
diff --git a/java/framework/src/android/system/virtualmachine/VirtualMachine.java b/java/framework/src/android/system/virtualmachine/VirtualMachine.java
index c3f11d1..ace3b82 100644
--- a/java/framework/src/android/system/virtualmachine/VirtualMachine.java
+++ b/java/framework/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
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 100%
rename from vm_payload/README.md
rename to libs/libvm_payload/README.md
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;