diff --git a/rootdir/etc/ld.config.legacy.txt b/rootdir/etc/ld.config.legacy.txt index d55ec57cc..ca6aafe41 100644 --- a/rootdir/etc/ld.config.legacy.txt +++ b/rootdir/etc/ld.config.legacy.txt @@ -10,6 +10,9 @@ dir.legacy = /vendor dir.legacy = /odm dir.legacy = /sbin +# Except for /postinstall, where only /system is searched +dir.postinstall = /postinstall + [legacy] namespace.default.isolated = false @@ -23,3 +26,15 @@ 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} + +############################################################################### +# Namespace config for binaries under /postinstall. +# Only one default namespace is defined and it has no directories other than +# /system/lib in the search paths. This is because linker calls realpath on the +# search paths and this causes selinux denial if the paths (/vendor, /odm) are +# not allowed to the poinstall binaries. There is no reason to allow the +# binaries to access the paths. +############################################################################### +[postinstall] +namespace.default.isolated = false +namespace.default.search.paths = /system/${LIB} diff --git a/rootdir/etc/ld.config.txt b/rootdir/etc/ld.config.txt index 6e46295d5..94465f4a1 100644 --- a/rootdir/etc/ld.config.txt +++ b/rootdir/etc/ld.config.txt @@ -24,6 +24,8 @@ dir.system = /data/nativetest64 dir.system = /data/benchmarktest dir.system = /data/benchmarktest64 +dir.postinstall = /postinstall + [system] additional.namespaces = sphal,vndk,rs @@ -315,3 +317,15 @@ namespace.system.search.paths = /system/${LIB} namespace.system.asan.search.paths = /data/asan/system/${LIB} namespace.system.asan.search.paths += /system/${LIB} + +############################################################################### +# Namespace config for binaries under /postinstall. +# Only one default namespace is defined and it has no directories other than +# /system/lib in the search paths. This is because linker calls realpath on the +# search paths and this causes selinux denial if the paths (/vendor, /odm) are +# not allowed to the poinstall binaries. There is no reason to allow the +# binaries to access the paths. +############################################################################### +[postinstall] +namespace.default.isolated = false +namespace.default.search.paths = /system/${LIB} diff --git a/rootdir/etc/ld.config.vndk_lite.txt b/rootdir/etc/ld.config.vndk_lite.txt index 5256cb153..1fd419586 100644 --- a/rootdir/etc/ld.config.vndk_lite.txt +++ b/rootdir/etc/ld.config.vndk_lite.txt @@ -24,6 +24,8 @@ dir.system = /data/nativetest64 dir.system = /data/benchmarktest dir.system = /data/benchmarktest64 +dir.postinstall = /postinstall + [system] additional.namespaces = sphal,vndk,rs @@ -222,3 +224,15 @@ namespace.default.asan.search.paths += /data/asan/system/${LIB}/vndk-sp%VNDK_VER namespace.default.asan.search.paths += /system/${LIB}/vndk-sp%VNDK_VER% namespace.default.asan.search.paths += /data/asan/system/${LIB} namespace.default.asan.search.paths += /system/${LIB} + +############################################################################### +# Namespace config for binaries under /postinstall. +# Only one default namespace is defined and it has no directories other than +# /system/lib in the search paths. This is because linker calls realpath on the +# search paths and this causes selinux denial if the paths (/vendor, /odm) are +# not allowed to the poinstall binaries. There is no reason to allow the +# binaries to access the paths. +############################################################################### +[postinstall] +namespace.default.isolated = false +namespace.default.search.paths = /system/${LIB}