Add Android Runtime APEX directories to Bionic search paths.
- Insert /apex/com.android.runtime/lib(64) before /system/lib(64)
in the default library search paths (`kDefaultLdPaths`,
`kAsanDefaultLdPaths`).
- Insert apex/com.android.runtime/bin before /system/bin in the
default shell search path (`_PATH_DEFPATH`).
Test: Device boot test with Android Runtime APEX.
Test: Device boot test without Android Runtime APEX.
Bug: 113373927
Change-Id: I9ae6bfe6939f63e7d76e7b3c9b21d8b698bd8fda
diff --git a/libc/include/paths.h b/libc/include/paths.h
index dc1c523..b5b8610 100644
--- a/libc/include/paths.h
+++ b/libc/include/paths.h
@@ -47,7 +47,7 @@
#define _PATH_CONSOLE "/dev/console"
/** Default shell search path. */
-#define _PATH_DEFPATH "/sbin:/system/sbin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin"
+#define _PATH_DEFPATH "/sbin:/system/sbin:/apex/com.android.runtime/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin"
/** Path to the directory containing device files. */
#define _PATH_DEV "/dev/"
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 7993681..3560b4e 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -89,6 +89,7 @@
static const char* const kLdConfigVndkLiteFilePath = "/system/etc/ld.config.vndk_lite.txt";
#if defined(__LP64__)
+static const char* const kArtApexLibDir = "/apex/com.android.runtime/lib64";
static const char* const kSystemLibDir = "/system/lib64";
static const char* const kOdmLibDir = "/odm/lib64";
static const char* const kVendorLibDir = "/vendor/lib64";
@@ -96,6 +97,7 @@
static const char* const kAsanOdmLibDir = "/data/asan/odm/lib64";
static const char* const kAsanVendorLibDir = "/data/asan/vendor/lib64";
#else
+static const char* const kArtApexLibDir = "/apex/com.android.runtime/lib";
static const char* const kSystemLibDir = "/system/lib";
static const char* const kOdmLibDir = "/odm/lib";
static const char* const kVendorLibDir = "/vendor/lib";
@@ -107,6 +109,7 @@
static const char* const kAsanLibDirPrefix = "/data/asan";
static const char* const kDefaultLdPaths[] = {
+ kArtApexLibDir,
kSystemLibDir,
kOdmLibDir,
kVendorLibDir,
@@ -115,6 +118,7 @@
static const char* const kAsanDefaultLdPaths[] = {
kAsanSystemLibDir,
+ kArtApexLibDir,
kSystemLibDir,
kAsanOdmLibDir,
kOdmLibDir,