blob: ca297fe01ed01ff2044cc7293f674931422f2f2f [file] [log] [blame]
# Copyright (C) 2019 The Android Open Source Project
#
# Bionic loader config file for the adbd APEX.
dir.adbd = /apex/com.android.adbd/bin/
[adbd]
additional.namespaces = apex,platform,art
namespace.default.isolated = true
namespace.default.permitted.paths = /system/${LIB}
namespace.default.asan.permitted.paths = /system/${LIB}
namespace.default.links = apex,art,platform
namespace.default.link.apex.shared_libs = libcrypto.so
namespace.default.link.art.shared_libs = libadbconnection_server.so
# libcrypto.so in the APEX might be a symlink to /system, for APEXes bundled with the system image.
# The dynamic linker works off of realpath, so we need to permit loading libcrypto.so from /system.
namespace.default.link.platform.shared_libs = libc.so:libdl.so:libm.so:libclang_rt.hwasan-aarch64-android.so:liblog.so:libadbd_auth.so:libcrypto.so
namespace.apex.isolated = true
namespace.apex.search.paths = /apex/com.android.adbd/${LIB}
namespace.apex.asan.search.paths = /apex/com.android.adbd/${LIB}
namespace.apex.links = platform
namespace.apex.link.platform.allow_all_shared_libs = true
###############################################################################
# "art" APEX namespace: used for libadbdconnection_server
###############################################################################
namespace.art.isolated = true
namespace.art.search.paths = /apex/com.android.art/${LIB}
namespace.art.asan.search.paths = /apex/com.android.art/${LIB}
namespace.art.links = platform
namespace.art.link.platform.allow_all_shared_libs = true
###############################################################################
# "platform" namespace: used for NDK libraries, and libadbd_auth
###############################################################################
namespace.platform.isolated = true
namespace.platform.search.paths = /system/${LIB}
namespace.platform.asan.search.paths = /data/asan/system/${LIB}
# /system/lib/libc.so, etc are symlinks to
# /apex/com.android.runtime/lib/bionic/libc.so, etc. Add the path to the
# permitted paths because linker uses realpath(3) to check the accessibility
# of the lib. We could add this to search.paths instead but that makes the
# resolution of bionic libs be dependent on the order of /system/lib and
# /apex/.../lib/bionic in search.paths. If the latter is after the former,
# then the latter is never tried because libc.so is always found in
# /system/lib but fails to pass the accessibility test because of its realpath.
# It's better to not depend on the ordering if possible.
namespace.platform.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.platform.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic