summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/Drm.cpp
diff options
context:
space:
mode:
authorJeff Tinker <jtinker@google.com>2014-04-30 10:19:03 -0700
committerJeff Tinker <jtinker@google.com>2014-08-01 17:16:16 +0000
commit68b15554f6dca3b056eac517fe5fa2fd4ee80a33 (patch)
treed6842666f3d062427b56f27c0b9e6e09976389a5 /media/libmediaplayerservice/Drm.cpp
parentfdefe34f40ea6c8964677eaa9107958b0bdf76d0 (diff)
downloadframeworks_av-68b15554f6dca3b056eac517fe5fa2fd4ee80a33.zip
frameworks_av-68b15554f6dca3b056eac517fe5fa2fd4ee80a33.tar.gz
frameworks_av-68b15554f6dca3b056eac517fe5fa2fd4ee80a33.tar.bz2
Allow device to be unprovisioned
bug: 12247651 Change-Id: I564ac8de3da2430342a028f4058e2c5ac2d85d5e
Diffstat (limited to 'media/libmediaplayerservice/Drm.cpp')
-rw-r--r--media/libmediaplayerservice/Drm.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/Drm.cpp b/media/libmediaplayerservice/Drm.cpp
index d50037f..d222316 100644
--- a/media/libmediaplayerservice/Drm.cpp
+++ b/media/libmediaplayerservice/Drm.cpp
@@ -417,6 +417,23 @@ status_t Drm::provideProvisionResponse(Vector<uint8_t> const &response,
return mPlugin->provideProvisionResponse(response, certificate, wrappedKey);
}
+status_t Drm::unprovisionDevice() {
+ Mutex::Autolock autoLock(mLock);
+
+ if (mInitCheck != OK) {
+ return mInitCheck;
+ }
+
+ if (mPlugin == NULL) {
+ return -EINVAL;
+ }
+
+ if (!checkPermission("android.permission.REMOVE_DRM_CERTIFICATES")) {
+ return -EPERM;
+ }
+
+ return mPlugin->unprovisionDevice();
+}
status_t Drm::getSecureStops(List<Vector<uint8_t> > &secureStops) {
Mutex::Autolock autoLock(mLock);