diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-07-07 05:23:20 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-07-07 05:23:20 +0000 |
commit | 296b56a98eb90e3889ea7064b92156c441d2438e (patch) | |
tree | 47d0829da4f0e0bd6b998526bead004d96ba548d | |
parent | f086bcdeeb483632c586801da4604543bdd1fb39 (diff) | |
parent | 75cdf184f77217f434b4a7dbf89679a0fda026a3 (diff) | |
download | hwservicemanager-android14-mainline-uwb-release.tar.gz |
Snap for 10453563 from 75cdf184f77217f434b4a7dbf89679a0fda026a3 to mainline-uwb-releaseaml_uwb_341513070aml_uwb_341511050aml_uwb_341310300aml_uwb_341310030aml_uwb_341111010aml_uwb_341011000android14-mainline-uwb-release
Change-Id: Ic14663ebde2ca84bf6d94e669bcafdbfcdec714e
-rw-r--r-- | Android.bp | 4 | ||||
-rw-r--r-- | ServiceManager.cpp | 3 | ||||
-rw-r--r-- | TEST_MAPPING | 2 | ||||
-rw-r--r-- | TokenManager.cpp | 13 | ||||
-rw-r--r-- | Vintf.cpp | 3 | ||||
-rw-r--r-- | hwservicemanager.xml | 20 |
6 files changed, 41 insertions, 4 deletions
@@ -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; } @@ -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> |