Loading drm/mediadrm/plugins/clearkey/DrmPlugin.h +4 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,10 @@ public: return android::ERROR_DRM_CANNOT_HANDLE; } virtual status_t unprovisionDevice() { return android::ERROR_DRM_CANNOT_HANDLE; } virtual status_t getSecureStops(List<Vector<uint8_t> >& secureStops) { UNUSED(secureStops); return android::ERROR_DRM_CANNOT_HANDLE; Loading include/media/IDrm.h +2 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,8 @@ struct IDrm : public IInterface { Vector<uint8_t> &certificate, Vector<uint8_t> &wrappedKey) = 0; virtual status_t unprovisionDevice() = 0; virtual status_t getSecureStops(List<Vector<uint8_t> > &secureStops) = 0; virtual status_t releaseSecureStops(Vector<uint8_t> const &ssRelease) = 0; Loading media/libmedia/IDrm.cpp +19 −1 Original line number Diff line number Diff line Loading @@ -53,7 +53,8 @@ enum { SIGN, SIGN_RSA, VERIFY, SET_LISTENER SET_LISTENER, UNPROVISION_DEVICE }; struct BpDrm : public BpInterface<IDrm> { Loading Loading @@ -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()); Loading Loading @@ -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); Loading media/libmediaplayerservice/Drm.cpp +17 −0 Original line number Diff line number Diff line Loading @@ -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); Loading media/libmediaplayerservice/Drm.h +2 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,8 @@ struct Drm : public BnDrm, Vector<uint8_t> &certificate, Vector<uint8_t> &wrappedKey); virtual status_t unprovisionDevice(); virtual status_t getSecureStops(List<Vector<uint8_t> > &secureStops); virtual status_t releaseSecureStops(Vector<uint8_t> const &ssRelease); Loading Loading
drm/mediadrm/plugins/clearkey/DrmPlugin.h +4 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,10 @@ public: return android::ERROR_DRM_CANNOT_HANDLE; } virtual status_t unprovisionDevice() { return android::ERROR_DRM_CANNOT_HANDLE; } virtual status_t getSecureStops(List<Vector<uint8_t> >& secureStops) { UNUSED(secureStops); return android::ERROR_DRM_CANNOT_HANDLE; Loading
include/media/IDrm.h +2 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,8 @@ struct IDrm : public IInterface { Vector<uint8_t> &certificate, Vector<uint8_t> &wrappedKey) = 0; virtual status_t unprovisionDevice() = 0; virtual status_t getSecureStops(List<Vector<uint8_t> > &secureStops) = 0; virtual status_t releaseSecureStops(Vector<uint8_t> const &ssRelease) = 0; Loading
media/libmedia/IDrm.cpp +19 −1 Original line number Diff line number Diff line Loading @@ -53,7 +53,8 @@ enum { SIGN, SIGN_RSA, VERIFY, SET_LISTENER SET_LISTENER, UNPROVISION_DEVICE }; struct BpDrm : public BpInterface<IDrm> { Loading Loading @@ -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()); Loading Loading @@ -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); Loading
media/libmediaplayerservice/Drm.cpp +17 −0 Original line number Diff line number Diff line Loading @@ -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); Loading
media/libmediaplayerservice/Drm.h +2 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,8 @@ struct Drm : public BnDrm, Vector<uint8_t> &certificate, Vector<uint8_t> &wrappedKey); virtual status_t unprovisionDevice(); virtual status_t getSecureStops(List<Vector<uint8_t> > &secureStops); virtual status_t releaseSecureStops(Vector<uint8_t> const &ssRelease); Loading