summaryrefslogtreecommitdiff
path: root/libnativeloader/public_libraries.cpp
diff options
context:
space:
mode:
authorJustin Yun <justinyun@google.com>2020-02-18 11:29:07 +0900
committerJustin Yun <justinyun@google.com>2020-02-21 10:40:23 +0900
commiteb4f08c577ca3d39d14ada321ea5f9c7444bd06a (patch)
tree0018cd8ff6e7d0705d0662be909e0ff61b4d84f2 /libnativeloader/public_libraries.cpp
parent272b36d1b5cbab951239b32ed679a9dbc4ffdf1a (diff)
Use a different VNDK namespace for product apps
As product partition may have a different VNDK version than that of vendor partition, they may not share the same VNDK namespace for their apps. Define a new vndk_product namespace in the system section for product apps that uses ro.product.vndk.version. Bug: 149063221 Test: atest libnativeloader_test Change-Id: I1bb76617104a49b0d11af13d2f116959a18390a3
Diffstat (limited to 'libnativeloader/public_libraries.cpp')
-rw-r--r--libnativeloader/public_libraries.cpp24
1 files changed, 19 insertions, 5 deletions
diff --git a/libnativeloader/public_libraries.cpp b/libnativeloader/public_libraries.cpp
index 35ef4889d0..277d2c90c0 100644
--- a/libnativeloader/public_libraries.cpp
+++ b/libnativeloader/public_libraries.cpp
@@ -275,9 +275,7 @@ static std::string InitLlndkLibrariesProduct() {
return android::base::Join(*sonames, ':');
}
-static std::string InitVndkspLibraries() {
- // VNDK-SP is used only for vendor hals which are not available for the
- // product partition.
+static std::string InitVndkspLibrariesVendor() {
std::string config_file = kVndkLibrariesFile;
InsertVndkVersionStr(&config_file, false);
auto sonames = ReadConfig(config_file, always_true);
@@ -288,6 +286,17 @@ static std::string InitVndkspLibraries() {
return android::base::Join(*sonames, ':');
}
+static std::string InitVndkspLibrariesProduct() {
+ std::string config_file = kVndkLibrariesFile;
+ InsertVndkVersionStr(&config_file, true);
+ auto sonames = ReadConfig(config_file, always_true);
+ if (!sonames.ok()) {
+ LOG_ALWAYS_FATAL("%s", sonames.error().message().c_str());
+ return "";
+ }
+ return android::base::Join(*sonames, ':');
+}
+
static std::string InitNeuralNetworksPublicLibraries() {
return kNeuralNetworksApexPublicLibrary;
}
@@ -352,8 +361,13 @@ const std::string& llndk_libraries_vendor() {
return list;
}
-const std::string& vndksp_libraries() {
- static std::string list = InitVndkspLibraries();
+const std::string& vndksp_libraries_product() {
+ static std::string list = InitVndkspLibrariesProduct();
+ return list;
+}
+
+const std::string& vndksp_libraries_vendor() {
+ static std::string list = InitVndkspLibrariesVendor();
return list;
}