ld.config.txt revision cbbf195e46fcd1ea0ec6449739608b41c9a242be
1# Copyright (C) 2017 The Android Open Source Project 2# 3# Bionic loader config file. 4# 5 6# Don't change the order here. The first pattern that matches with the 7# absolute path of an executable is selected. 8dir.system = /system/bin/ 9dir.system = /system/xbin/ 10 11dir.vendor = /odm/bin/ 12dir.vendor = /vendor/bin/ 13dir.vendor = /data/nativetest/odm 14dir.vendor = /data/nativetest64/odm 15dir.vendor = /data/benchmarktest/odm 16dir.vendor = /data/benchmarktest64/odm 17dir.vendor = /data/nativetest/vendor 18dir.vendor = /data/nativetest64/vendor 19dir.vendor = /data/benchmarktest/vendor 20dir.vendor = /data/benchmarktest64/vendor 21 22dir.system = /data/nativetest 23dir.system = /data/nativetest64 24dir.system = /data/benchmarktest 25dir.system = /data/benchmarktest64 26 27[system] 28additional.namespaces = sphal,vndk,rs 29 30############################################################################### 31# "default" namespace 32# 33# Framework-side code runs in this namespace. However, libs from other 34# partitions are also allowed temporarily. 35############################################################################### 36namespace.default.isolated = false 37 38namespace.default.search.paths = /system/${LIB} 39namespace.default.search.paths += /odm/${LIB} 40namespace.default.search.paths += /vendor/${LIB} 41 42namespace.default.asan.search.paths = /data/asan/system/${LIB} 43namespace.default.asan.search.paths += /system/${LIB} 44namespace.default.asan.search.paths += /data/asan/odm/${LIB} 45namespace.default.asan.search.paths += /odm/${LIB} 46namespace.default.asan.search.paths += /data/asan/vendor/${LIB} 47namespace.default.asan.search.paths += /vendor/${LIB} 48 49############################################################################### 50# "sphal" namespace 51# 52# SP-HAL(Sameprocess-HAL)s are the only vendor libraries that are allowed to be 53# loaded inside system processes. libEGL_<chipset>.so, libGLESv2_<chipset>.so, 54# android.hardware.graphics.mapper@2.0-impl.so, etc are SP-HALs. 55# 56# This namespace is exclusivly for SP-HALs. When the framework tries to dynami- 57# cally load SP-HALs, android_dlopen_ext() is used to explicitly specifying 58# that they should be searched and loaded from this namespace. 59# 60# Note that there is no link from the default namespace to this namespace. 61############################################################################### 62namespace.sphal.isolated = true 63namespace.sphal.visible = true 64 65namespace.sphal.search.paths = /odm/${LIB} 66namespace.sphal.search.paths += /vendor/${LIB} 67 68namespace.sphal.permitted.paths = /odm/${LIB} 69namespace.sphal.permitted.paths += /vendor/${LIB} 70 71namespace.sphal.asan.search.paths = /data/asan/odm/${LIB} 72namespace.sphal.asan.search.paths += /odm/${LIB} 73namespace.sphal.asan.search.paths += /data/asan/vendor/${LIB} 74namespace.sphal.asan.search.paths += /vendor/${LIB} 75 76namespace.sphal.asan.permitted.paths = /data/asan/odm/${LIB} 77namespace.sphal.asan.permitted.paths += /odm/${LIB} 78namespace.sphal.asan.permitted.paths += /data/asan/vendor/${LIB} 79namespace.sphal.asan.permitted.paths += /vendor/${LIB} 80 81# Once in this namespace, access to libraries in /system/lib is restricted. Only 82# libs listed here can be used. 83namespace.sphal.links = default,vndk,rs 84 85# WARNING: only NDK libs can be listed here. 86namespace.sphal.link.default.shared_libs = libc.so 87namespace.sphal.link.default.shared_libs += libEGL.so 88namespace.sphal.link.default.shared_libs += libGLESv1_CM.so 89namespace.sphal.link.default.shared_libs += libGLESv2.so 90namespace.sphal.link.default.shared_libs += libdl.so 91namespace.sphal.link.default.shared_libs += liblog.so 92namespace.sphal.link.default.shared_libs += libm.so 93namespace.sphal.link.default.shared_libs += libnativewindow.so 94namespace.sphal.link.default.shared_libs += libstdc++.so 95namespace.sphal.link.default.shared_libs += libsync.so 96namespace.sphal.link.default.shared_libs += libvndksupport.so 97namespace.sphal.link.default.shared_libs += libz.so 98 99# WARNING: only VNDK-SP libs can be listed here. DO NOT EDIT this line. 100namespace.sphal.link.vndk.shared_libs = android.hardware.renderscript@1.0.so 101namespace.sphal.link.vndk.shared_libs += android.hardware.graphics.common@1.0.so 102namespace.sphal.link.vndk.shared_libs += android.hardware.graphics.mapper@2.0.so 103namespace.sphal.link.vndk.shared_libs += android.hidl.memory@1.0.so 104namespace.sphal.link.vndk.shared_libs += libbase.so 105namespace.sphal.link.vndk.shared_libs += libc++.so 106namespace.sphal.link.vndk.shared_libs += libcutils.so 107namespace.sphal.link.vndk.shared_libs += libhardware.so 108namespace.sphal.link.vndk.shared_libs += libhidlbase.so 109namespace.sphal.link.vndk.shared_libs += libhidlmemory.so 110namespace.sphal.link.vndk.shared_libs += libhidltransport.so 111namespace.sphal.link.vndk.shared_libs += libhwbinder.so 112namespace.sphal.link.vndk.shared_libs += libion.so 113namespace.sphal.link.vndk.shared_libs += libutils.so 114 115# Renderscript gets separate namespace 116namespace.sphal.link.rs.shared_libs = libRS_internal.so 117 118############################################################################### 119# "rs" namespace 120# 121# This namespace is exclusively for Renderscript internal libraries. 122# This namespace has slightly looser restriction than the vndk namespace because 123# of the genuine characteristics of Renderscript; /data is in the permitted path 124# to load the compiled *.so file and libmediandk.so can be used here. 125############################################################################### 126namespace.rs.isolated = true 127namespace.rs.visible = true 128 129namespace.rs.search.paths = /odm/${LIB}/vndk-sp 130namespace.rs.search.paths += /vendor/${LIB}/vndk-sp 131namespace.rs.search.paths += /system/${LIB}/vndk-sp%VNDK_VER% 132namespace.rs.search.paths += /odm/${LIB} 133namespace.rs.search.paths += /vendor/${LIB} 134 135namespace.rs.permitted.paths = /odm/${LIB} 136namespace.rs.permitted.paths += /vendor/${LIB} 137namespace.rs.permitted.paths += /data 138 139namespace.rs.asan.search.paths = /data/asan/odm/${LIB}/vndk-sp 140namespace.rs.asan.search.paths += /odm/${LIB}/vndk-sp 141namespace.rs.asan.search.paths += /data/asan/vendor/${LIB}/vndk-sp 142namespace.rs.asan.search.paths += /vendor/${LIB}/vndk-sp 143namespace.rs.asan.search.paths += /data/asan/system/${LIB}/vndk-sp%VNDK_VER% 144namespace.rs.asan.search.paths += /system/${LIB}/vndk-sp%VNDK_VER% 145namespace.rs.asan.search.paths += /data/asan/odm/${LIB} 146namespace.rs.asan.search.paths += /odm/${LIB} 147namespace.rs.asan.search.paths += /data/asan/vendor/${LIB} 148namespace.rs.asan.search.paths += /vendor/${LIB} 149 150namespace.rs.asan.permitted.paths = /data/asan/odm/${LIB} 151namespace.rs.asan.permitted.paths += /odm/${LIB} 152namespace.rs.asan.permitted.paths += /data/asan/vendor/${LIB} 153namespace.rs.asan.permitted.paths += /vendor/${LIB} 154namespace.rs.asan.permitted.paths += /data 155 156namespace.rs.links = default,vndk 157 158namespace.rs.link.default.shared_libs = libc.so 159namespace.rs.link.default.shared_libs += libEGL.so 160namespace.rs.link.default.shared_libs += libGLESv1_CM.so 161namespace.rs.link.default.shared_libs += libGLESv2.so 162namespace.rs.link.default.shared_libs += libdl.so 163namespace.rs.link.default.shared_libs += liblog.so 164namespace.rs.link.default.shared_libs += libm.so 165namespace.rs.link.default.shared_libs += libnativewindow.so 166namespace.rs.link.default.shared_libs += libstdc++.so 167namespace.rs.link.default.shared_libs += libsync.so 168namespace.rs.link.default.shared_libs += libvndksupport.so 169namespace.rs.link.default.shared_libs += libz.so 170# These two libs are private LLNDK libs but are exceptionally visible 171# in this 'rs' namespace because RenderScript framework libraries 172# which are loaded into this namespace are using them. 173namespace.rs.link.default.shared_libs += libft2.so 174namespace.rs.link.default.shared_libs += libmediandk.so 175 176namespace.rs.link.vndk.shared_libs = android.hardware.renderscript@1.0.so 177namespace.rs.link.vndk.shared_libs += android.hardware.graphics.common@1.0.so 178namespace.rs.link.vndk.shared_libs += android.hardware.graphics.mapper@2.0.so 179namespace.rs.link.vndk.shared_libs += android.hidl.memory@1.0.so 180namespace.rs.link.vndk.shared_libs += libbase.so 181namespace.rs.link.vndk.shared_libs += libc++.so 182namespace.rs.link.vndk.shared_libs += libcutils.so 183namespace.rs.link.vndk.shared_libs += libhardware.so 184namespace.rs.link.vndk.shared_libs += libhidlbase.so 185namespace.rs.link.vndk.shared_libs += libhidlmemory.so 186namespace.rs.link.vndk.shared_libs += libhidltransport.so 187namespace.rs.link.vndk.shared_libs += libhwbinder.so 188namespace.rs.link.vndk.shared_libs += libion.so 189namespace.rs.link.vndk.shared_libs += libutils.so 190 191############################################################################### 192# "vndk" namespace 193# 194# This namespace is exclusively for vndk-sp libs. 195############################################################################### 196namespace.vndk.isolated = true 197namespace.vndk.visible = true 198 199namespace.vndk.search.paths = /odm/${LIB}/vndk-sp 200namespace.vndk.search.paths += /vendor/${LIB}/vndk-sp 201namespace.vndk.search.paths += /system/${LIB}/vndk-sp%VNDK_VER% 202 203namespace.vndk.permitted.paths = /odm/${LIB}/hw 204namespace.vndk.permitted.paths += /odm/${LIB}/egl 205namespace.vndk.permitted.paths += /vendor/${LIB}/hw 206namespace.vndk.permitted.paths += /vendor/${LIB}/egl 207 208namespace.vndk.asan.search.paths = /data/asan/odm/${LIB}/vndk-sp 209namespace.vndk.asan.search.paths += /odm/${LIB}/vndk-sp 210namespace.vndk.asan.search.paths += /data/asan/vendor/${LIB}/vndk-sp 211namespace.vndk.asan.search.paths += /vendor/${LIB}/vndk-sp 212namespace.vndk.asan.search.paths += /data/asan/system/${LIB}/vndk-sp%VNDK_VER% 213namespace.vndk.asan.search.paths += /system/${LIB}/vndk-sp%VNDK_VER% 214 215namespace.vndk.asan.permitted.paths = /data/asan/odm/${LIB}/hw 216namespace.vndk.asan.permitted.paths += /odm/${LIB}/hw 217namespace.vndk.asan.permitted.paths += /data/asan/odm/${LIB}/egl 218namespace.vndk.asan.permitted.paths += /odm/${LIB}/egl 219namespace.vndk.asan.permitted.paths += /data/asan/vendor/${LIB}/hw 220namespace.vndk.asan.permitted.paths += /vendor/${LIB}/hw 221namespace.vndk.asan.permitted.paths += /data/asan/vendor/${LIB}/egl 222namespace.vndk.asan.permitted.paths += /vendor/${LIB}/egl 223 224# When these NDK libs are required inside this namespace, then it is redirected 225# to the default namespace. This is possible since their ABI is stable across 226# Android releases. 227namespace.vndk.links = default 228namespace.vndk.link.default.shared_libs = android.hidl.memory@1.0-impl.so 229namespace.vndk.link.default.shared_libs += libEGL.so 230namespace.vndk.link.default.shared_libs += libc.so 231namespace.vndk.link.default.shared_libs += libdl.so 232namespace.vndk.link.default.shared_libs += liblog.so 233namespace.vndk.link.default.shared_libs += libm.so 234namespace.vndk.link.default.shared_libs += libnativewindow.so 235namespace.vndk.link.default.shared_libs += libstdc++.so 236namespace.vndk.link.default.shared_libs += libsync.so 237namespace.vndk.link.default.shared_libs += libvndksupport.so 238namespace.vndk.link.default.shared_libs += libz.so 239 240############################################################################### 241# Namespace config for vendor processes. In O, no restriction is enforced for 242# them. However, in O-MR1, access to /system/${LIB} will not be allowed to 243# the default namespace. 'system' namespace will be added to give limited 244# (LL-NDK only) access. 245############################################################################### 246[vendor] 247namespace.default.isolated = false 248 249namespace.default.search.paths = /odm/${LIB} 250namespace.default.search.paths += /odm/${LIB}/vndk 251namespace.default.search.paths += /odm/${LIB}/vndk-sp 252namespace.default.search.paths += /vendor/${LIB} 253namespace.default.search.paths += /vendor/${LIB}/vndk 254namespace.default.search.paths += /vendor/${LIB}/vndk-sp 255 256# Access to system libraries are allowed 257namespace.default.search.paths += /system/${LIB}/vndk%VNDK_VER% 258namespace.default.search.paths += /system/${LIB}/vndk-sp%VNDK_VER% 259namespace.default.search.paths += /system/${LIB} 260 261namespace.default.asan.search.paths = /data/asan/odm/${LIB} 262namespace.default.asan.search.paths += /odm/${LIB} 263namespace.default.asan.search.paths += /data/asan/odm/${LIB}/vndk 264namespace.default.asan.search.paths += /odm/${LIB}/vndk 265namespace.default.asan.search.paths += /data/asan/odm/${LIB}/vndk-sp 266namespace.default.asan.search.paths += /odm/${LIB}/vndk-sp 267namespace.default.asan.search.paths += /data/asan/vendor/${LIB} 268namespace.default.asan.search.paths += /vendor/${LIB} 269namespace.default.asan.search.paths += /data/asan/vendor/${LIB}/vndk 270namespace.default.asan.search.paths += /vendor/${LIB}/vndk 271namespace.default.asan.search.paths += /data/asan/vendor/${LIB}/vndk-sp 272namespace.default.asan.search.paths += /vendor/${LIB}/vndk-sp 273namespace.default.asan.search.paths += /data/asan/system/${LIB}/vndk%VNDK_VER% 274namespace.default.asan.search.paths += /system/${LIB}/vndk%VNDK_VER% 275namespace.default.asan.search.paths += /data/asan/system/${LIB}/vndk-sp%VNDK_VER% 276namespace.default.asan.search.paths += /system/${LIB}/vndk-sp%VNDK_VER% 277namespace.default.asan.search.paths += /data/asan/system/${LIB} 278namespace.default.asan.search.paths += /system/${LIB} 279