diff options
author | Dimitry Ivanov <dimitry@google.com> | 2016-04-21 16:42:48 -0700 |
---|---|---|
committer | Dimitry Ivanov <dimitry@google.com> | 2016-04-21 16:42:48 -0700 |
commit | 7e8cee8fb2e3d92e60554296eebe9d1e75cfd473 (patch) | |
tree | 27cf209223b4ed8a2f797927afb829c408c0e291 /libnativeloader/native_loader.cpp | |
parent | 213676b88019016f8c968a05c50a196e2aaaeff8 (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
Diffstat (limited to 'libnativeloader/native_loader.cpp')
-rw-r--r-- | libnativeloader/native_loader.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libnativeloader/native_loader.cpp b/libnativeloader/native_loader.cpp index c7e479ab0..e20c82303 100644 --- a/libnativeloader/native_loader.cpp +++ b/libnativeloader/native_loader.cpp @@ -36,7 +36,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 { @@ -95,10 +95,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); |