diff --git a/libwvdrmengine/mediadrm/include_hidl/WVDrmPlugin.h b/libwvdrmengine/mediadrm/include_hidl/WVDrmPlugin.h index e5aaba3e..12b0388a 100644 --- a/libwvdrmengine/mediadrm/include_hidl/WVDrmPlugin.h +++ b/libwvdrmengine/mediadrm/include_hidl/WVDrmPlugin.h @@ -425,6 +425,8 @@ struct WVDrmPlugin : public IDrmPlugin, IDrmPluginListener, wvcdm::CdmSessionId mDecryptHashSessionId; + std::string mAppPackageName; + Status queryProperty(const std::string& property, std::string& stringValue) const; diff --git a/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp b/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp index 2c9abf0a..44b68c79 100644 --- a/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp +++ b/libwvdrmengine/mediadrm/src_hidl/WVDrmPlugin.cpp @@ -33,6 +33,7 @@ static const char* const kEnable = "enable"; static const char* const kDisable = "disable"; static const std::string kPsshTag = "pssh"; static const char* const kSpecialUnprovisionResponse = "unprovision"; +static const std::string kKeyAppPackageName = "application_name"; } // namespace @@ -192,7 +193,8 @@ WVDrmPlugin::WVDrmPlugin(const sp& cdm, : mCdmIdentifierBuilder(useSpoid, *this, appPackageName), mCDM(cdm), mCrypto(crypto), - mCryptoSessions() {} + mCryptoSessions(), + mAppPackageName(appPackageName) {} WVDrmPlugin::~WVDrmPlugin() { typedef map::iterator mapIterator; @@ -515,6 +517,10 @@ Return WVDrmPlugin::getKeyRequest_1_2( cdmParameters[cdmKey] = cdmValue; } + // Inserting application name into parameters. This will overwrite user + // parameters of the same key. + cdmParameters[kKeyAppPackageName] = mAppPackageName; + CdmKeyRequest keyRequest; CdmResponseType res = mCDM->GenerateKeyRequest( cdmSessionId, cdmKeySetId, cdmInitDataType, processedInitData,