Loading drm/libmediadrm/CryptoHalAidl.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -355,8 +355,7 @@ ssize_t CryptoHalAidl::decrypt(const uint8_t keyId[16], const uint8_t iv[16], std::string msgStr(statusAidl.getMessage()); *errorDetailMsg = toString8(msgStr); if (err != OK) { ALOGE("Failed on decrypt, error message:%s, bytes written:%d", statusAidl.getMessage(), result); ALOGE("Failed on decrypt, error description:%s", statusAidl.getDescription().c_str()); return err; } Loading drm/libmediadrm/DrmHalAidl.cpp +23 −7 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <array> #include <algorithm> #include <map> #include <android/binder_auto_utils.h> #include <android/binder_manager.h> #include <media/PluginMetricsReporting.h> Loading Loading @@ -52,6 +53,7 @@ using ::aidl::android::hardware::drm::SecureStop; using ::aidl::android::hardware::drm::SecureStopId; using ::aidl::android::hardware::drm::SecurityLevel; using ::aidl::android::hardware::drm::Status; using ::aidl::android::hardware::drm::SupportedContentType; using ::aidl::android::hardware::drm::Uuid; using DrmMetricGroupAidl = ::aidl::android::hardware::drm::DrmMetricGroup; using DrmMetricGroupHidl = ::android::hardware::drm::V1_1::DrmMetricGroup; Loading Loading @@ -420,17 +422,31 @@ status_t DrmHalAidl::isCryptoSchemeSupported(const uint8_t uuid[16], const Strin continue; } if (levelAidl != SecurityLevel::DEFAULT && levelAidl != SecurityLevel::UNKNOWN) { if (levelAidl > schemes.maxLevel || levelAidl < schemes.minLevel) { continue; ALOGV("supported schemes: %s; query: level %d mime %s", schemes.toString().c_str(), levelAidl, mimeType.c_str()); std::map<std::string, SupportedContentType> contentTypes; for (auto ct : schemes.mimeTypes) { contentTypes[ct.mime] = ct; } // handle default value cases if (levelAidl == SecurityLevel::DEFAULT || levelAidl == SecurityLevel::UNKNOWN) { if (mimeType == "") { // isCryptoSchemeSupported(uuid) *isSupported = true; } else { // isCryptoSchemeSupported(uuid, mimeType) *isSupported = contentTypes.count(mimeTypeStr); } return OK; } else if (mimeType == "") { return BAD_VALUE; } if (!mimeTypeStr.empty()) { if (!std::count(schemes.mimeTypes.begin(), schemes.mimeTypes.end(), mimeTypeStr)) { auto ct = contentTypes[mimeTypeStr]; if (levelAidl > ct.maxLevel || levelAidl < ct.minLevel) { continue; } } *isSupported = true; break; Loading drm/mediadrm/plugins/clearkey/aidl/CryptoPlugin.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -227,7 +227,7 @@ SharedBufferBase::SharedBufferBase(const SharedBuffer& mem) } SharedBufferBase::~SharedBufferBase() { if (munmap(mBase, mSize)) { if (mBase && munmap(mBase, mSize)) { ALOGE("munmap err: base %p; errno %s", mBase, strerror(errno)); } Loading drm/mediadrm/plugins/clearkey/aidl/DrmFactory.cpp +6 −4 Original line number Diff line number Diff line Loading @@ -82,10 +82,12 @@ using ::aidl::android::hardware::drm::Uuid; for (const auto& uuid : ::aidl::android::hardware::drm::clearkey::getSupportedCryptoSchemes()) { schemes.uuids.push_back({uuid}); } schemes.minLevel = SecurityLevel::SW_SECURE_CRYPTO; schemes.maxLevel = SecurityLevel::SW_SECURE_CRYPTO; schemes.mimeTypes = {kIsoBmffVideoMimeType, kIsoBmffAudioMimeType, kCencInitDataFormat, kWebmVideoMimeType, kWebmAudioMimeType, kWebmInitDataFormat}; for (auto mime : {kIsoBmffVideoMimeType, kIsoBmffAudioMimeType, kCencInitDataFormat, kWebmVideoMimeType, kWebmAudioMimeType, kWebmInitDataFormat}) { const auto minLevel = SecurityLevel::SW_SECURE_CRYPTO; const auto maxLevel = SecurityLevel::SW_SECURE_CRYPTO; schemes.mimeTypes.push_back({mime, minLevel, maxLevel}); } *_aidl_return = schemes; return ndk::ScopedAStatus::ok(); } Loading Loading
drm/libmediadrm/CryptoHalAidl.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -355,8 +355,7 @@ ssize_t CryptoHalAidl::decrypt(const uint8_t keyId[16], const uint8_t iv[16], std::string msgStr(statusAidl.getMessage()); *errorDetailMsg = toString8(msgStr); if (err != OK) { ALOGE("Failed on decrypt, error message:%s, bytes written:%d", statusAidl.getMessage(), result); ALOGE("Failed on decrypt, error description:%s", statusAidl.getDescription().c_str()); return err; } Loading
drm/libmediadrm/DrmHalAidl.cpp +23 −7 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <array> #include <algorithm> #include <map> #include <android/binder_auto_utils.h> #include <android/binder_manager.h> #include <media/PluginMetricsReporting.h> Loading Loading @@ -52,6 +53,7 @@ using ::aidl::android::hardware::drm::SecureStop; using ::aidl::android::hardware::drm::SecureStopId; using ::aidl::android::hardware::drm::SecurityLevel; using ::aidl::android::hardware::drm::Status; using ::aidl::android::hardware::drm::SupportedContentType; using ::aidl::android::hardware::drm::Uuid; using DrmMetricGroupAidl = ::aidl::android::hardware::drm::DrmMetricGroup; using DrmMetricGroupHidl = ::android::hardware::drm::V1_1::DrmMetricGroup; Loading Loading @@ -420,17 +422,31 @@ status_t DrmHalAidl::isCryptoSchemeSupported(const uint8_t uuid[16], const Strin continue; } if (levelAidl != SecurityLevel::DEFAULT && levelAidl != SecurityLevel::UNKNOWN) { if (levelAidl > schemes.maxLevel || levelAidl < schemes.minLevel) { continue; ALOGV("supported schemes: %s; query: level %d mime %s", schemes.toString().c_str(), levelAidl, mimeType.c_str()); std::map<std::string, SupportedContentType> contentTypes; for (auto ct : schemes.mimeTypes) { contentTypes[ct.mime] = ct; } // handle default value cases if (levelAidl == SecurityLevel::DEFAULT || levelAidl == SecurityLevel::UNKNOWN) { if (mimeType == "") { // isCryptoSchemeSupported(uuid) *isSupported = true; } else { // isCryptoSchemeSupported(uuid, mimeType) *isSupported = contentTypes.count(mimeTypeStr); } return OK; } else if (mimeType == "") { return BAD_VALUE; } if (!mimeTypeStr.empty()) { if (!std::count(schemes.mimeTypes.begin(), schemes.mimeTypes.end(), mimeTypeStr)) { auto ct = contentTypes[mimeTypeStr]; if (levelAidl > ct.maxLevel || levelAidl < ct.minLevel) { continue; } } *isSupported = true; break; Loading
drm/mediadrm/plugins/clearkey/aidl/CryptoPlugin.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -227,7 +227,7 @@ SharedBufferBase::SharedBufferBase(const SharedBuffer& mem) } SharedBufferBase::~SharedBufferBase() { if (munmap(mBase, mSize)) { if (mBase && munmap(mBase, mSize)) { ALOGE("munmap err: base %p; errno %s", mBase, strerror(errno)); } Loading
drm/mediadrm/plugins/clearkey/aidl/DrmFactory.cpp +6 −4 Original line number Diff line number Diff line Loading @@ -82,10 +82,12 @@ using ::aidl::android::hardware::drm::Uuid; for (const auto& uuid : ::aidl::android::hardware::drm::clearkey::getSupportedCryptoSchemes()) { schemes.uuids.push_back({uuid}); } schemes.minLevel = SecurityLevel::SW_SECURE_CRYPTO; schemes.maxLevel = SecurityLevel::SW_SECURE_CRYPTO; schemes.mimeTypes = {kIsoBmffVideoMimeType, kIsoBmffAudioMimeType, kCencInitDataFormat, kWebmVideoMimeType, kWebmAudioMimeType, kWebmInitDataFormat}; for (auto mime : {kIsoBmffVideoMimeType, kIsoBmffAudioMimeType, kCencInitDataFormat, kWebmVideoMimeType, kWebmAudioMimeType, kWebmInitDataFormat}) { const auto minLevel = SecurityLevel::SW_SECURE_CRYPTO; const auto maxLevel = SecurityLevel::SW_SECURE_CRYPTO; schemes.mimeTypes.push_back({mime, minLevel, maxLevel}); } *_aidl_return = schemes; return ndk::ScopedAStatus::ok(); } Loading