diff options
author | Dimitry Ivanov <dimitry@google.com> | 2016-04-21 16:42:48 -0700 |
---|---|---|
committer | Dimitry Ivanov <dimitry@google.com> | 2016-04-27 13:43:33 -0700 |
commit | 0b5651e1588c2fee6a587314993a166a77068974 (patch) | |
tree | 38d46db4c123cc4496600050b18d9cac0fe04f8e /libnativeloader/native_loader.cpp | |
parent | 5539db0b4f915bf15de742d1378904a553dc80dc (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.cpp | 10 |
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); |