Loading media/jni/android_media_MediaDrm.cpp +42 −83 Original line number Diff line number Diff line Loading @@ -422,43 +422,11 @@ static bool isSessionException(status_t err) { } static bool throwExceptionAsNecessary( JNIEnv *env, status_t err, const char *msg = NULL) { const char *drmMessage = NULL; switch (err) { case ERROR_DRM_UNKNOWN: drmMessage = "General DRM error"; break; case ERROR_DRM_NO_LICENSE: drmMessage = "No license"; break; case ERROR_DRM_LICENSE_EXPIRED: drmMessage = "License expired"; break; case ERROR_DRM_SESSION_NOT_OPENED: drmMessage = "Session not opened"; break; case ERROR_DRM_DECRYPT_UNIT_NOT_INITIALIZED: drmMessage = "Not initialized"; break; case ERROR_DRM_DECRYPT: drmMessage = "Decrypt error"; break; case ERROR_DRM_CANNOT_HANDLE: drmMessage = "Invalid parameter or data format"; break; case ERROR_DRM_INVALID_STATE: drmMessage = "Invalid state"; break; default: break; } String8 vendorMessage; if (err >= ERROR_DRM_VENDOR_MIN && err <= ERROR_DRM_VENDOR_MAX) { vendorMessage = String8::format("DRM vendor-defined error: %d", err); drmMessage = vendorMessage.string(); JNIEnv *env, const sp<IDrm> &drm, status_t err, const char *msg = NULL) { std::string msgStr; if (drm != NULL) { msgStr = DrmUtils::GetExceptionMessage(err, msg, drm); msg = msgStr.c_str(); } if (err == BAD_VALUE || err == ERROR_DRM_CANNOT_HANDLE) { Loading @@ -484,15 +452,6 @@ static bool throwExceptionAsNecessary( throwSessionException(env, msg, err); return true; } else if (err != OK) { String8 errbuf; if (drmMessage != NULL) { if (msg == NULL) { msg = drmMessage; } else { errbuf = String8::format("%s: %s", msg, drmMessage); msg = errbuf.string(); } } throwStateException(env, msg, err); return true; } Loading Loading @@ -1090,7 +1049,7 @@ static jboolean android_media_MediaDrm_isCryptoSchemeSupportedNative( status_t err = JDrm::IsCryptoSchemeSupported(uuid.array(), mimeType, securityLevel, &isSupported); if (throwExceptionAsNecessary(env, err, "Failed to query crypto scheme support")) { if (throwExceptionAsNecessary(env, NULL, err, "Failed to query crypto scheme support")) { return false; } return isSupported; Loading @@ -1113,7 +1072,7 @@ static jbyteArray android_media_MediaDrm_openSession( status_t err = drm->openSession(level, sessionId); if (throwExceptionAsNecessary(env, err, "Failed to open session")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to open session")) { return NULL; } Loading @@ -1132,7 +1091,7 @@ static void android_media_MediaDrm_closeSession( status_t err = drm->closeSession(sessionId); throwExceptionAsNecessary(env, err, "Failed to close session"); throwExceptionAsNecessary(env, drm, err, "Failed to close session"); } static jobject android_media_MediaDrm_getKeyRequest( Loading Loading @@ -1185,7 +1144,7 @@ static jobject android_media_MediaDrm_getKeyRequest( status_t err = drm->getKeyRequest(sessionId, initData, mimeType, keyType, optParams, request, defaultUrl, &keyRequestType); if (throwExceptionAsNecessary(env, err, "Failed to get key request")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get key request")) { return NULL; } Loading Loading @@ -1255,7 +1214,7 @@ static jbyteArray android_media_MediaDrm_provideKeyResponse( status_t err = drm->provideKeyResponse(sessionId, response, keySetId); if (throwExceptionAsNecessary(env, err, "Failed to handle key response")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to handle key response")) { return NULL; } return VectorToJByteArray(env, keySetId); Loading @@ -1279,7 +1238,7 @@ static void android_media_MediaDrm_removeKeys( status_t err = drm->removeKeys(keySetId); throwExceptionAsNecessary(env, err, "Failed to remove keys"); throwExceptionAsNecessary(env, drm, err, "Failed to remove keys"); } static void android_media_MediaDrm_restoreKeys( Loading @@ -1302,7 +1261,7 @@ static void android_media_MediaDrm_restoreKeys( status_t err = drm->restoreKeys(sessionId, keySetId); throwExceptionAsNecessary(env, err, "Failed to restore keys"); throwExceptionAsNecessary(env, drm, err, "Failed to restore keys"); } static jobject android_media_MediaDrm_queryKeyStatus( Loading @@ -1318,7 +1277,7 @@ static jobject android_media_MediaDrm_queryKeyStatus( status_t err = drm->queryKeyStatus(sessionId, infoMap); if (throwExceptionAsNecessary(env, err, "Failed to query key status")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to query key status")) { return NULL; } Loading Loading @@ -1348,7 +1307,7 @@ static jobject android_media_MediaDrm_getProvisionRequestNative( String8 certAuthority = JStringToString8(env, jcertAuthority); status_t err = drm->getProvisionRequest(certType, certAuthority, request, defaultUrl); if (throwExceptionAsNecessary(env, err, "Failed to get provision request")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get provision request")) { return NULL; } Loading Loading @@ -1403,7 +1362,7 @@ static jobject android_media_MediaDrm_provideProvisionResponseNative( env->SetObjectField(certificateObj, gFields.certificate.wrappedPrivateKey, jwrappedKey); } throwExceptionAsNecessary(env, err, "Failed to handle provision response"); throwExceptionAsNecessary(env, drm, err, "Failed to handle provision response"); return certificateObj; } Loading @@ -1419,7 +1378,7 @@ static jobject android_media_MediaDrm_getSecureStops( status_t err = drm->getSecureStops(secureStops); if (throwExceptionAsNecessary(env, err, "Failed to get secure stops")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get secure stops")) { return NULL; } Loading @@ -1438,7 +1397,7 @@ static jobject android_media_MediaDrm_getSecureStopIds( status_t err = drm->getSecureStopIds(secureStopIds); if (throwExceptionAsNecessary(env, err, "Failed to get secure stop Ids")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get secure stop Ids")) { return NULL; } Loading @@ -1457,7 +1416,7 @@ static jbyteArray android_media_MediaDrm_getSecureStop( status_t err = drm->getSecureStop(JByteArrayToVector(env, ssid), secureStop); if (throwExceptionAsNecessary(env, err, "Failed to get secure stop")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get secure stop")) { return NULL; } Loading @@ -1476,7 +1435,7 @@ static void android_media_MediaDrm_releaseSecureStops( status_t err = drm->releaseSecureStops(ssRelease); throwExceptionAsNecessary(env, err, "Failed to release secure stops"); throwExceptionAsNecessary(env, drm, err, "Failed to release secure stops"); } static void android_media_MediaDrm_removeSecureStop( Loading @@ -1489,7 +1448,7 @@ static void android_media_MediaDrm_removeSecureStop( status_t err = drm->removeSecureStop(JByteArrayToVector(env, ssid)); throwExceptionAsNecessary(env, err, "Failed to remove secure stop"); throwExceptionAsNecessary(env, drm, err, "Failed to remove secure stop"); } static void android_media_MediaDrm_removeAllSecureStops( Loading @@ -1502,7 +1461,7 @@ static void android_media_MediaDrm_removeAllSecureStops( status_t err = drm->removeAllSecureStops(); throwExceptionAsNecessary(env, err, "Failed to remove all secure stops"); throwExceptionAsNecessary(env, drm, err, "Failed to remove all secure stops"); } Loading Loading @@ -1541,7 +1500,7 @@ static jint android_media_MediaDrm_getConnectedHdcpLevel(JNIEnv *env, status_t err = drm->getHdcpLevels(&connected, &max); if (throwExceptionAsNecessary(env, err, "Failed to get HDCP levels")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get HDCP levels")) { return gHdcpLevels.kHdcpLevelUnknown; } return HdcpLevelTojint(connected); Loading @@ -1560,7 +1519,7 @@ static jint android_media_MediaDrm_getMaxHdcpLevel(JNIEnv *env, status_t err = drm->getHdcpLevels(&connected, &max); if (throwExceptionAsNecessary(env, err, "Failed to get HDCP levels")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get HDCP levels")) { return gHdcpLevels.kHdcpLevelUnknown; } return HdcpLevelTojint(max); Loading @@ -1577,7 +1536,7 @@ static jint android_media_MediaDrm_getOpenSessionCount(JNIEnv *env, uint32_t open = 0, max = 0; status_t err = drm->getNumberOfSessions(&open, &max); if (throwExceptionAsNecessary(env, err, "Failed to get number of sessions")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get number of sessions")) { return 0; } return open; Loading @@ -1594,7 +1553,7 @@ static jint android_media_MediaDrm_getMaxSessionCount(JNIEnv *env, uint32_t open = 0, max = 0; status_t err = drm->getNumberOfSessions(&open, &max); if (throwExceptionAsNecessary(env, err, "Failed to get number of sessions")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get number of sessions")) { return 0; } return max; Loading @@ -1614,7 +1573,7 @@ static jint android_media_MediaDrm_getSecurityLevel(JNIEnv *env, status_t err = drm->getSecurityLevel(sessionId, &level); if (throwExceptionAsNecessary(env, err, "Failed to get security level")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get security level")) { return gSecurityLevels.kSecurityLevelUnknown; } Loading Loading @@ -1646,7 +1605,7 @@ static jobject android_media_MediaDrm_getOfflineLicenseKeySetIds( status_t err = drm->getOfflineLicenseKeySetIds(keySetIds); if (throwExceptionAsNecessary(env, err, "Failed to get offline key set Ids")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get offline key set Ids")) { return NULL; } Loading @@ -1663,7 +1622,7 @@ static void android_media_MediaDrm_removeOfflineLicense( status_t err = drm->removeOfflineLicense(JByteArrayToVector(env, keySetId)); throwExceptionAsNecessary(env, err, "Failed to remove offline license"); throwExceptionAsNecessary(env, drm, err, "Failed to remove offline license"); } static jint android_media_MediaDrm_getOfflineLicenseState(JNIEnv *env, Loading @@ -1680,7 +1639,7 @@ static jint android_media_MediaDrm_getOfflineLicenseState(JNIEnv *env, status_t err = drm->getOfflineLicenseState(keySetId, &state); if (throwExceptionAsNecessary(env, err, "Failed to get offline license state")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get offline license state")) { return gOfflineLicenseStates.kOfflineLicenseStateUnknown; } Loading Loading @@ -1713,7 +1672,7 @@ static jstring android_media_MediaDrm_getPropertyString( status_t err = drm->getPropertyString(name, value); if (throwExceptionAsNecessary(env, err, "Failed to get property")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get property")) { return NULL; } Loading @@ -1739,7 +1698,7 @@ static jbyteArray android_media_MediaDrm_getPropertyByteArray( status_t err = drm->getPropertyByteArray(name, value); if (throwExceptionAsNecessary(env, err, "Failed to get property")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get property")) { return NULL; } Loading Loading @@ -1771,7 +1730,7 @@ static void android_media_MediaDrm_setPropertyString( status_t err = drm->setPropertyString(name, value); throwExceptionAsNecessary(env, err, "Failed to set property"); throwExceptionAsNecessary(env, drm, err, "Failed to set property"); } static void android_media_MediaDrm_setPropertyByteArray( Loading Loading @@ -1799,7 +1758,7 @@ static void android_media_MediaDrm_setPropertyByteArray( status_t err = drm->setPropertyByteArray(name, value); throwExceptionAsNecessary(env, err, "Failed to set property"); throwExceptionAsNecessary(env, drm, err, "Failed to set property"); } static void android_media_MediaDrm_setCipherAlgorithmNative( Loading @@ -1823,7 +1782,7 @@ static void android_media_MediaDrm_setCipherAlgorithmNative( status_t err = drm->setCipherAlgorithm(sessionId, algorithm); throwExceptionAsNecessary(env, err, "Failed to set cipher algorithm"); throwExceptionAsNecessary(env, drm, err, "Failed to set cipher algorithm"); } static void android_media_MediaDrm_setMacAlgorithmNative( Loading @@ -1847,7 +1806,7 @@ static void android_media_MediaDrm_setMacAlgorithmNative( status_t err = drm->setMacAlgorithm(sessionId, algorithm); throwExceptionAsNecessary(env, err, "Failed to set mac algorithm"); throwExceptionAsNecessary(env, drm, err, "Failed to set mac algorithm"); } Loading Loading @@ -1875,7 +1834,7 @@ static jbyteArray android_media_MediaDrm_encryptNative( status_t err = drm->encrypt(sessionId, keyId, input, iv, output); if (throwExceptionAsNecessary(env, err, "Failed to encrypt")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to encrypt")) { return NULL; } Loading Loading @@ -1905,7 +1864,7 @@ static jbyteArray android_media_MediaDrm_decryptNative( Vector<uint8_t> output; status_t err = drm->decrypt(sessionId, keyId, input, iv, output); if (throwExceptionAsNecessary(env, err, "Failed to decrypt")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to decrypt")) { return NULL; } Loading Loading @@ -1935,7 +1894,7 @@ static jbyteArray android_media_MediaDrm_signNative( status_t err = drm->sign(sessionId, keyId, message, signature); if (throwExceptionAsNecessary(env, err, "Failed to sign")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to sign")) { return NULL; } Loading Loading @@ -1966,7 +1925,7 @@ static jboolean android_media_MediaDrm_verifyNative( status_t err = drm->verify(sessionId, keyId, message, signature, match); throwExceptionAsNecessary(env, err, "Failed to verify"); throwExceptionAsNecessary(env, drm, err, "Failed to verify"); return match; } Loading Loading @@ -2015,7 +1974,7 @@ static jbyteArray android_media_MediaDrm_signRSANative( status_t err = drm->signRSA(sessionId, algorithm, message, wrappedKey, signature); if (throwExceptionAsNecessary(env, err, "Failed to sign")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to sign")) { return NULL; } Loading Loading @@ -2062,7 +2021,7 @@ static void android_media_MediaDrm_setPlaybackId( playbackId = JStringToString8(env, jplaybackId); } status_t err = drm->setPlaybackId(sessionId, playbackId.c_str()); throwExceptionAsNecessary(env, err, "Failed to set playbackId"); throwExceptionAsNecessary(env, drm, err, "Failed to set playbackId"); } static jobject android_media_MediaDrm_getLogMessages( Loading @@ -2075,7 +2034,7 @@ static jobject android_media_MediaDrm_getLogMessages( Vector<drm::V1_4::LogMessage> logs; status_t err = drm->getLogMessages(logs); ALOGI("drm->getLogMessages %zu logs", logs.size()); if (throwExceptionAsNecessary(env, err, "Failed to get log messages")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get log messages")) { return NULL; } return hidlLogMessagesToJavaList(env, logs); Loading Loading
media/jni/android_media_MediaDrm.cpp +42 −83 Original line number Diff line number Diff line Loading @@ -422,43 +422,11 @@ static bool isSessionException(status_t err) { } static bool throwExceptionAsNecessary( JNIEnv *env, status_t err, const char *msg = NULL) { const char *drmMessage = NULL; switch (err) { case ERROR_DRM_UNKNOWN: drmMessage = "General DRM error"; break; case ERROR_DRM_NO_LICENSE: drmMessage = "No license"; break; case ERROR_DRM_LICENSE_EXPIRED: drmMessage = "License expired"; break; case ERROR_DRM_SESSION_NOT_OPENED: drmMessage = "Session not opened"; break; case ERROR_DRM_DECRYPT_UNIT_NOT_INITIALIZED: drmMessage = "Not initialized"; break; case ERROR_DRM_DECRYPT: drmMessage = "Decrypt error"; break; case ERROR_DRM_CANNOT_HANDLE: drmMessage = "Invalid parameter or data format"; break; case ERROR_DRM_INVALID_STATE: drmMessage = "Invalid state"; break; default: break; } String8 vendorMessage; if (err >= ERROR_DRM_VENDOR_MIN && err <= ERROR_DRM_VENDOR_MAX) { vendorMessage = String8::format("DRM vendor-defined error: %d", err); drmMessage = vendorMessage.string(); JNIEnv *env, const sp<IDrm> &drm, status_t err, const char *msg = NULL) { std::string msgStr; if (drm != NULL) { msgStr = DrmUtils::GetExceptionMessage(err, msg, drm); msg = msgStr.c_str(); } if (err == BAD_VALUE || err == ERROR_DRM_CANNOT_HANDLE) { Loading @@ -484,15 +452,6 @@ static bool throwExceptionAsNecessary( throwSessionException(env, msg, err); return true; } else if (err != OK) { String8 errbuf; if (drmMessage != NULL) { if (msg == NULL) { msg = drmMessage; } else { errbuf = String8::format("%s: %s", msg, drmMessage); msg = errbuf.string(); } } throwStateException(env, msg, err); return true; } Loading Loading @@ -1090,7 +1049,7 @@ static jboolean android_media_MediaDrm_isCryptoSchemeSupportedNative( status_t err = JDrm::IsCryptoSchemeSupported(uuid.array(), mimeType, securityLevel, &isSupported); if (throwExceptionAsNecessary(env, err, "Failed to query crypto scheme support")) { if (throwExceptionAsNecessary(env, NULL, err, "Failed to query crypto scheme support")) { return false; } return isSupported; Loading @@ -1113,7 +1072,7 @@ static jbyteArray android_media_MediaDrm_openSession( status_t err = drm->openSession(level, sessionId); if (throwExceptionAsNecessary(env, err, "Failed to open session")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to open session")) { return NULL; } Loading @@ -1132,7 +1091,7 @@ static void android_media_MediaDrm_closeSession( status_t err = drm->closeSession(sessionId); throwExceptionAsNecessary(env, err, "Failed to close session"); throwExceptionAsNecessary(env, drm, err, "Failed to close session"); } static jobject android_media_MediaDrm_getKeyRequest( Loading Loading @@ -1185,7 +1144,7 @@ static jobject android_media_MediaDrm_getKeyRequest( status_t err = drm->getKeyRequest(sessionId, initData, mimeType, keyType, optParams, request, defaultUrl, &keyRequestType); if (throwExceptionAsNecessary(env, err, "Failed to get key request")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get key request")) { return NULL; } Loading Loading @@ -1255,7 +1214,7 @@ static jbyteArray android_media_MediaDrm_provideKeyResponse( status_t err = drm->provideKeyResponse(sessionId, response, keySetId); if (throwExceptionAsNecessary(env, err, "Failed to handle key response")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to handle key response")) { return NULL; } return VectorToJByteArray(env, keySetId); Loading @@ -1279,7 +1238,7 @@ static void android_media_MediaDrm_removeKeys( status_t err = drm->removeKeys(keySetId); throwExceptionAsNecessary(env, err, "Failed to remove keys"); throwExceptionAsNecessary(env, drm, err, "Failed to remove keys"); } static void android_media_MediaDrm_restoreKeys( Loading @@ -1302,7 +1261,7 @@ static void android_media_MediaDrm_restoreKeys( status_t err = drm->restoreKeys(sessionId, keySetId); throwExceptionAsNecessary(env, err, "Failed to restore keys"); throwExceptionAsNecessary(env, drm, err, "Failed to restore keys"); } static jobject android_media_MediaDrm_queryKeyStatus( Loading @@ -1318,7 +1277,7 @@ static jobject android_media_MediaDrm_queryKeyStatus( status_t err = drm->queryKeyStatus(sessionId, infoMap); if (throwExceptionAsNecessary(env, err, "Failed to query key status")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to query key status")) { return NULL; } Loading Loading @@ -1348,7 +1307,7 @@ static jobject android_media_MediaDrm_getProvisionRequestNative( String8 certAuthority = JStringToString8(env, jcertAuthority); status_t err = drm->getProvisionRequest(certType, certAuthority, request, defaultUrl); if (throwExceptionAsNecessary(env, err, "Failed to get provision request")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get provision request")) { return NULL; } Loading Loading @@ -1403,7 +1362,7 @@ static jobject android_media_MediaDrm_provideProvisionResponseNative( env->SetObjectField(certificateObj, gFields.certificate.wrappedPrivateKey, jwrappedKey); } throwExceptionAsNecessary(env, err, "Failed to handle provision response"); throwExceptionAsNecessary(env, drm, err, "Failed to handle provision response"); return certificateObj; } Loading @@ -1419,7 +1378,7 @@ static jobject android_media_MediaDrm_getSecureStops( status_t err = drm->getSecureStops(secureStops); if (throwExceptionAsNecessary(env, err, "Failed to get secure stops")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get secure stops")) { return NULL; } Loading @@ -1438,7 +1397,7 @@ static jobject android_media_MediaDrm_getSecureStopIds( status_t err = drm->getSecureStopIds(secureStopIds); if (throwExceptionAsNecessary(env, err, "Failed to get secure stop Ids")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get secure stop Ids")) { return NULL; } Loading @@ -1457,7 +1416,7 @@ static jbyteArray android_media_MediaDrm_getSecureStop( status_t err = drm->getSecureStop(JByteArrayToVector(env, ssid), secureStop); if (throwExceptionAsNecessary(env, err, "Failed to get secure stop")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get secure stop")) { return NULL; } Loading @@ -1476,7 +1435,7 @@ static void android_media_MediaDrm_releaseSecureStops( status_t err = drm->releaseSecureStops(ssRelease); throwExceptionAsNecessary(env, err, "Failed to release secure stops"); throwExceptionAsNecessary(env, drm, err, "Failed to release secure stops"); } static void android_media_MediaDrm_removeSecureStop( Loading @@ -1489,7 +1448,7 @@ static void android_media_MediaDrm_removeSecureStop( status_t err = drm->removeSecureStop(JByteArrayToVector(env, ssid)); throwExceptionAsNecessary(env, err, "Failed to remove secure stop"); throwExceptionAsNecessary(env, drm, err, "Failed to remove secure stop"); } static void android_media_MediaDrm_removeAllSecureStops( Loading @@ -1502,7 +1461,7 @@ static void android_media_MediaDrm_removeAllSecureStops( status_t err = drm->removeAllSecureStops(); throwExceptionAsNecessary(env, err, "Failed to remove all secure stops"); throwExceptionAsNecessary(env, drm, err, "Failed to remove all secure stops"); } Loading Loading @@ -1541,7 +1500,7 @@ static jint android_media_MediaDrm_getConnectedHdcpLevel(JNIEnv *env, status_t err = drm->getHdcpLevels(&connected, &max); if (throwExceptionAsNecessary(env, err, "Failed to get HDCP levels")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get HDCP levels")) { return gHdcpLevels.kHdcpLevelUnknown; } return HdcpLevelTojint(connected); Loading @@ -1560,7 +1519,7 @@ static jint android_media_MediaDrm_getMaxHdcpLevel(JNIEnv *env, status_t err = drm->getHdcpLevels(&connected, &max); if (throwExceptionAsNecessary(env, err, "Failed to get HDCP levels")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get HDCP levels")) { return gHdcpLevels.kHdcpLevelUnknown; } return HdcpLevelTojint(max); Loading @@ -1577,7 +1536,7 @@ static jint android_media_MediaDrm_getOpenSessionCount(JNIEnv *env, uint32_t open = 0, max = 0; status_t err = drm->getNumberOfSessions(&open, &max); if (throwExceptionAsNecessary(env, err, "Failed to get number of sessions")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get number of sessions")) { return 0; } return open; Loading @@ -1594,7 +1553,7 @@ static jint android_media_MediaDrm_getMaxSessionCount(JNIEnv *env, uint32_t open = 0, max = 0; status_t err = drm->getNumberOfSessions(&open, &max); if (throwExceptionAsNecessary(env, err, "Failed to get number of sessions")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get number of sessions")) { return 0; } return max; Loading @@ -1614,7 +1573,7 @@ static jint android_media_MediaDrm_getSecurityLevel(JNIEnv *env, status_t err = drm->getSecurityLevel(sessionId, &level); if (throwExceptionAsNecessary(env, err, "Failed to get security level")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get security level")) { return gSecurityLevels.kSecurityLevelUnknown; } Loading Loading @@ -1646,7 +1605,7 @@ static jobject android_media_MediaDrm_getOfflineLicenseKeySetIds( status_t err = drm->getOfflineLicenseKeySetIds(keySetIds); if (throwExceptionAsNecessary(env, err, "Failed to get offline key set Ids")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get offline key set Ids")) { return NULL; } Loading @@ -1663,7 +1622,7 @@ static void android_media_MediaDrm_removeOfflineLicense( status_t err = drm->removeOfflineLicense(JByteArrayToVector(env, keySetId)); throwExceptionAsNecessary(env, err, "Failed to remove offline license"); throwExceptionAsNecessary(env, drm, err, "Failed to remove offline license"); } static jint android_media_MediaDrm_getOfflineLicenseState(JNIEnv *env, Loading @@ -1680,7 +1639,7 @@ static jint android_media_MediaDrm_getOfflineLicenseState(JNIEnv *env, status_t err = drm->getOfflineLicenseState(keySetId, &state); if (throwExceptionAsNecessary(env, err, "Failed to get offline license state")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get offline license state")) { return gOfflineLicenseStates.kOfflineLicenseStateUnknown; } Loading Loading @@ -1713,7 +1672,7 @@ static jstring android_media_MediaDrm_getPropertyString( status_t err = drm->getPropertyString(name, value); if (throwExceptionAsNecessary(env, err, "Failed to get property")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get property")) { return NULL; } Loading @@ -1739,7 +1698,7 @@ static jbyteArray android_media_MediaDrm_getPropertyByteArray( status_t err = drm->getPropertyByteArray(name, value); if (throwExceptionAsNecessary(env, err, "Failed to get property")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get property")) { return NULL; } Loading Loading @@ -1771,7 +1730,7 @@ static void android_media_MediaDrm_setPropertyString( status_t err = drm->setPropertyString(name, value); throwExceptionAsNecessary(env, err, "Failed to set property"); throwExceptionAsNecessary(env, drm, err, "Failed to set property"); } static void android_media_MediaDrm_setPropertyByteArray( Loading Loading @@ -1799,7 +1758,7 @@ static void android_media_MediaDrm_setPropertyByteArray( status_t err = drm->setPropertyByteArray(name, value); throwExceptionAsNecessary(env, err, "Failed to set property"); throwExceptionAsNecessary(env, drm, err, "Failed to set property"); } static void android_media_MediaDrm_setCipherAlgorithmNative( Loading @@ -1823,7 +1782,7 @@ static void android_media_MediaDrm_setCipherAlgorithmNative( status_t err = drm->setCipherAlgorithm(sessionId, algorithm); throwExceptionAsNecessary(env, err, "Failed to set cipher algorithm"); throwExceptionAsNecessary(env, drm, err, "Failed to set cipher algorithm"); } static void android_media_MediaDrm_setMacAlgorithmNative( Loading @@ -1847,7 +1806,7 @@ static void android_media_MediaDrm_setMacAlgorithmNative( status_t err = drm->setMacAlgorithm(sessionId, algorithm); throwExceptionAsNecessary(env, err, "Failed to set mac algorithm"); throwExceptionAsNecessary(env, drm, err, "Failed to set mac algorithm"); } Loading Loading @@ -1875,7 +1834,7 @@ static jbyteArray android_media_MediaDrm_encryptNative( status_t err = drm->encrypt(sessionId, keyId, input, iv, output); if (throwExceptionAsNecessary(env, err, "Failed to encrypt")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to encrypt")) { return NULL; } Loading Loading @@ -1905,7 +1864,7 @@ static jbyteArray android_media_MediaDrm_decryptNative( Vector<uint8_t> output; status_t err = drm->decrypt(sessionId, keyId, input, iv, output); if (throwExceptionAsNecessary(env, err, "Failed to decrypt")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to decrypt")) { return NULL; } Loading Loading @@ -1935,7 +1894,7 @@ static jbyteArray android_media_MediaDrm_signNative( status_t err = drm->sign(sessionId, keyId, message, signature); if (throwExceptionAsNecessary(env, err, "Failed to sign")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to sign")) { return NULL; } Loading Loading @@ -1966,7 +1925,7 @@ static jboolean android_media_MediaDrm_verifyNative( status_t err = drm->verify(sessionId, keyId, message, signature, match); throwExceptionAsNecessary(env, err, "Failed to verify"); throwExceptionAsNecessary(env, drm, err, "Failed to verify"); return match; } Loading Loading @@ -2015,7 +1974,7 @@ static jbyteArray android_media_MediaDrm_signRSANative( status_t err = drm->signRSA(sessionId, algorithm, message, wrappedKey, signature); if (throwExceptionAsNecessary(env, err, "Failed to sign")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to sign")) { return NULL; } Loading Loading @@ -2062,7 +2021,7 @@ static void android_media_MediaDrm_setPlaybackId( playbackId = JStringToString8(env, jplaybackId); } status_t err = drm->setPlaybackId(sessionId, playbackId.c_str()); throwExceptionAsNecessary(env, err, "Failed to set playbackId"); throwExceptionAsNecessary(env, drm, err, "Failed to set playbackId"); } static jobject android_media_MediaDrm_getLogMessages( Loading @@ -2075,7 +2034,7 @@ static jobject android_media_MediaDrm_getLogMessages( Vector<drm::V1_4::LogMessage> logs; status_t err = drm->getLogMessages(logs); ALOGI("drm->getLogMessages %zu logs", logs.size()); if (throwExceptionAsNecessary(env, err, "Failed to get log messages")) { if (throwExceptionAsNecessary(env, drm, err, "Failed to get log messages")) { return NULL; } return hidlLogMessagesToJavaList(env, logs); Loading