Use product vndk version for product apps
ro.vndk.version is only for vendor modules. Product modules use
different vndk version that is set in ro.product.vndk.version.
Use product vndk version for creating namespaces for product apps.
Bug: 148823287
Test: atest libnativeloader_test
Change-Id: Iade4b3ca846f1e47e5138f2ceda81bf188276a91
diff --git a/libnativeloader/library_namespaces.cpp b/libnativeloader/library_namespaces.cpp
index 99587e4..08a2290 100644
--- a/libnativeloader/library_namespaces.cpp
+++ b/libnativeloader/library_namespaces.cpp
@@ -182,25 +182,29 @@
// together in the vendor / product partition.
const char* origin_partition;
const char* origin_lib_path;
+ const char* llndk_libraries;
switch (apk_origin) {
case APK_ORIGIN_VENDOR:
origin_partition = "vendor";
origin_lib_path = kVendorLibPath;
+ llndk_libraries = llndk_libraries_vendor().c_str();
break;
case APK_ORIGIN_PRODUCT:
origin_partition = "product";
origin_lib_path = kProductLibPath;
+ llndk_libraries = llndk_libraries_product().c_str();
break;
default:
origin_partition = "unknown";
origin_lib_path = "";
+ llndk_libraries = "";
}
library_path = library_path + ":" + origin_lib_path;
permitted_path = permitted_path + ":" + origin_lib_path;
- // Also give access to LLNDK libraries since they are available to vendors
- system_exposed_libraries = system_exposed_libraries + ":" + llndk_libraries().c_str();
+ // Also give access to LLNDK libraries since they are available to vendor or product
+ system_exposed_libraries = system_exposed_libraries + ":" + llndk_libraries;
// Different name is useful for debugging
namespace_name = kVendorClassloaderNamespaceName;