diff --git a/rootdir/etc/ld.config.txt b/rootdir/etc/ld.config.txt index eb29c8b03..1d4b1e280 100644 --- a/rootdir/etc/ld.config.txt +++ b/rootdir/etc/ld.config.txt @@ -109,7 +109,11 @@ namespace.default.asan.permitted.paths += /apex/com.android.resolv/${LIB} # Keep in sync with ld.config.txt in the com.android.runtime APEX. namespace.default.links = runtime +# Visible because some libraries are dlopen'ed, e.g. libopenjdk is dlopen'ed by +# libart. +namespace.default.visible = true namespace.default.link.runtime.shared_libs = libart.so:libartd.so +namespace.default.link.runtime.shared_libs += libdexfile_external.so namespace.default.link.runtime.shared_libs += libnativebridge.so namespace.default.link.runtime.shared_libs += libnativehelper.so namespace.default.link.runtime.shared_libs += libnativeloader.so @@ -311,7 +315,7 @@ namespace.vndk.link.sphal.allow_all_shared_libs = true # (LL-NDK only) access. ############################################################################### [vendor] -additional.namespaces = system,vndk +additional.namespaces = runtime,system,vndk ############################################################################### # "default" namespace @@ -347,6 +351,20 @@ namespace.default.link.system.shared_libs = %LLNDK_LIBRARIES% namespace.default.link.vndk.shared_libs = %VNDK_SAMEPROCESS_LIBRARIES% namespace.default.link.vndk.shared_libs += %VNDK_CORE_LIBRARIES% +############################################################################### +# "runtime" APEX namespace +# +# This namespace exposes externally accessible libraries from the Runtime APEX. +############################################################################### +namespace.runtime.isolated = true + +# Keep in sync with ld.config.txt in the com.android.runtime APEX. +namespace.runtime.search.paths = /apex/com.android.runtime/${LIB} +namespace.runtime.links = system +# TODO(b/119867084): Restrict to Bionic dlopen dependencies and PALette library +# when it exists. +namespace.runtime.link.system.allow_all_shared_libs = true + ############################################################################### # "vndk" namespace # @@ -404,6 +422,9 @@ namespace.system.asan.search.paths += /%PRODUCT%/${LIB} namespace.system.asan.search.paths += /data/asan/product_services/${LIB} namespace.system.asan.search.paths += /%PRODUCT_SERVICES%/${LIB} +namespace.system.links = runtime +namespace.system.link.runtime.shared_libs = libdexfile_external.so + ############################################################################### # Namespace config for binaries under /postinstall. # Only default namespace is defined and default has no directories diff --git a/rootdir/etc/ld.config.vndk_lite.txt b/rootdir/etc/ld.config.vndk_lite.txt index b368805e5..d54156be6 100644 --- a/rootdir/etc/ld.config.vndk_lite.txt +++ b/rootdir/etc/ld.config.vndk_lite.txt @@ -55,9 +55,14 @@ namespace.default.asan.search.paths += /%PRODUCT%/${LIB} namespace.default.asan.search.paths += /data/asan/product_services/${LIB} namespace.default.asan.search.paths += /%PRODUCT_SERVICES%/${LIB} -# Keep in sync with ld.config.txt in the com.android.runtime APEX. +# Keep in sync with the platform namespace in the com.android.runtime APEX +# ld.config.txt. namespace.default.links = runtime +# Visible because some libraries are dlopen'ed, e.g. libopenjdk is dlopen'ed by +# libart. +namespace.default.visible = true namespace.default.link.runtime.shared_libs = libart.so:libartd.so +namespace.default.link.runtime.shared_libs += libdexfile_external.so namespace.default.link.runtime.shared_libs += libnativehelper.so namespace.default.link.runtime.shared_libs += libnativeloader.so @@ -68,7 +73,8 @@ namespace.default.link.runtime.shared_libs += libnativeloader.so ############################################################################### namespace.runtime.isolated = true -# Keep in sync with ld.config.txt in the com.android.runtime APEX. +# Keep in sync with the default namespace in the com.android.runtime APEX +# ld.config.txt. namespace.runtime.search.paths = /apex/com.android.runtime/${LIB} namespace.runtime.links = default # TODO(b/119867084): Restrict to Bionic dlopen dependencies and PALette library @@ -252,6 +258,8 @@ namespace.vndk.link.default.shared_libs += %SANITIZER_RUNTIME_LIBRARIES% # (LL-NDK only) access. ############################################################################### [vendor] +additional.namespaces = runtime + namespace.default.isolated = false namespace.default.search.paths = /odm/${LIB} @@ -291,6 +299,23 @@ namespace.default.asan.search.paths += /%PRODUCT%/${LIB} namespace.default.asan.search.paths += /data/asan/product_services/${LIB} namespace.default.asan.search.paths += /%PRODUCT_SERVICES%/${LIB} +namespace.default.links = runtime +namespace.default.link.runtime.shared_libs = libdexfile_external.so + +############################################################################### +# "runtime" APEX namespace +# +# This namespace exposes externally accessible libraries from the Runtime APEX. +############################################################################### +namespace.runtime.isolated = true + +# Keep in sync with ld.config.txt in the com.android.runtime APEX. +namespace.runtime.search.paths = /apex/com.android.runtime/${LIB} +namespace.runtime.links = default +# TODO(b/119867084): Restrict to Bionic dlopen dependencies and PALette library +# when it exists. +namespace.runtime.link.default.allow_all_shared_libs = true + ############################################################################### # Namespace config for binaries under /postinstall. # Only default namespace is defined and default has no directories