summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
diff options
context:
space:
mode:
authorJeff Tinker <jtinker@google.com>2014-04-03 08:31:22 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-04-03 08:31:22 +0000
commit638986a78c94081cded0cd87dc9d3b31965092a4 (patch)
tree44113f9b32efc0a8aa09edf4178ff9aab7204386 /media/libmediaplayerservice
parent6b66a33d399bf2e5b5c555d22c39a9543839827a (diff)
parentd009aa2bac4a4c8ca2e0c1203148194e237cc5d0 (diff)
downloadframeworks_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.cpp16
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);
}