Add more package names for MediaProvider
bug: 171393067
Change-Id: I201de3c7a9e0e6a9a8c3620b519d069764ec73a0
diff --git a/media/libmediatranscoding/TranscodingClientManager.cpp b/media/libmediatranscoding/TranscodingClientManager.cpp
index b57baa5..ae1f7a5 100644
--- a/media/libmediatranscoding/TranscodingClientManager.cpp
+++ b/media/libmediatranscoding/TranscodingClientManager.cpp
@@ -31,7 +31,10 @@
static_assert(sizeof(ClientIdType) == sizeof(void*), "ClientIdType should be pointer-sized");
-static constexpr const char* MEDIA_PROVIDER_PKG_NAME = "com.google.android.providers.media.module";
+static constexpr const char* MEDIA_PROVIDER_PKG_NAMES[] = {
+ "com.android.providers.media.module",
+ "com.google.android.providers.media.module",
+};
using ::aidl::android::media::BnTranscodingClient;
using ::aidl::android::media::IMediaTranscodingService; // For service error codes
@@ -261,16 +264,16 @@
TranscodingClientManager::TranscodingClientManager(
const std::shared_ptr<ControllerClientInterface>& controller)
: mDeathRecipient(AIBinder_DeathRecipient_new(BinderDiedCallback)),
- mSessionController(controller),
- mMediaProviderUid(-1) {
+ mSessionController(controller) {
ALOGD("TranscodingClientManager started");
uid_t mpuid;
- if (TranscodingUidPolicy::getUidForPackage(String16(MEDIA_PROVIDER_PKG_NAME), mpuid) ==
- NO_ERROR) {
- ALOGI("Found MediaProvider uid: %d", mpuid);
- mMediaProviderUid = mpuid;
- } else {
- ALOGW("Couldn't get uid for MediaProvider.");
+ for (const char* pkgName : MEDIA_PROVIDER_PKG_NAMES) {
+ if (TranscodingUidPolicy::getUidForPackage(String16(pkgName), mpuid) == NO_ERROR) {
+ ALOGI("Found %s's uid: %d", pkgName, mpuid);
+ mMediaProviderUid.insert(mpuid);
+ } else {
+ ALOGW("Couldn't get uid for %s.", pkgName);
+ }
}
}
@@ -303,7 +306,7 @@
}
bool TranscodingClientManager::isTrustedCallingUid(uid_t uid) {
- if (uid > 0 && uid == mMediaProviderUid) {
+ if (uid > 0 && mMediaProviderUid.count(uid) > 0) {
return true;
}
diff --git a/media/libmediatranscoding/include/media/TranscodingClientManager.h b/media/libmediatranscoding/include/media/TranscodingClientManager.h
index 5feeae9..451f993 100644
--- a/media/libmediatranscoding/include/media/TranscodingClientManager.h
+++ b/media/libmediatranscoding/include/media/TranscodingClientManager.h
@@ -109,7 +109,7 @@
::ndk::ScopedAIBinder_DeathRecipient mDeathRecipient;
std::shared_ptr<ControllerClientInterface> mSessionController;
- uid_t mMediaProviderUid;
+ std::unordered_set<uid_t> mMediaProviderUid;
static std::atomic<ClientIdType> sCookieCounter;
static std::mutex sCookie2ClientLock;