diff --git a/libwvdrmengine/apex/Android.bp b/libwvdrmengine/apex/Android.bp index d36d951f..e7d035f8 100644 --- a/libwvdrmengine/apex/Android.bp +++ b/libwvdrmengine/apex/Android.bp @@ -65,7 +65,6 @@ apex { manifest: "apex_manifest.json", prebuilts: [ "com.google.android.widevine.rc", - "widevine-linker-config", "com.google.android.widevine.xml", // etc/vintf ], defaults: [ @@ -83,12 +82,6 @@ apex { ], } -linker_config { - name: "widevine-linker-config", - src: "linker.config.json", - installable: false, -} - apex_key { name: "com.google.android.widevine.key", public_key: "com.google.android.widevine.avbpubkey", diff --git a/libwvdrmengine/apex/apex_manifest.json b/libwvdrmengine/apex/apex_manifest.json index c6d18914..84f6795a 100644 --- a/libwvdrmengine/apex/apex_manifest.json +++ b/libwvdrmengine/apex/apex_manifest.json @@ -1,4 +1,7 @@ { "name": "com.google.android.widevine", - "version": 1 + "version": 1, + "requireNativeLibs": [ + "liboemcrypto.so" + ] } \ No newline at end of file diff --git a/libwvdrmengine/apex/device/Android.bp b/libwvdrmengine/apex/device/Android.bp new file mode 100644 index 00000000..33a9fb02 --- /dev/null +++ b/libwvdrmengine/apex/device/Android.bp @@ -0,0 +1,5 @@ +linker_config { + name: "widevine_linker_config", + src: "linker.config.json", + vendor: true, +} \ No newline at end of file diff --git a/libwvdrmengine/apex/device/device.mk b/libwvdrmengine/apex/device/device.mk new file mode 100644 index 00000000..bb830a0e --- /dev/null +++ b/libwvdrmengine/apex/device/device.mk @@ -0,0 +1,10 @@ +PRODUCT_PACKAGES += \ + com.google.android.widevine \ + +# Check if we can use dev keys +ifneq ($(wildcard vendor/google/dev-keystore),) +$(call soong_config_set,widevine,use_devkey,true) +endif + +PRODUCT_PACKAGES += \ + widevine_linker_config \ No newline at end of file diff --git a/libwvdrmengine/apex/device/linker.config.json b/libwvdrmengine/apex/device/linker.config.json new file mode 100644 index 00000000..e5599061 --- /dev/null +++ b/libwvdrmengine/apex/device/linker.config.json @@ -0,0 +1,5 @@ +{ + "provideLibs": [ + "liboemcrypto.so" + ] +} \ No newline at end of file diff --git a/libwvdrmengine/apex/linker.config.json b/libwvdrmengine/apex/linker.config.json deleted file mode 100644 index ccf5e05e..00000000 --- a/libwvdrmengine/apex/linker.config.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "permittedPaths": ["/vendor/${LIB}"] -} \ No newline at end of file diff --git a/libwvdrmengine/cdm/core/src/oemcrypto_adapter_dynamic.cpp b/libwvdrmengine/cdm/core/src/oemcrypto_adapter_dynamic.cpp index 760ec0c4..d674fc61 100644 --- a/libwvdrmengine/cdm/core/src/oemcrypto_adapter_dynamic.cpp +++ b/libwvdrmengine/cdm/core/src/oemcrypto_adapter_dynamic.cpp @@ -849,16 +849,15 @@ class Adapter { wvcdm::metrics::OEMCrypto_INITIALIZED_USING_L3_NO_L1_LIBRARY_PATH); return result; } - if (level1_library_ == nullptr) { + if (!level1_library_) { for (auto& name : library_names) { level1_library_ = dlopen((name.c_str()), RTLD_NOW); - if (level1_library_) { - LOGV("Using oemcrypto path %s", name.c_str()); - break; + if (!level1_library_) { + LOGW("Could not load oemcrypto from path %s. %s", name.c_str(), dlerror()); } } - if (level1_library_ == nullptr) { - LOGW("Could not load oemcrypto. Falling back to L3. %s", dlerror()); + if (!level1_library_) { + LOGW("Could not load oemcrypto. Falling back to L3."); metrics.OemCryptoDynamicAdapterMetrics::SetInitializationMode( wvcdm::metrics::OEMCrypto_INITIALIZED_USING_L3_L1_OPEN_FAILED); return result; diff --git a/libwvdrmengine/cdm/src/properties_android.cpp b/libwvdrmengine/cdm/src/properties_android.cpp index 473cc328..b6a563cb 100644 --- a/libwvdrmengine/cdm/src/properties_android.cpp +++ b/libwvdrmengine/cdm/src/properties_android.cpp @@ -180,18 +180,9 @@ bool Properties::GetOEMCryptoPaths(std::vector* library_names) { LOGW("Properties::GetOEMCryptoPath: Invalid parameter"); return false; } - std::vector library_paths = {"/vendor/", "/system/", "/odm/"}; - std::string sub_dir; -#if __LP64__ - sub_dir = "lib64/"; -#else - sub_dir = "lib/"; -#endif - const std::string library_name = "liboemcrypto.so"; - for (auto& path : library_paths) { - library_names->push_back(path + sub_dir + library_name); - } + library_names->push_back("liboemcrypto.so"); + return true; }