• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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