From 87d58f85c14ef567c2be6af5b8459e1132b6a92b Mon Sep 17 00:00:00 2001 From: Jeff Tinker Date: Thu, 18 Jan 2018 23:47:53 -0800 Subject: [PATCH 1/3] Fix compile errors related to adding new MediaDrm methods bug:64001680 bug:33657579 Change-Id: I67cabf96b03c2217df6772fed18ce2cab3d9f625 --- libwvdrmengine/mediadrm/src/WVDrmPlugin.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libwvdrmengine/mediadrm/src/WVDrmPlugin.cpp b/libwvdrmengine/mediadrm/src/WVDrmPlugin.cpp index aea51dcf..169e7949 100644 --- a/libwvdrmengine/mediadrm/src/WVDrmPlugin.cpp +++ b/libwvdrmengine/mediadrm/src/WVDrmPlugin.cpp @@ -923,14 +923,14 @@ void WVDrmPlugin::OnExpirationUpdate(const CdmSessionId& cdmSessionId, status_t WVDrmPlugin::queryProperty(const std::string& property, std::string& stringValue) const { - SecurityLevel securityLevel = + wvcdm::SecurityLevel securityLevel = mPropertySet.security_level().compare(QUERY_VALUE_SECURITY_LEVEL_L3) == 0 ? kLevel3 : kLevelDefault; return queryProperty(securityLevel, property, stringValue); } -status_t WVDrmPlugin::queryProperty(SecurityLevel securityLevel, +status_t WVDrmPlugin::queryProperty(wvcdm::SecurityLevel securityLevel, const std::string& property, std::string& stringValue) const { CdmResponseType res = From bd45d4f0fad801e57d074fe51275a1c583d8c275 Mon Sep 17 00:00:00 2001 From: Rahul Frias Date: Fri, 19 Jan 2018 17:10:33 -0800 Subject: [PATCH 2/3] Allow use of cached initialization data [ Merge of http://go/wvgerrit/41340 ] An initial license request may actually result in a service certificate request. Once the service certificate has been successfully handled, an app may make a license request without needing to provide the initialization data again. This behavior was broken in a recent merge. Correcting the test as well. b/72182032 Test: Ran wv unit/integration tests Change-Id: I82401b9a3bf38140706dad859b4ae241b7ddac12 --- libwvdrmengine/cdm/core/src/cdm_session.cpp | 2 +- libwvdrmengine/cdm/test/request_license_test.cpp | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libwvdrmengine/cdm/core/src/cdm_session.cpp b/libwvdrmengine/cdm/core/src/cdm_session.cpp index 67cea885..15b25bee 100644 --- a/libwvdrmengine/cdm/core/src/cdm_session.cpp +++ b/libwvdrmengine/cdm/core/src/cdm_session.cpp @@ -372,7 +372,7 @@ CdmResponseType CdmSession::GenerateKeyRequest( init_data.type().c_str()); return UNSUPPORTED_INIT_DATA; } - if (init_data.IsEmpty()) { + if (init_data.IsEmpty() && !license_parser_->HasInitData()) { LOGW("CdmSession::GenerateKeyRequest: init data absent"); return INIT_DATA_NOT_FOUND; } diff --git a/libwvdrmengine/cdm/test/request_license_test.cpp b/libwvdrmengine/cdm/test/request_license_test.cpp index 270c5e0a..90a2029d 100644 --- a/libwvdrmengine/cdm/test/request_license_test.cpp +++ b/libwvdrmengine/cdm/test/request_license_test.cpp @@ -1639,7 +1639,10 @@ TEST_F(WvCdmRequestLicenseTest, PrivacyModeTest) { std::string resp = GetKeyRequestResponse(g_license_server, g_client_auth); EXPECT_EQ(decryptor_.AddKey(session_id_, resp, &key_set_id_), wvcdm::NEED_KEY); - GenerateKeyRequest(g_key_id, kLicenseTypeStreaming); + const std::string empty_init_data; + // Verify cached initialization data from previous request is used when + // empty initialization data is passed. + GenerateKeyRequest(empty_init_data, kLicenseTypeStreaming); VerifyKeyRequestResponse(g_license_server, g_client_auth); decryptor_.CloseSession(session_id_); } From 0fc6e5a9b3447274dd4b1196dbbbfaee31fd0609 Mon Sep 17 00:00:00 2001 From: Rahul Frias Date: Sun, 21 Jan 2018 11:47:40 -0800 Subject: [PATCH 3/3] Update CDM version number for android Pi [ Merge of http://go/wvgerrit/41360 ] Bug: 72239183 Test: wv unit/integration tests on taimen. Change-Id: I7b093fbef6493e336e04f2b4eb162d5333636692 --- libwvdrmengine/cdm/src/properties_android.cpp | 2 +- libwvdrmengine/cdm/test/request_license_test.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libwvdrmengine/cdm/src/properties_android.cpp b/libwvdrmengine/cdm/src/properties_android.cpp index 84543e7c..1a84e64f 100644 --- a/libwvdrmengine/cdm/src/properties_android.cpp +++ b/libwvdrmengine/cdm/src/properties_android.cpp @@ -19,7 +19,7 @@ const char kL2Dir[] = "/L2/"; const char kL3Dir[] = "/L3/"; const char kFactoryKeyboxPath[] = "/factory/wv.keys"; -const char kWVCdmVersion[] = "v5.1.0-android"; +const char kWVCdmVersion[] = "v6.0.0-android"; bool GetAndroidProperty(const char* key, std::string* value) { char val[PROPERTY_VALUE_MAX]; diff --git a/libwvdrmengine/cdm/test/request_license_test.cpp b/libwvdrmengine/cdm/test/request_license_test.cpp index 270c5e0a..86e46623 100644 --- a/libwvdrmengine/cdm/test/request_license_test.cpp +++ b/libwvdrmengine/cdm/test/request_license_test.cpp @@ -3545,14 +3545,14 @@ TEST(VersionNumberTest, VersionNumberChangeCanary) { char release_number[PROPERTY_VALUE_MAX]; ASSERT_GT(property_get("ro.build.version.release", release_number, "Unknown"), 0); - EXPECT_STREQ("8.1.0", release_number) + EXPECT_STREQ("P", release_number) << "The Android version number has changed. You need to update this test " "and also possibly update the Widevine version number in " "properties_android.cpp."; std::string widevine_version; ASSERT_TRUE(Properties::GetWVCdmVersion(&widevine_version)); - EXPECT_EQ("v5.1.0-android", widevine_version) + EXPECT_EQ("v6.0.0-android", widevine_version) << "The Widevine CDM version number has changed. Did you forget to " "update this test after changing it?"; }