Merge "native_loader: Use ANDROID_ROOT environment variable"

am: 6d28ae7

* commit '6d28ae7b0dfb486b3d7840185cdcbde5aec76a04':
  native_loader: Use ANDROID_ROOT environment variable

Change-Id: I1cda059bc87629f52077a33d18b2f8cdc4707dd2
This commit is contained in:
Dimitry Ivanov 2016-04-27 18:41:57 +00:00 committed by android-build-merger
commit e40d65fa8e

View file

@ -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);