android_system_core/rootdir/etc/ld.config.legacy.txt

26 lines
847 B
Plaintext
Raw Normal View History

Configure ld.config.txt for SP-HALs Now, framework process (any process that is executing /system/bin/* or /system/xbin/*) are started with three namespaces; default, sphal and vndk. default namespace is the namespace that is responsible for loading libs from /system/lib. It can't load libs from other places such as /vendor/lib. (However, we temporarily open the path since we haven't finished the system partition cleanup, but will do eventually). sphal namespace is the namespace where SP-HAL (Same-process HAL) is loaded. SP-HAL are the only vendor libraries that are allowed to be loaded inside framework processes. libEGL_<chipset>.so and android.hardware.graphics.mapper@2.0-impl.so, etc are SP-HALs. When framework needs to load those SP-HALs, it explicitly loads it from this namespace using android_get_exported_namespace() and android_dlopen_ext(). vndk namespace is the namespace for loading vndk-sp (Vendor-NDK for Same-Process) libs, which is a small set of framework libraries that SP-HALs can link against. These libraries are compiled for the same version of Android that the vendor partition is compiled against. SP-HALs can not use libraries other than vndk-sp and ndk libs. Membership to vndk-sp and ndk are strictly closed. Note that in a system, there are two copies of vndk-sp libs. One at /system/lib and the other at /vendor/lib/vndk-sp. As a result, there can be two instances of a same library in a process. Also adds ld.config.legacy.txt which is used on non-Treble devices where PRODUCT_FULL_TREBLE is not set to true. Note, this split can be cleaned up further after b/37139976 is solved. Bug: 34407260 Test: git diff HEAD:rootdir/etc/ld.config.legacy.txt HEAD^:rootdir/etc/ld.config.txt => 0 Test: sailfish boots (because BOARD_VNDK_VERSION is not set to 'current') Change-Id: I8331d94edc38f22c4f8abc66cdf2050af9d0605b
2017-04-05 05:24:14 +00:00
# Copyright (C) 2017 The Android Open Source Project
#
# Bionic loader config file.
# This gives the exactly the same namespace setup in pre-O.
#
# All binaries gets the same configuration 'legacy'
dir.legacy = /system
dir.legacy = /vendor
dir.legacy = /odm
Configure ld.config.txt for SP-HALs Now, framework process (any process that is executing /system/bin/* or /system/xbin/*) are started with three namespaces; default, sphal and vndk. default namespace is the namespace that is responsible for loading libs from /system/lib. It can't load libs from other places such as /vendor/lib. (However, we temporarily open the path since we haven't finished the system partition cleanup, but will do eventually). sphal namespace is the namespace where SP-HAL (Same-process HAL) is loaded. SP-HAL are the only vendor libraries that are allowed to be loaded inside framework processes. libEGL_<chipset>.so and android.hardware.graphics.mapper@2.0-impl.so, etc are SP-HALs. When framework needs to load those SP-HALs, it explicitly loads it from this namespace using android_get_exported_namespace() and android_dlopen_ext(). vndk namespace is the namespace for loading vndk-sp (Vendor-NDK for Same-Process) libs, which is a small set of framework libraries that SP-HALs can link against. These libraries are compiled for the same version of Android that the vendor partition is compiled against. SP-HALs can not use libraries other than vndk-sp and ndk libs. Membership to vndk-sp and ndk are strictly closed. Note that in a system, there are two copies of vndk-sp libs. One at /system/lib and the other at /vendor/lib/vndk-sp. As a result, there can be two instances of a same library in a process. Also adds ld.config.legacy.txt which is used on non-Treble devices where PRODUCT_FULL_TREBLE is not set to true. Note, this split can be cleaned up further after b/37139976 is solved. Bug: 34407260 Test: git diff HEAD:rootdir/etc/ld.config.legacy.txt HEAD^:rootdir/etc/ld.config.txt => 0 Test: sailfish boots (because BOARD_VNDK_VERSION is not set to 'current') Change-Id: I8331d94edc38f22c4f8abc66cdf2050af9d0605b
2017-04-05 05:24:14 +00:00
dir.legacy = /sbin
[legacy]
namespace.default.isolated = false
namespace.default.search.paths = /system/${LIB}
namespace.default.search.paths += /vendor/${LIB}
namespace.default.search.paths += /odm/${LIB}
namespace.default.asan.search.paths = /data/asan/system/${LIB}
namespace.default.asan.search.paths += /system/${LIB}
namespace.default.asan.search.paths += /data/asan/odm/${LIB}
namespace.default.asan.search.paths += /odm/${LIB}
namespace.default.asan.search.paths += /data/asan/vendor/${LIB}
namespace.default.asan.search.paths += /vendor/${LIB}