summaryrefslogtreecommitdiff
path: root/libnativeloader/public_libraries.cpp
diff options
context:
space:
mode:
author Kiyoung Kim <kiyoungkim@google.com> 2023-09-22 13:52:47 +0900
committer Kiyoung Kim <kiyoungkim@google.com> 2023-10-16 08:13:08 +0000
commitc8c2953cffe8ff9d2204f4efdff9100eb9fa6df0 (patch)
tree8e165f31b0cd6bd8e4edd8fa65f75f2cc3a71224 /libnativeloader/public_libraries.cpp
parent26b99c916496abf14a2fd87290720742328462fa (diff)
Use product vndk version to check if product vndk is deprecated
There are some logic in libnativeloader to check if product is treblelized by checking ro.product.vndk.version. However, this property is no longer valid to check if product is treblelized, because of vndk deprecation. This makes libnativeloader to consider as product is not treblelized when the property is empty from the VNDK deprecation. This causes unexpected error from libnativeloader which allows product apps to use system / system_ext libraries when the product partition is VNDK deprecated. Product is force-treblelized from R, so it is safe to assume that product partition is always treblelized as long as the device is treblelized. This change removes existing check of ro.product.vndk.version, and use this check only to confirm if product VNDK is deprecated. Bug: 290159430 Test: Cuttlefish build and run succeeded Test: libnativeloader_e2e_tests passed Change-Id: Ieee3ff2dde4244e7c46420ad8dde5f8e5cf249e4
Diffstat (limited to 'libnativeloader/public_libraries.cpp')
-rw-r--r--libnativeloader/public_libraries.cpp28
1 files changed, 8 insertions, 20 deletions
diff --git a/libnativeloader/public_libraries.cpp b/libnativeloader/public_libraries.cpp
index de8639d602..66572e7d36 100644
--- a/libnativeloader/public_libraries.cpp
+++ b/libnativeloader/public_libraries.cpp
@@ -201,9 +201,7 @@ static std::string InitVendorPublicLibraries() {
// contains the extended public libraries that are loaded from the system namespace.
static std::string InitProductPublicLibraries() {
std::vector<std::string> sonames;
- if (is_product_vndk_version_defined()) {
- ReadExtensionLibraries("/product/etc", &sonames);
- }
+ ReadExtensionLibraries("/product/etc", &sonames);
std::string libs = android::base::Join(sonames, ':');
ALOGD("InitProductPublicLibraries: %s", libs.c_str());
return libs;
@@ -218,9 +216,6 @@ static std::string InitExtendedPublicLibraries() {
std::vector<std::string> sonames;
ReadExtensionLibraries("/system/etc", &sonames);
ReadExtensionLibraries("/system_ext/etc", &sonames);
- if (!is_product_vndk_version_defined()) {
- ReadExtensionLibraries("/product/etc", &sonames);
- }
std::string libs = android::base::Join(sonames, ':');
ALOGD("InitExtendedPublicLibraries: %s", libs.c_str());
return libs;
@@ -261,10 +256,6 @@ static std::string InitLlndkLibrariesVendor() {
}
static std::string InitLlndkLibrariesProduct() {
- if (!is_product_vndk_version_defined()) {
- ALOGD("InitLlndkLibrariesProduct: No product VNDK version defined");
- return "";
- }
std::string config_file;
if (IsProductVndkEnabled()) {
config_file = kLlndkLibrariesFile;
@@ -283,6 +274,11 @@ static std::string InitLlndkLibrariesProduct() {
}
static std::string InitVndkspLibrariesVendor() {
+ if (!IsVendorVndkEnabled()) {
+ ALOGD("InitVndkspLibrariesVendor: VNDK is deprecated with vendor");
+ return "";
+ }
+
std::string config_file = kVndkLibrariesFile;
InsertVndkVersionStr(&config_file, false);
auto sonames = ReadConfig(config_file, always_true);
@@ -296,8 +292,8 @@ static std::string InitVndkspLibrariesVendor() {
}
static std::string InitVndkspLibrariesProduct() {
- if (!is_product_vndk_version_defined()) {
- ALOGD("InitVndkspLibrariesProduct: No product VNDK version defined");
+ if (!IsProductVndkEnabled()) {
+ ALOGD("InitVndkspLibrariesProduct: VNDK is deprecated with product");
return "";
}
std::string config_file = kVndkLibrariesFile;
@@ -420,14 +416,6 @@ const std::map<std::string, std::string>& apex_public_libraries() {
return public_libraries;
}
-bool is_product_vndk_version_defined() {
-#if defined(ART_TARGET_ANDROID)
- return android::sysprop::VndkProperties::product_vndk_version().has_value();
-#else
- return false;
-#endif
-}
-
std::string get_vndk_version(bool is_product_vndk) {
#if defined(ART_TARGET_ANDROID)
if (is_product_vndk) {