diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-07-07 05:03:18 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-07-07 05:03:18 +0000 |
commit | 2a51bb2d53014281e10d1c01cff87d9eb3e08221 (patch) | |
tree | 47d0829da4f0e0bd6b998526bead004d96ba548d | |
parent | 619c0a5023bb8795ea7b085bee5b6c73147507ec (diff) | |
parent | 75cdf184f77217f434b4a7dbf89679a0fda026a3 (diff) | |
download | hwservicemanager-aml_med_341111000.tar.gz |
Snap for 10453563 from 75cdf184f77217f434b4a7dbf89679a0fda026a3 to mainline-media-releaseaml_med_341711000aml_med_341619000aml_med_341513600aml_med_341312300aml_med_341312020aml_med_341111000aml_med_341011000aml_med_340922010android14-mainline-media-release
Change-Id: Ib3c3be888b7e4554ed13da331d0b2813aa2995fe
-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> |