diff options
author | Justin Yun <justinyun@google.com> | 2020-02-18 11:29:07 +0900 |
---|---|---|
committer | Justin Yun <justinyun@google.com> | 2020-02-21 10:40:23 +0900 |
commit | eb4f08c577ca3d39d14ada321ea5f9c7444bd06a (patch) | |
tree | 0018cd8ff6e7d0705d0662be909e0ff61b4d84f2 /libnativeloader/public_libraries.cpp | |
parent | 272b36d1b5cbab951239b32ed679a9dbc4ffdf1a (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.cpp | 24 |
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; } |