NoHwServiceManager pretend like IServiceManager is registered
We don't actually want it registered, but we will return HWBINDER
transport so IServiceManager::getService() will actually return the fake
local NoHwServiceManager isntance.
Test: launch_cvd with isHidlSupported returning false
Bug: 218588089
Change-Id: Ibcd1c48687fa8f66bce07da5a23245a3a3a0fc9f
diff --git a/transport/ServiceManagement.cpp b/transport/ServiceManagement.cpp
index 8c9bc5b..a759c50 100644
--- a/transport/ServiceManagement.cpp
+++ b/transport/ServiceManagement.cpp
@@ -252,6 +252,12 @@
}
Return<Transport> getTransport(const hidl_string& fqName, const hidl_string& name) {
+ // We pretend like IServiceManager is declared for
+ // IServiceManager::getService to return this NoHwServiceManager
+ // instance
+ if (isServiceManager(fqName)) {
+ return Transport::HWBINDER;
+ }
LOG(INFO) << "Trying to get transport of " << fqName << "/" << name
<< " without hwservicemanager";
return Transport::EMPTY;