summaryrefslogtreecommitdiff
path: root/libnativeloader/native_loader.cpp
diff options
context:
space:
mode:
authorDimitry Ivanov <dimitry@google.com>2016-04-21 16:42:48 -0700
committerDimitry Ivanov <dimitry@google.com>2016-04-27 13:43:33 -0700
commit0b5651e1588c2fee6a587314993a166a77068974 (patch)
tree38d46db4c123cc4496600050b18d9cac0fe04f8e /libnativeloader/native_loader.cpp
parent5539db0b4f915bf15de742d1378904a553dc80dc (diff)
native_loader: Use ANDROID_ROOT environment variable
Replace "/system" with ANDROID_ROOT environment variable. Bug: http://b/28320913 Bug: http://b/28082914 Change-Id: Ib039722cb059bae1635b45f6af20ef0180e83ba9 (cherry picked from commit 7e8cee8fb2e3d92e60554296eebe9d1e75cfd473)
Diffstat (limited to 'libnativeloader/native_loader.cpp')
-rw-r--r--libnativeloader/native_loader.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/libnativeloader/native_loader.cpp b/libnativeloader/native_loader.cpp
index af14be8ad..665b5b5b0 100644
--- a/libnativeloader/native_loader.cpp
+++ b/libnativeloader/native_loader.cpp
@@ -37,7 +37,7 @@
namespace android {
#if defined(__ANDROID__)
-static constexpr const char* kPublicNativeLibrariesSystemConfig = "/system/etc/public.libraries.txt";
+static constexpr const char* kPublicNativeLibrariesSystemConfigPathFromRoot = "/etc/public.libraries.txt";
static constexpr const char* kPublicNativeLibrariesVendorConfig = "/vendor/etc/public.libraries.txt";
class LibraryNamespaces {
@@ -105,10 +105,14 @@ class LibraryNamespaces {
void Initialize() {
std::vector<std::string> sonames;
+ const char* android_root_env = getenv("ANDROID_ROOT");
+ std::string root_dir = android_root_env != nullptr ? android_root_env : "/system";
+ std::string public_native_libraries_system_config =
+ root_dir + kPublicNativeLibrariesSystemConfigPathFromRoot;
- LOG_ALWAYS_FATAL_IF(!ReadConfig(kPublicNativeLibrariesSystemConfig, &sonames),
+ LOG_ALWAYS_FATAL_IF(!ReadConfig(public_native_libraries_system_config, &sonames),
"Error reading public native library list from \"%s\": %s",
- kPublicNativeLibrariesSystemConfig, strerror(errno));
+ public_native_libraries_system_config.c_str(), strerror(errno));
// This file is optional, quietly ignore if the file does not exist.
ReadConfig(kPublicNativeLibrariesVendorConfig, &sonames);