summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-07 05:21:54 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-07 05:21:54 +0000
commitbcb38a032ac4adcd27240eeba50777c468ff0ce5 (patch)
tree47d0829da4f0e0bd6b998526bead004d96ba548d
parent102b82658e9690f7431de423615372ad53aab40e (diff)
parent75cdf184f77217f434b4a7dbf89679a0fda026a3 (diff)
downloadhwservicemanager-android14-mainline-sdkext-release.tar.gz
Snap for 10453563 from 75cdf184f77217f434b4a7dbf89679a0fda026a3 to mainline-sdkext-releaseaml_sdk_341510000aml_sdk_341410000aml_sdk_341110080aml_sdk_341110000aml_sdk_341010000aml_sdk_340912010android14-mainline-sdkext-release
Change-Id: I8a3271a4b8197ad7849269c73a234aa0a8a268f7
-rw-r--r--Android.bp4
-rw-r--r--ServiceManager.cpp3
-rw-r--r--TEST_MAPPING2
-rw-r--r--TokenManager.cpp13
-rw-r--r--Vintf.cpp3
-rw-r--r--hwservicemanager.xml20
6 files changed, 41 insertions, 4 deletions
diff --git a/Android.bp b/Android.bp
index 84c9b72..2997044 100644
--- a/Android.bp
+++ b/Android.bp
@@ -94,6 +94,9 @@ cc_binary {
"libhwservicemanager_shared_libs",
"libtokenmanager_shared_libs",
],
+ vintf_fragments: [
+ "hwservicemanager.xml",
+ ],
init_rc: [
"hwservicemanager.rc",
],
@@ -107,6 +110,7 @@ cc_binary {
"libhwservicemanager",
"libtokenmanager",
],
+ bootstrap: true,
}
cc_test {
diff --git a/ServiceManager.cpp b/ServiceManager.cpp
index 283b054..f80386b 100644
--- a/ServiceManager.cpp
+++ b/ServiceManager.cpp
@@ -252,7 +252,8 @@ static void tryStartService(const std::string& fqName, const std::string& name)
// running, then this will be a no-op. So, for instance, if a service is
// deadlocked during startup, you will see this message repeatedly.
LOG(INFO) << "Since " << fqName << "/" << name
- << " is not registered, trying to start it as a lazy HAL.";
+ << " is not registered, trying to start it as a lazy HAL (if it's not configured to "
+ "be a lazy HAL, it may be stuck starting or still starting).";
std::thread([=] {
if (!SetProperty("ctl.interface_start", fqName + "/" + name)) {
diff --git a/TEST_MAPPING b/TEST_MAPPING
index 9761f93..052dadf 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -7,7 +7,7 @@
"name": "hidl_lazy_test"
}
],
- "hwasan-postsubmit": [
+ "hwasan-presubmit": [
{
"name": "hwservicemanager_test"
},
diff --git a/TokenManager.cpp b/TokenManager.cpp
index 8c0acfc..c3dd4b4 100644
--- a/TokenManager.cpp
+++ b/TokenManager.cpp
@@ -20,10 +20,11 @@
#include <fcntl.h>
-#include <functional>
+#include <hwbinder/IPCThreadState.h>
#include <log/log.h>
#include <openssl/hmac.h>
#include <openssl/rand.h>
+#include <functional>
namespace android {
namespace hidl {
@@ -53,6 +54,13 @@ TokenManager::TokenManager() {
ReadRandomBytes(mKey.data(), mKey.size());
}
+static void noteTmUsage(const char* action, size_t size) {
+ using android::hardware::IPCThreadState;
+ const auto& self = IPCThreadState::self();
+ ALOGI("TokenManager tokens count %s by (uid: %d, pid: %d), now: %zu", action,
+ self->getCallingUid(), self->getCallingPid(), size);
+}
+
// Methods from ::android::hidl::token::V1_0::ITokenManager follow.
Return<void> TokenManager::createToken(const sp<IBase>& store, createToken_cb hidl_cb) {
TokenInterface interface = generateToken(store);
@@ -76,6 +84,7 @@ Return<void> TokenManager::createToken(const sp<IBase>& store, createToken_cb hi
}
mMap[id] = interface;
+ noteTmUsage("added", mMap.size());
hidl_cb(interface.token);
return Void();
@@ -113,6 +122,8 @@ Return<bool> TokenManager::unregister(const hidl_vec<uint8_t> &token) {
}
mMap.erase(it);
+ noteTmUsage("removed", mMap.size());
+
return true;
}
diff --git a/Vintf.cpp b/Vintf.cpp
index afb19c7..b4f9f2e 100644
--- a/Vintf.cpp
+++ b/Vintf.cpp
@@ -20,8 +20,9 @@
#include "Vintf.h"
#include <android-base/logging.h>
-#include <vintf/parse_string.h>
+#include <hidl-util/FQName.h>
#include <vintf/VintfObject.h>
+#include <vintf/parse_string.h>
namespace android {
namespace hardware {
diff --git a/hwservicemanager.xml b/hwservicemanager.xml
new file mode 100644
index 0000000..65220d8
--- /dev/null
+++ b/hwservicemanager.xml
@@ -0,0 +1,20 @@
+<manifest version="1.0" type="framework">
+ <hal>
+ <name>android.hidl.manager</name>
+ <transport>hwbinder</transport>
+ <version>1.2</version>
+ <interface>
+ <name>IServiceManager</name>
+ <instance>default</instance>
+ </interface>
+ </hal>
+ <hal>
+ <name>android.hidl.token</name>
+ <transport>hwbinder</transport>
+ <version>1.0</version>
+ <interface>
+ <name>ITokenManager</name>
+ <instance>default</instance>
+ </interface>
+ </hal>
+</manifest>