From 418f4b0e607316b90be54b3d0f3c09dddc3e59b6 Mon Sep 17 00:00:00 2001 From: Jeff Tinker Date: Tue, 21 May 2013 15:20:58 -0700 Subject: [PATCH] License property for company_name should come from device on android The company_name was hardcoded in the CDM as "Google" for all devices. On Android, it needs to come from the ro.product.manufacturer system property. bug: 9074091 This is a merge of https://widevine-internal-review.googlesource.com/#/c/5730/ from the Widevine CDM repository. Change-Id: Ia3ae82abf350c32ba8b4d05b59e95361927dea40 --- libwvdrmengine/cdm/core/include/properties.h | 1 + libwvdrmengine/cdm/core/src/license.cpp | 9 +++++---- libwvdrmengine/cdm/src/properties.cpp | 4 ++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/libwvdrmengine/cdm/core/include/properties.h b/libwvdrmengine/cdm/core/include/properties.h index 8bc838ed..b7af2f70 100644 --- a/libwvdrmengine/cdm/core/include/properties.h +++ b/libwvdrmengine/cdm/core/include/properties.h @@ -39,6 +39,7 @@ class Properties { static inline bool use_certificates_as_identification() { return use_certificates_as_identification_; } + static bool GetCompanyName(std::string& company_name); static bool GetModelName(std::string& model_name); static bool GetArchitectureName(std::string& arch_name); static bool GetDeviceName(std::string& device_name); diff --git a/libwvdrmengine/cdm/core/src/license.cpp b/libwvdrmengine/cdm/core/src/license.cpp index cf4f8520..893d916f 100644 --- a/libwvdrmengine/cdm/core/src/license.cpp +++ b/libwvdrmengine/cdm/core/src/license.cpp @@ -14,7 +14,6 @@ namespace { std::string kCompanyNameKey = "company_name"; - std::string kCompanyNameValueGoogle = "Google"; std::string kModelNameKey = "model_name"; std::string kArchitectureNameKey = "architecture_name"; std::string kDeviceNameKey = "device_name"; @@ -136,9 +135,11 @@ bool CdmLicense::PrepareKeyRequest(const CdmInitData& init_data, client_info->set_value(iter->second); } std::string value; - client_info = client_id->add_client_info(); - client_info->set_name(kCompanyNameKey); - client_info->set_value(kCompanyNameValueGoogle); + if (Properties::GetCompanyName(value)) { + client_info = client_id->add_client_info(); + client_info->set_name(kCompanyNameKey); + client_info->set_value(value); + } if (Properties::GetModelName(value)) { client_info = client_id->add_client_info(); client_info->set_name(kModelNameKey); diff --git a/libwvdrmengine/cdm/src/properties.cpp b/libwvdrmengine/cdm/src/properties.cpp index 5489decb..80f44a3b 100644 --- a/libwvdrmengine/cdm/src/properties.cpp +++ b/libwvdrmengine/cdm/src/properties.cpp @@ -19,6 +19,10 @@ namespace { namespace wvcdm { +bool Properties::GetCompanyName(std::string& company_name) { + return GetAndroidProperty("ro.product.manufacturer", company_name); +} + bool Properties::GetModelName(std::string& model_name) { return GetAndroidProperty("ro.product.model", model_name); }