1# Copyright (C) 2018 The Android Open Source Project 2# 3# Bionic loader config file for the Runtime APEX. 4# 5# There are no versioned APEX paths here - this APEX module does not support 6# having several versions mounted. 7 8dir.runtime = /apex/com.android.runtime/bin/ 9 10[runtime] 11additional.namespaces = platform,conscrypt,runtime 12 13# Keep in sync with the runtime namespace in /system/etc/ld.config.txt. 14namespace.default.isolated = true 15# Visible because some libraries are dlopen'ed, e.g. libopenjdk is dlopen'ed by 16# libart. 17namespace.default.visible = true 18namespace.default.search.paths = /apex/com.android.runtime/${LIB} 19namespace.default.asan.search.paths = /apex/com.android.runtime/${LIB} 20# odex files are in /system/framework. dalvikvm has to be able to dlopen the 21# files for CTS. 22namespace.default.permitted.paths = /system/framework 23namespace.default.links = platform 24# TODO(b/119867084): Restrict fallback to platform namespace to PALette library. 25namespace.default.link.platform.allow_all_shared_libs = true 26 27# Keep in sync with the default namespace in /system/etc/ld.config.txt. 28namespace.platform.isolated = true 29namespace.platform.search.paths = /system/${LIB} 30namespace.platform.asan.search.paths = /data/asan/system/${LIB} 31namespace.platform.links = default 32namespace.platform.link.default.shared_libs = libdexfile_external.so 33# libicuuc.so and libicui18n.so are kept for app compat reason. http://b/130788466 34namespace.platform.link.default.shared_libs += libicui18n.so 35namespace.platform.link.default.shared_libs += libicuuc.so 36namespace.platform.link.default.shared_libs += libnativebridge.so 37namespace.platform.link.default.shared_libs += libnativehelper.so 38namespace.platform.link.default.shared_libs += libnativeloader.so 39namespace.platform.link.default.shared_libs += libandroidicu.so 40 41# TODO(b/122876336): Remove libpac.so once it's migrated to Webview 42namespace.platform.link.default.shared_libs += libpac.so 43 44# /system/lib/libc.so, etc are symlinks to 45# /apex/com.android.runtime/lib/bionic/libc.so, etc. Add the path to the 46# permitted paths because linker uses realpath(3) to check the accessibility 47# of the lib. We could add this to search.paths instead but that makes the 48# resolution of bionic libs be dependent on the order of /system/lib and 49# /apex/.../lib/bionic in search.paths. If the latter is after the former, 50# then the latter is never tried because libc.so is always found in 51# /system/lib but fails to pass the accessibility test because of its realpath. 52# It's better to not depend on the ordering if possible. 53namespace.platform.permitted.paths = /apex/com.android.runtime/${LIB}/bionic 54namespace.platform.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic 55 56# Note that we don't need to link the default namespace with conscrypt: 57# the runtime Java code and binaries do not explicitly load native libraries 58# from it. 59 60############################################################################### 61# "conscrypt" APEX namespace 62# 63# This namespace is for libraries within the conscrypt APEX. 64############################################################################### 65 66# Keep in sync with conscrypt namespace in /system/etc/ld.config.txt. 67namespace.conscrypt.isolated = true 68namespace.conscrypt.visible = true 69 70namespace.conscrypt.search.paths = /apex/com.android.conscrypt/${LIB} 71namespace.conscrypt.asan.search.paths = /apex/com.android.conscrypt/${LIB} 72namespace.conscrypt.links = runtime,platform 73namespace.conscrypt.link.runtime.shared_libs = libandroidio.so 74namespace.conscrypt.link.platform.shared_libs = libc.so 75namespace.conscrypt.link.platform.shared_libs += libm.so 76namespace.conscrypt.link.platform.shared_libs += libdl.so 77namespace.conscrypt.link.platform.shared_libs += liblog.so 78 79############################################################################### 80# "runtime" APEX namespace 81# 82# This namespace is an alias for the default namespace. 83############################################################################### 84namespace.runtime.isolated = true 85namespace.runtime.visible = true 86namespace.runtime.links = default 87namespace.runtime.link.default.allow_all_shared_libs = true 88namespace.runtime.links += platform 89# TODO(b/119867084): Restrict fallback to platform namespace to PALette library. 90namespace.runtime.link.platform.allow_all_shared_libs = true 91