From 7e8cee8fb2e3d92e60554296eebe9d1e75cfd473 Mon Sep 17 00:00:00 2001 From: Dimitry Ivanov Date: Thu, 21 Apr 2016 16:42:48 -0700 Subject: 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 --- libnativeloader/native_loader.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'libnativeloader/native_loader.cpp') 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 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); -- cgit v1.2.3