Loading drm/libmediadrm/Android.mk +2 −2 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ LOCAL_SRC_FILES:= \ IDrmClient.cpp \ IMediaDrmService.cpp \ SharedLibrary.cpp ifeq ($(ENABLE_TREBLE_DRM), true) ifeq ($(ENABLE_TREBLE), true) LOCAL_SRC_FILES += \ DrmHal.cpp \ CryptoHal.cpp Loading @@ -31,7 +31,7 @@ LOCAL_SHARED_LIBRARIES := \ libmediautils \ libstagefright_foundation \ libutils ifeq ($(ENABLE_TREBLE_DRM), true) ifeq ($(ENABLE_TREBLE), true) LOCAL_SHARED_LIBRARIES += \ android.hidl.base@1.0 \ android.hardware.drm@1.0 \ Loading drm/libmediadrm/Drm.cpp +8 −2 Original line number Diff line number Diff line Loading @@ -303,7 +303,8 @@ bool Drm::isCryptoSchemeSupported(const uint8_t uuid[16], const String8 &mimeTyp return true; } status_t Drm::createPlugin(const uint8_t uuid[16]) { status_t Drm::createPlugin(const uint8_t uuid[16], const String8& /* appPackageName */) { Mutex::Autolock autoLock(mLock); if (mPlugin != NULL) { Loading @@ -319,7 +320,12 @@ status_t Drm::createPlugin(const uint8_t uuid[16]) { } status_t result = mFactory->createDrmPlugin(uuid, &mPlugin); if (mPlugin) { mPlugin->setListener(this); } else { ALOGE("Failed to create plugin"); return UNEXPECTED_NULL; } return result; } Loading drm/libmediadrm/DrmHal.cpp +24 −32 Original line number Diff line number Diff line Loading @@ -205,13 +205,14 @@ sp<IDrmFactory> DrmHal::makeDrmFactory() { return factory; } sp<IDrmPlugin> DrmHal::makeDrmPlugin(const uint8_t uuid[16]) { sp<IDrmPlugin> DrmHal::makeDrmPlugin(const uint8_t uuid[16], const String8& appPackageName) { if (mFactory == NULL){ return NULL; } sp<IDrmPlugin> plugin; Return<void> hResult = mFactory->createPlugin(uuid, Return<void> hResult = mFactory->createPlugin(uuid, appPackageName.string(), [&](Status status, const sp<IDrmPlugin>& hPlugin) { if (status != Status::OK) { ALOGD("Failed to make drm plugin"); Loading Loading @@ -350,10 +351,11 @@ bool DrmHal::isCryptoSchemeSupported(const uint8_t uuid[16], const String8 &mime return result; } status_t DrmHal::createPlugin(const uint8_t uuid[16]) { status_t DrmHal::createPlugin(const uint8_t uuid[16], const String8& appPackageName) { Mutex::Autolock autoLock(mLock); mPlugin = makeDrmPlugin(uuid); mPlugin = makeDrmPlugin(uuid, appPackageName); if (mPlugin == NULL) { mInitCheck = ERROR_UNSUPPORTED; Loading Loading @@ -597,8 +599,7 @@ status_t DrmHal::getProvisionRequest(String8 const &certType, } status_t DrmHal::provideProvisionResponse(Vector<uint8_t> const &response, Vector<uint8_t> &certificate, Vector<uint8_t> &wrappedKey) { Vector<uint8_t> &certificate, Vector<uint8_t> &wrappedKey) { Mutex::Autolock autoLock(mLock); if (mInitCheck != OK) { Loading Loading @@ -783,10 +784,8 @@ status_t DrmHal::setMacAlgorithm(Vector<uint8_t> const &sessionId, } status_t DrmHal::encrypt(Vector<uint8_t> const &sessionId, Vector<uint8_t> const &keyId, Vector<uint8_t> const &input, Vector<uint8_t> const &iv, Vector<uint8_t> &output) { Vector<uint8_t> const &keyId, Vector<uint8_t> const &input, Vector<uint8_t> const &iv, Vector<uint8_t> &output) { Mutex::Autolock autoLock(mLock); if (mInitCheck != OK) { Loading @@ -811,10 +810,8 @@ status_t DrmHal::encrypt(Vector<uint8_t> const &sessionId, } status_t DrmHal::decrypt(Vector<uint8_t> const &sessionId, Vector<uint8_t> const &keyId, Vector<uint8_t> const &input, Vector<uint8_t> const &iv, Vector<uint8_t> &output) { Vector<uint8_t> const &keyId, Vector<uint8_t> const &input, Vector<uint8_t> const &iv, Vector<uint8_t> &output) { Mutex::Autolock autoLock(mLock); if (mInitCheck != OK) { Loading @@ -839,8 +836,7 @@ status_t DrmHal::decrypt(Vector<uint8_t> const &sessionId, } status_t DrmHal::sign(Vector<uint8_t> const &sessionId, Vector<uint8_t> const &keyId, Vector<uint8_t> const &message, Vector<uint8_t> const &keyId, Vector<uint8_t> const &message, Vector<uint8_t> &signature) { Mutex::Autolock autoLock(mLock); Loading @@ -866,10 +862,8 @@ status_t DrmHal::sign(Vector<uint8_t> const &sessionId, } status_t DrmHal::verify(Vector<uint8_t> const &sessionId, Vector<uint8_t> const &keyId, Vector<uint8_t> const &message, Vector<uint8_t> const &signature, bool &match) { Vector<uint8_t> const &keyId, Vector<uint8_t> const &message, Vector<uint8_t> const &signature, bool &match) { Mutex::Autolock autoLock(mLock); if (mInitCheck != OK) { Loading @@ -896,10 +890,8 @@ status_t DrmHal::verify(Vector<uint8_t> const &sessionId, } status_t DrmHal::signRSA(Vector<uint8_t> const &sessionId, String8 const &algorithm, Vector<uint8_t> const &message, Vector<uint8_t> const &wrappedKey, Vector<uint8_t> &signature) { String8 const &algorithm, Vector<uint8_t> const &message, Vector<uint8_t> const &wrappedKey, Vector<uint8_t> &signature) { Mutex::Autolock autoLock(mLock); if (mInitCheck != OK) { Loading drm/libmediadrm/IDrm.cpp +6 −4 Original line number Diff line number Diff line Loading @@ -88,13 +88,15 @@ struct BpDrm : public BpInterface<IDrm> { return reply.readInt32() != 0; } virtual status_t createPlugin(const uint8_t uuid[16]) { virtual status_t createPlugin(const uint8_t uuid[16], const String8& appPackageName) { Parcel data, reply; data.writeInterfaceToken(IDrm::getInterfaceDescriptor()); data.write(uuid, 16); data.writeString8(appPackageName); status_t status = remote()->transact(CREATE_PLUGIN, data, &reply); if (status != OK) { ALOGE("createPlugin: binder call failed: %d", status); return status; } Loading Loading @@ -585,7 +587,6 @@ status_t BnDrm::onTransact( data.read(uuid, sizeof(uuid)); String8 mimeType = data.readString8(); reply->writeInt32(isCryptoSchemeSupported(uuid, mimeType)); return OK; } Loading @@ -594,7 +595,8 @@ status_t BnDrm::onTransact( CHECK_INTERFACE(IDrm, data, reply); uint8_t uuid[16]; data.read(uuid, sizeof(uuid)); reply->writeInt32(createPlugin(uuid)); String8 appPackageName = data.readString8(); reply->writeInt32(createPlugin(uuid, appPackageName)); return OK; } Loading drm/mediadrm/plugins/clearkey/DrmFactory.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -44,7 +44,8 @@ bool DrmFactory::isContentTypeSupported(const android::String8 &type) { } android::status_t DrmFactory::createDrmPlugin( const uint8_t uuid[16], android::DrmPlugin** plugin) { const uint8_t uuid[16], android::DrmPlugin** plugin) { if (!isCryptoSchemeSupported(uuid)) { *plugin = NULL; return android::BAD_VALUE; Loading Loading
drm/libmediadrm/Android.mk +2 −2 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ LOCAL_SRC_FILES:= \ IDrmClient.cpp \ IMediaDrmService.cpp \ SharedLibrary.cpp ifeq ($(ENABLE_TREBLE_DRM), true) ifeq ($(ENABLE_TREBLE), true) LOCAL_SRC_FILES += \ DrmHal.cpp \ CryptoHal.cpp Loading @@ -31,7 +31,7 @@ LOCAL_SHARED_LIBRARIES := \ libmediautils \ libstagefright_foundation \ libutils ifeq ($(ENABLE_TREBLE_DRM), true) ifeq ($(ENABLE_TREBLE), true) LOCAL_SHARED_LIBRARIES += \ android.hidl.base@1.0 \ android.hardware.drm@1.0 \ Loading
drm/libmediadrm/Drm.cpp +8 −2 Original line number Diff line number Diff line Loading @@ -303,7 +303,8 @@ bool Drm::isCryptoSchemeSupported(const uint8_t uuid[16], const String8 &mimeTyp return true; } status_t Drm::createPlugin(const uint8_t uuid[16]) { status_t Drm::createPlugin(const uint8_t uuid[16], const String8& /* appPackageName */) { Mutex::Autolock autoLock(mLock); if (mPlugin != NULL) { Loading @@ -319,7 +320,12 @@ status_t Drm::createPlugin(const uint8_t uuid[16]) { } status_t result = mFactory->createDrmPlugin(uuid, &mPlugin); if (mPlugin) { mPlugin->setListener(this); } else { ALOGE("Failed to create plugin"); return UNEXPECTED_NULL; } return result; } Loading
drm/libmediadrm/DrmHal.cpp +24 −32 Original line number Diff line number Diff line Loading @@ -205,13 +205,14 @@ sp<IDrmFactory> DrmHal::makeDrmFactory() { return factory; } sp<IDrmPlugin> DrmHal::makeDrmPlugin(const uint8_t uuid[16]) { sp<IDrmPlugin> DrmHal::makeDrmPlugin(const uint8_t uuid[16], const String8& appPackageName) { if (mFactory == NULL){ return NULL; } sp<IDrmPlugin> plugin; Return<void> hResult = mFactory->createPlugin(uuid, Return<void> hResult = mFactory->createPlugin(uuid, appPackageName.string(), [&](Status status, const sp<IDrmPlugin>& hPlugin) { if (status != Status::OK) { ALOGD("Failed to make drm plugin"); Loading Loading @@ -350,10 +351,11 @@ bool DrmHal::isCryptoSchemeSupported(const uint8_t uuid[16], const String8 &mime return result; } status_t DrmHal::createPlugin(const uint8_t uuid[16]) { status_t DrmHal::createPlugin(const uint8_t uuid[16], const String8& appPackageName) { Mutex::Autolock autoLock(mLock); mPlugin = makeDrmPlugin(uuid); mPlugin = makeDrmPlugin(uuid, appPackageName); if (mPlugin == NULL) { mInitCheck = ERROR_UNSUPPORTED; Loading Loading @@ -597,8 +599,7 @@ status_t DrmHal::getProvisionRequest(String8 const &certType, } status_t DrmHal::provideProvisionResponse(Vector<uint8_t> const &response, Vector<uint8_t> &certificate, Vector<uint8_t> &wrappedKey) { Vector<uint8_t> &certificate, Vector<uint8_t> &wrappedKey) { Mutex::Autolock autoLock(mLock); if (mInitCheck != OK) { Loading Loading @@ -783,10 +784,8 @@ status_t DrmHal::setMacAlgorithm(Vector<uint8_t> const &sessionId, } status_t DrmHal::encrypt(Vector<uint8_t> const &sessionId, Vector<uint8_t> const &keyId, Vector<uint8_t> const &input, Vector<uint8_t> const &iv, Vector<uint8_t> &output) { Vector<uint8_t> const &keyId, Vector<uint8_t> const &input, Vector<uint8_t> const &iv, Vector<uint8_t> &output) { Mutex::Autolock autoLock(mLock); if (mInitCheck != OK) { Loading @@ -811,10 +810,8 @@ status_t DrmHal::encrypt(Vector<uint8_t> const &sessionId, } status_t DrmHal::decrypt(Vector<uint8_t> const &sessionId, Vector<uint8_t> const &keyId, Vector<uint8_t> const &input, Vector<uint8_t> const &iv, Vector<uint8_t> &output) { Vector<uint8_t> const &keyId, Vector<uint8_t> const &input, Vector<uint8_t> const &iv, Vector<uint8_t> &output) { Mutex::Autolock autoLock(mLock); if (mInitCheck != OK) { Loading @@ -839,8 +836,7 @@ status_t DrmHal::decrypt(Vector<uint8_t> const &sessionId, } status_t DrmHal::sign(Vector<uint8_t> const &sessionId, Vector<uint8_t> const &keyId, Vector<uint8_t> const &message, Vector<uint8_t> const &keyId, Vector<uint8_t> const &message, Vector<uint8_t> &signature) { Mutex::Autolock autoLock(mLock); Loading @@ -866,10 +862,8 @@ status_t DrmHal::sign(Vector<uint8_t> const &sessionId, } status_t DrmHal::verify(Vector<uint8_t> const &sessionId, Vector<uint8_t> const &keyId, Vector<uint8_t> const &message, Vector<uint8_t> const &signature, bool &match) { Vector<uint8_t> const &keyId, Vector<uint8_t> const &message, Vector<uint8_t> const &signature, bool &match) { Mutex::Autolock autoLock(mLock); if (mInitCheck != OK) { Loading @@ -896,10 +890,8 @@ status_t DrmHal::verify(Vector<uint8_t> const &sessionId, } status_t DrmHal::signRSA(Vector<uint8_t> const &sessionId, String8 const &algorithm, Vector<uint8_t> const &message, Vector<uint8_t> const &wrappedKey, Vector<uint8_t> &signature) { String8 const &algorithm, Vector<uint8_t> const &message, Vector<uint8_t> const &wrappedKey, Vector<uint8_t> &signature) { Mutex::Autolock autoLock(mLock); if (mInitCheck != OK) { Loading
drm/libmediadrm/IDrm.cpp +6 −4 Original line number Diff line number Diff line Loading @@ -88,13 +88,15 @@ struct BpDrm : public BpInterface<IDrm> { return reply.readInt32() != 0; } virtual status_t createPlugin(const uint8_t uuid[16]) { virtual status_t createPlugin(const uint8_t uuid[16], const String8& appPackageName) { Parcel data, reply; data.writeInterfaceToken(IDrm::getInterfaceDescriptor()); data.write(uuid, 16); data.writeString8(appPackageName); status_t status = remote()->transact(CREATE_PLUGIN, data, &reply); if (status != OK) { ALOGE("createPlugin: binder call failed: %d", status); return status; } Loading Loading @@ -585,7 +587,6 @@ status_t BnDrm::onTransact( data.read(uuid, sizeof(uuid)); String8 mimeType = data.readString8(); reply->writeInt32(isCryptoSchemeSupported(uuid, mimeType)); return OK; } Loading @@ -594,7 +595,8 @@ status_t BnDrm::onTransact( CHECK_INTERFACE(IDrm, data, reply); uint8_t uuid[16]; data.read(uuid, sizeof(uuid)); reply->writeInt32(createPlugin(uuid)); String8 appPackageName = data.readString8(); reply->writeInt32(createPlugin(uuid, appPackageName)); return OK; } Loading
drm/mediadrm/plugins/clearkey/DrmFactory.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -44,7 +44,8 @@ bool DrmFactory::isContentTypeSupported(const android::String8 &type) { } android::status_t DrmFactory::createDrmPlugin( const uint8_t uuid[16], android::DrmPlugin** plugin) { const uint8_t uuid[16], android::DrmPlugin** plugin) { if (!isCryptoSchemeSupported(uuid)) { *plugin = NULL; return android::BAD_VALUE; Loading