diff options
author | Jeff Tinker <jtinker@google.com> | 2014-04-03 08:31:22 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-04-03 08:31:22 +0000 |
commit | 638986a78c94081cded0cd87dc9d3b31965092a4 (patch) | |
tree | 44113f9b32efc0a8aa09edf4178ff9aab7204386 /media/libmediaplayerservice | |
parent | 6b66a33d399bf2e5b5c555d22c39a9543839827a (diff) | |
parent | d009aa2bac4a4c8ca2e0c1203148194e237cc5d0 (diff) | |
download | frameworks_av-638986a78c94081cded0cd87dc9d3b31965092a4.zip frameworks_av-638986a78c94081cded0cd87dc9d3b31965092a4.tar.gz frameworks_av-638986a78c94081cded0cd87dc9d3b31965092a4.tar.bz2 |
am d009aa2b: am 81e0bd44: Add signature|system permission to MediaDrm signer APIs
* commit 'd009aa2bac4a4c8ca2e0c1203148194e237cc5d0':
Add signature|system permission to MediaDrm signer APIs
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r-- | media/libmediaplayerservice/Drm.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/Drm.cpp b/media/libmediaplayerservice/Drm.cpp index e68d4cd..d50037f 100644 --- a/media/libmediaplayerservice/Drm.cpp +++ b/media/libmediaplayerservice/Drm.cpp @@ -28,9 +28,21 @@ #include <media/stagefright/foundation/AString.h> #include <media/stagefright/foundation/hexdump.h> #include <media/stagefright/MediaErrors.h> +#include <binder/IServiceManager.h> +#include <binder/IPCThreadState.h> namespace android { +static bool checkPermission(const char* permissionString) { +#ifndef HAVE_ANDROID_OS + return true; +#endif + if (getpid() == IPCThreadState::self()->getCallingPid()) return true; + bool ok = checkCallingPermission(String16(permissionString)); + if (!ok) ALOGE("Request requires %s", permissionString); + return ok; +} + KeyedVector<Vector<uint8_t>, String8> Drm::mUUIDToLibraryPathMap; KeyedVector<String8, wp<SharedLibrary> > Drm::mLibraryPathToOpenLibraryMap; Mutex Drm::mMapLock; @@ -608,6 +620,10 @@ status_t Drm::signRSA(Vector<uint8_t> const &sessionId, return -EINVAL; } + if (!checkPermission("android.permission.ACCESS_DRM_CERTIFICATES")) { + return -EPERM; + } + return mPlugin->signRSA(sessionId, algorithm, message, wrappedKey, signature); } |