summaryrefslogtreecommitdiffstats
path: root/media/libmedia/IDrm.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/libmedia/IDrm.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/libmedia/IDrm.cpp')
-rw-r--r--media/libmedia/IDrm.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/media/libmedia/IDrm.cpp b/media/libmedia/IDrm.cpp
index f1a6a9f..1904839 100644
--- a/media/libmedia/IDrm.cpp
+++ b/media/libmedia/IDrm.cpp
@@ -53,7 +53,8 @@ enum {
SIGN,
SIGN_RSA,
VERIFY,
- SET_LISTENER
+ SET_LISTENER,
+ UNPROVISION_DEVICE
};
struct BpDrm : public BpInterface<IDrm> {
@@ -229,6 +230,15 @@ struct BpDrm : public BpInterface<IDrm> {
return reply.readInt32();
}
+ virtual status_t unprovisionDevice() {
+ Parcel data, reply;
+ data.writeInterfaceToken(IDrm::getInterfaceDescriptor());
+
+ remote()->transact(UNPROVISION_DEVICE, data, &reply);
+
+ return reply.readInt32();
+ }
+
virtual status_t getSecureStops(List<Vector<uint8_t> > &secureStops) {
Parcel data, reply;
data.writeInterfaceToken(IDrm::getInterfaceDescriptor());
@@ -619,6 +629,14 @@ status_t BnDrm::onTransact(
return OK;
}
+ case UNPROVISION_DEVICE:
+ {
+ CHECK_INTERFACE(IDrm, data, reply);
+ status_t result = unprovisionDevice();
+ reply->writeInt32(result);
+ return OK;
+ }
+
case GET_SECURE_STOPS:
{
CHECK_INTERFACE(IDrm, data, reply);