[pkvm][API] Add API to connect payload and VM service
Bug: 243512047
Test: MicrodroidTests
Change-Id: Id017a2a4236026a2687fe734f2a2c3dd480474bd
diff --git a/tests/testapk/Android.bp b/tests/testapk/Android.bp
index 47116eb..9e6958c 100644
--- a/tests/testapk/Android.bp
+++ b/tests/testapk/Android.bp
@@ -33,7 +33,6 @@
srcs: ["src/native/testbinary.cpp"],
shared_libs: [
"android.security.dice-ndk",
- "android.system.virtualmachineservice-ndk",
"com.android.microdroid.testservice-ndk",
"libbase",
"libbinder_ndk",
@@ -44,6 +43,7 @@
"libfsverity_digests_proto_cc",
"liblog",
"libprotobuf-cpp-lite-ndk",
+ "libvm_payload",
],
}
diff --git a/tests/testapk/src/native/testbinary.cpp b/tests/testapk/src/native/testbinary.cpp
index b4fee86..fd8e776 100644
--- a/tests/testapk/src/native/testbinary.cpp
+++ b/tests/testapk/src/native/testbinary.cpp
@@ -14,7 +14,6 @@
* limitations under the License.
*/
#include <aidl/android/security/dice/IDiceNode.h>
-#include <aidl/android/system/virtualmachineservice/IVirtualMachineService.h>
#include <aidl/com/android/microdroid/testservice/BnTestService.h>
#include <android-base/file.h>
#include <android-base/properties.h>
@@ -33,11 +32,11 @@
#include <binder_rpc_unstable.hpp>
#include <string>
+#include "vm_payload.h"
+
using aidl::android::hardware::security::dice::BccHandover;
using aidl::android::security::dice::IDiceNode;
-using aidl::android::system::virtualmachineservice::IVirtualMachineService;
-
using android::base::ErrnoError;
using android::base::Error;
using android::base::Result;
@@ -133,23 +132,11 @@
auto testService = ndk::SharedRefBase::make<TestService>();
auto callback = []([[maybe_unused]] void* param) {
- // Tell microdroid_manager that we're ready.
- // If we can't, abort in order to fail fast - the host won't proceed without
- // receiving the onReady signal.
- ndk::SpAIBinder binder(
- RpcClient(VMADDR_CID_HOST, IVirtualMachineService::VM_BINDER_SERVICE_PORT));
- auto virtualMachineService = IVirtualMachineService::fromBinder(binder);
- if (virtualMachineService == nullptr) {
- std::cerr << "failed to connect VirtualMachineService\n";
- abort();
- }
- if (auto status = virtualMachineService->notifyPayloadReady(); !status.isOk()) {
- std::cerr << "failed to notify payload ready to virtualizationservice: "
- << status.getDescription() << std::endl;
+ if (!notify_payload_ready()) {
+ std::cerr << "failed to notify payload ready to virtualizationservice" << std::endl;
abort();
}
};
-
if (!RunRpcServerCallback(testService->asBinder().get(), testService->SERVICE_PORT, callback,
nullptr)) {
return Error() << "RPC Server failed to run";