| # Copyright (C) 2019 The Android Open Source Project |
| # |
| # Bionic loader config file for the Conscrypt APEX. |
| |
| dir.conscrypt = /apex/com.android.conscrypt/bin/ |
| |
| [conscrypt] |
| additional.namespaces = platform |
| |
| # This configuration is only intended to support bin/boringssl_self_test{32,64} |
| # loading libcrypto.so from the APEX. |
| # |
| # If there is a binary that needs the APEX exported library libjavacrypto.so |
| # then this config should be replaced by the full namespace configs for the |
| # "conscrypt" namespace in system/core/rootdir/etc/ld.config*.txt and its |
| # dependencies "platform" and "runtime". |
| |
| namespace.default.search.paths = /apex/com.android.conscrypt/${LIB} |
| namespace.default.asan.search.paths = /apex/com.android.conscrypt/${LIB} |
| namespace.default.permitted.paths = /system/${LIB} |
| namespace.default.asan.permitted.paths = /system/${LIB} |
| namespace.default.links = platform |
| namespace.default.link.platform.shared_libs = libc.so |
| namespace.default.link.platform.shared_libs += libm.so |
| namespace.default.link.platform.shared_libs += libdl.so |
| namespace.default.link.platform.shared_libs += liblog.so |
| namespace.default.link.platform.shared_libs += libclang_rt.hwasan-aarch64-android.so |
| |
| ############################################################################### |
| # "platform" namespace |
| # |
| # Corresponds to the default namespace in /system/etc/ld.config.txt, but |
| # minimized to support the dependencies above. |
| ############################################################################### |
| 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 |