diff --git a/libwvdrmengine/mediadrm/Android.bp b/libwvdrmengine/mediadrm/Android.bp index 0a53618e..5841e70f 100644 --- a/libwvdrmengine/mediadrm/Android.bp +++ b/libwvdrmengine/mediadrm/Android.bp @@ -52,7 +52,10 @@ cc_library_static { "libutils_headers", ], - static_libs: ["libcdm_protos"], + static_libs: [ + "lib_apex_manifest_minimal_proto_lite", + "libcdm_protos", + ], shared_libs: [ "libbase", diff --git a/libwvdrmengine/mediadrm/src/WVDrmPlugin.cpp b/libwvdrmengine/mediadrm/src/WVDrmPlugin.cpp index 1a16f6cb..ba8df0d6 100644 --- a/libwvdrmengine/mediadrm/src/WVDrmPlugin.cpp +++ b/libwvdrmengine/mediadrm/src/WVDrmPlugin.cpp @@ -27,6 +27,7 @@ #include "media/stagefright/MediaErrors.h" #include "openssl/sha.h" #include "string_conversions.h" +#include "widevine_apex_info.h" #include "wv_cdm_constants.h" #include "wv_metrics.pb.h" #include "wv_metrics_adapter.h" @@ -1063,7 +1064,18 @@ Status WVDrmPlugin::unprovisionDevice() { std::string value; if (name == "vendor") { +#ifdef __ANDROID_APEX__ + auto info = ::widevine::apex::GetApexInfo(); + if (info.ok()) { + value = info->name; + } else { + auto err = info.error(); + ALOGW("apex info error %d: %s", err.code().value(), err.message().c_str()); + value = "Google"; + } +#else value = "Google"; +#endif } else if (name == "version") { status = queryProperty(wvcdm::QUERY_KEY_WVCDM_VERSION, value); } else if (name == "description") {