Add property to query SRM support and version.
Merge from http://go/wvgerrit/29800 Add QUERY_KEY_CURRENT_SRM_VERSION and QUERY_KEY_SRM_UPDATE_SUPPORT. Test: run unit test adb push $OUT/marlin/data/bin/libwvdrmdrmplugin_hidl_test /vendor/bin/. adb shell LD_LIBRARY_PATH="/vendor/lib/mediadrm" \ /vendor/bin/libwvdrmdrmplugin_hidl_test bug: 63390310 Change-Id: Ie51056d22178565bd7b987aa901f7b7616d29328
This commit is contained in:
@@ -519,6 +519,10 @@ status_t WVDrmPlugin::getPropertyString(const String8& name,
|
||||
value = mPropertySet.app_id().c_str();
|
||||
} else if (name == "origin") {
|
||||
value = mCdmIdentifier.origin.c_str();
|
||||
} else if (name == "CurrentSRMVersion") {
|
||||
return queryProperty(QUERY_KEY_CURRENT_SRM_VERSION, value);
|
||||
} else if (name == "SRMUpdateSupport") {
|
||||
return queryProperty(QUERY_KEY_SRM_UPDATE_SUPPORT, value);
|
||||
} else {
|
||||
ALOGE("App requested unknown string property %s", name.string());
|
||||
return android::ERROR_DRM_CANNOT_HANDLE;
|
||||
|
||||
@@ -683,6 +683,10 @@ Return<void> WVDrmPlugin::getPropertyString(const hidl_string& propertyName,
|
||||
value = mPropertySet.app_id().c_str();
|
||||
} else if (name == "origin") {
|
||||
value = mCdmIdentifierBuilder.origin().c_str();
|
||||
} else if (name == "CurrentSRMVersion") {
|
||||
status = queryProperty(wvcdm::QUERY_KEY_CURRENT_SRM_VERSION, value);
|
||||
} else if (name == "SRMUpdateSupport") {
|
||||
status = queryProperty(wvcdm::QUERY_KEY_SRM_UPDATE_SUPPORT, value);
|
||||
} else {
|
||||
ALOGE("App requested unknown string property %s", name.c_str());
|
||||
status = android::ERROR_DRM_CANNOT_HANDLE;
|
||||
|
||||
@@ -93,6 +93,7 @@ using wvcdm::KEY_ID_SIZE;
|
||||
using wvcdm::KEY_IV_SIZE;
|
||||
using wvcdm::KEY_SET_ID_PREFIX;
|
||||
using wvcdm::NEVER_EXPIRES;
|
||||
using wvcdm::QUERY_KEY_CURRENT_SRM_VERSION;
|
||||
using wvcdm::QUERY_KEY_DEVICE_ID;
|
||||
using wvcdm::QUERY_KEY_MAX_NUMBER_OF_SESSIONS;
|
||||
using wvcdm::QUERY_KEY_NUMBER_OF_OPEN_SESSIONS;
|
||||
@@ -100,6 +101,7 @@ using wvcdm::QUERY_KEY_OEMCRYPTO_API_VERSION;
|
||||
using wvcdm::QUERY_KEY_OEMCRYPTO_SESSION_ID;
|
||||
using wvcdm::QUERY_KEY_PROVISIONING_ID;
|
||||
using wvcdm::QUERY_KEY_SECURITY_LEVEL;
|
||||
using wvcdm::QUERY_KEY_SRM_UPDATE_SUPPORT;
|
||||
using wvcdm::QUERY_KEY_SYSTEM_ID;
|
||||
using wvcdm::QUERY_VALUE_SECURITY_LEVEL_L1;
|
||||
using wvcdm::QUERY_VALUE_SECURITY_LEVEL_L3;
|
||||
@@ -1056,6 +1058,7 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
|
||||
static const std::string openSessions = "42";
|
||||
static const std::string maxSessions = "54";
|
||||
static const std::string oemCryptoApiVersion = "13";
|
||||
static const std::string currentSRMVersion = "1";
|
||||
std::string serializedMetrics(
|
||||
kSerializedMetrics, kSerializedMetrics + sizeof(kSerializedMetrics));
|
||||
|
||||
@@ -1089,6 +1092,14 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
|
||||
.WillOnce(DoAll(SetArgPointee<2>(oemCryptoApiVersion),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*cdm, QueryStatus(_, QUERY_KEY_SRM_UPDATE_SUPPORT, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>("True"),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*cdm, QueryStatus(_, QUERY_KEY_CURRENT_SRM_VERSION, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(currentSRMVersion),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*cdm, GetSerializedMetrics(_))
|
||||
.WillOnce(SetArgPointee<0>(serializedMetrics));
|
||||
|
||||
@@ -1176,7 +1187,21 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
|
||||
hidl_string("oemCryptoApiVersion"),
|
||||
[&](Status status, hidl_string stringResult) {
|
||||
ASSERT_EQ(Status::OK, status);
|
||||
EXPECT_EQ(oemCryptoApiVersion, stringResult.c_str());
|
||||
EXPECT_STREQ(oemCryptoApiVersion.c_str(), stringResult.c_str());
|
||||
});
|
||||
|
||||
plugin.getPropertyString(
|
||||
hidl_string("SRMUpdateSupport"),
|
||||
[&](Status status, hidl_string stringResult) {
|
||||
ASSERT_EQ(Status::OK, status);
|
||||
EXPECT_STREQ("True", stringResult.c_str());
|
||||
});
|
||||
|
||||
plugin.getPropertyString(
|
||||
hidl_string("CurrentSRMVersion"),
|
||||
[&](Status status, hidl_string stringResult) {
|
||||
ASSERT_EQ(Status::OK, status);
|
||||
EXPECT_STREQ(currentSRMVersion.c_str(), stringResult.c_str());
|
||||
});
|
||||
|
||||
plugin.getPropertyByteArray(
|
||||
|
||||
@@ -848,6 +848,7 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
|
||||
static const string openSessions = "15";
|
||||
static const string maxSessions = "18";
|
||||
static const string oemCryptoApiVersion = "10";
|
||||
static const string currentSRMVersion = "1";
|
||||
string serializedMetrics(kSerializedMetrics,
|
||||
kSerializedMetrics + sizeof(kSerializedMetrics));
|
||||
|
||||
@@ -881,6 +882,14 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
|
||||
.WillOnce(DoAll(SetArgPointee<2>(oemCryptoApiVersion),
|
||||
Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*cdm, QueryStatus(_, QUERY_KEY_SRM_UPDATE_SUPPORT, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>("True"),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*cdm, QueryStatus(_, QUERY_KEY_CURRENT_SRM_VERSION, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(currentSRMVersion),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
EXPECT_CALL(*cdm, GetSerializedMetrics(_))
|
||||
.WillOnce(SetArgPointee<0>(serializedMetrics));
|
||||
|
||||
@@ -934,7 +943,15 @@ TEST_F(WVDrmPluginTest, ReturnsExpectedPropertyValues) {
|
||||
|
||||
res = plugin.getPropertyString(String8("oemCryptoApiVersion"), stringResult);
|
||||
ASSERT_EQ(OK, res);
|
||||
EXPECT_EQ(oemCryptoApiVersion, stringResult.string());
|
||||
EXPECT_STREQ(oemCryptoApiVersion.c_str(), stringResult.string());
|
||||
|
||||
res = plugin.getPropertyString(String8("SRMUpdateSupport"), stringResult);
|
||||
ASSERT_EQ(OK, res);
|
||||
EXPECT_STREQ("True", stringResult.string());
|
||||
|
||||
res = plugin.getPropertyString(String8("CurrentSRMVersion"), stringResult);
|
||||
ASSERT_EQ(OK, res);
|
||||
EXPECT_STREQ(currentSRMVersion.c_str(), stringResult.string());
|
||||
|
||||
vectorResult.clear();
|
||||
res = plugin.getPropertyByteArray(String8("metrics"), vectorResult);
|
||||
|
||||
Reference in New Issue
Block a user