Merge changes from topic "vndk-sp-list-update"

* changes:
  Rename namespace configuration source files.
  Use actual VNDK list for non-VNDK-enforcing devices
This commit is contained in:
Treehugger Robot 2018-02-08 05:52:02 +00:00 committed by Gerrit Code Review
commit 4c0ee1e8a0
3 changed files with 178 additions and 231 deletions

View File

@ -192,11 +192,12 @@ endef # update_and_install_ld_config
# ld.config.txt
#
# For VNDK enforced devices that have defined BOARD_VNDK_VERSION, use
# "ld.config.txt.in" as a source file. This configuration includes strict VNDK
# "ld.config.txt" as a source file. This configuration includes strict VNDK
# run-time restrictions for vendor process.
# Other treblized devices, that have not defined BOARD_VNDK_VERSION or that
# have set BOARD_VNDK_RUNTIME_DISABLE to true, use "ld.config.txt" as a source
# file. This configuration does not have strict VNDK run-time restrictions.
# have set BOARD_VNDK_RUNTIME_DISABLE to true, use "ld.config.vndk_lite.txt"
# as a source file. This configuration does not have strict VNDK run-time
# restrictions.
# If the device is not treblized, use "ld.config.legacy.txt" for legacy
# namespace configuration.
include $(CLEAR_VARS)
@ -216,7 +217,7 @@ ifeq ($(_enforce_vndk_at_runtime),true)
LOCAL_MODULE_STEM := $(call append_vndk_version,$(LOCAL_MODULE))
include $(BUILD_SYSTEM)/base_rules.mk
$(eval $(call update_and_install_ld_config,\
$(LOCAL_PATH)/etc/ld.config.txt.in,\
$(LOCAL_PATH)/etc/ld.config.txt,\
$(LOCAL_BUILT_MODULE),\
$(PLATFORM_VNDK_VERSION)))
@ -225,7 +226,7 @@ else ifeq ($(PRODUCT_TREBLE_LINKER_NAMESPACES)|$(SANITIZE_TARGET),true|)
LOCAL_MODULE_STEM := $(call append_vndk_version,$(LOCAL_MODULE))
include $(BUILD_SYSTEM)/base_rules.mk
$(eval $(call update_and_install_ld_config,\
$(LOCAL_PATH)/etc/ld.config.txt,\
$(LOCAL_PATH)/etc/ld.config.vndk_lite.txt,\
$(LOCAL_BUILT_MODULE),\
$(if $(BOARD_VNDK_VERSION),$(PLATFORM_VNDK_VERSION))))
@ -244,9 +245,9 @@ _enforce_vndk_at_runtime :=
#
# This file is a temporary configuration file only for GSI. Originally GSI has
# BOARD_VNDK_VERSION defined and has strict VNDK enforcing rule based on
# "ld.config.txt.in". However for the devices, that have not defined
# "ld.config.txt". However for the devices, that have not defined
# BOARD_VNDK_VERSION, GSI provides this configuration file which is based on
# "ld.config.txt".
# "ld.config.vndk_lite.txt".
# Do not install this file for the devices other than GSI.
include $(CLEAR_VARS)
LOCAL_MODULE := ld.config.noenforce.txt
@ -255,7 +256,7 @@ LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)
LOCAL_MODULE_STEM := $(LOCAL_MODULE)
include $(BUILD_SYSTEM)/base_rules.mk
$(eval $(call update_and_install_ld_config,\
$(LOCAL_PATH)/etc/ld.config.txt,\
$(LOCAL_PATH)/etc/ld.config.vndk_lite.txt,\
$(LOCAL_BUILT_MODULE),\
$(PLATFORM_VNDK_VERSION)))

View File

@ -30,21 +30,55 @@ additional.namespaces = sphal,vndk,rs
###############################################################################
# "default" namespace
#
# Framework-side code runs in this namespace. However, libs from other
# partitions are also allowed temporarily.
# Framework-side code runs in this namespace. Libs from /vendor partition
# can't be loaded in this namespace.
###############################################################################
namespace.default.isolated = false
namespace.default.isolated = true
namespace.default.search.paths = /system/${LIB}
namespace.default.search.paths += /odm/${LIB}
namespace.default.search.paths += /vendor/${LIB}
namespace.default.search.paths = /system/${LIB}
# We can't have entire /system/${LIB} as permitted paths because doing so
# makes it possible to load libs in /system/${LIB}/vndk* directories by
# their absolute paths (e.g. dlopen("/system/lib/vndk/libbase.so");).
# VNDK libs are built with previous versions of Android and thus must not be
# loaded into this namespace where libs built with the current version of
# Android are loaded. Mixing the two types of libs in the same namespace can
# cause unexpected problem.
namespace.default.permitted.paths = /system/${LIB}/drm
namespace.default.permitted.paths += /system/${LIB}/extractors
namespace.default.permitted.paths += /system/${LIB}/hw
# These are where odex files are located. libart has to be able to dlopen the files
namespace.default.permitted.paths += /system/framework
namespace.default.permitted.paths += /system/app
namespace.default.permitted.paths += /system/priv-app
namespace.default.permitted.paths += /vendor/framework
namespace.default.permitted.paths += /vendor/app
namespace.default.permitted.paths += /vendor/priv-app
namespace.default.permitted.paths += /oem/app
namespace.default.permitted.paths += /product/framework
namespace.default.permitted.paths += /product/app
namespace.default.permitted.paths += /product/priv-app
namespace.default.permitted.paths += /data
namespace.default.permitted.paths += /mnt/expand
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}
namespace.default.asan.permitted.paths = /data
namespace.default.asan.permitted.paths += /system/${LIB}/drm
namespace.default.asan.permitted.paths += /system/${LIB}/extractors
namespace.default.asan.permitted.paths += /system/${LIB}/hw
namespace.default.asan.permitted.paths += /system/framework
namespace.default.asan.permitted.paths += /system/app
namespace.default.asan.permitted.paths += /system/priv-app
namespace.default.asan.permitted.paths += /vendor/framework
namespace.default.asan.permitted.paths += /vendor/app
namespace.default.asan.permitted.paths += /vendor/priv-app
namespace.default.asan.permitted.paths += /oem/app
namespace.default.asan.permitted.paths += /product/framework
namespace.default.asan.permitted.paths += /product/app
namespace.default.asan.permitted.paths += /product/priv-app
namespace.default.asan.permitted.paths += /mnt/expand
###############################################################################
# "sphal" namespace
@ -82,35 +116,10 @@ namespace.sphal.asan.permitted.paths += /vendor/${LIB}
# libs listed here can be used.
namespace.sphal.links = default,vndk,rs
# WARNING: only NDK libs can be listed here.
namespace.sphal.link.default.shared_libs = libc.so
namespace.sphal.link.default.shared_libs += libEGL.so
namespace.sphal.link.default.shared_libs += libGLESv1_CM.so
namespace.sphal.link.default.shared_libs += libGLESv2.so
namespace.sphal.link.default.shared_libs += libdl.so
namespace.sphal.link.default.shared_libs += liblog.so
namespace.sphal.link.default.shared_libs += libm.so
namespace.sphal.link.default.shared_libs += libnativewindow.so
namespace.sphal.link.default.shared_libs += libstdc++.so
namespace.sphal.link.default.shared_libs += libsync.so
namespace.sphal.link.default.shared_libs += libvndksupport.so
namespace.sphal.link.default.shared_libs += libz.so
namespace.sphal.link.default.shared_libs = %LLNDK_LIBRARIES%
namespace.sphal.link.default.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
# WARNING: only VNDK-SP libs can be listed here. DO NOT EDIT this line.
namespace.sphal.link.vndk.shared_libs = android.hardware.renderscript@1.0.so
namespace.sphal.link.vndk.shared_libs += android.hardware.graphics.common@1.0.so
namespace.sphal.link.vndk.shared_libs += android.hardware.graphics.mapper@2.0.so
namespace.sphal.link.vndk.shared_libs += android.hidl.memory@1.0.so
namespace.sphal.link.vndk.shared_libs += libbase.so
namespace.sphal.link.vndk.shared_libs += libc++.so
namespace.sphal.link.vndk.shared_libs += libcutils.so
namespace.sphal.link.vndk.shared_libs += libhardware.so
namespace.sphal.link.vndk.shared_libs += libhidlbase.so
namespace.sphal.link.vndk.shared_libs += libhidlmemory.so
namespace.sphal.link.vndk.shared_libs += libhidltransport.so
namespace.sphal.link.vndk.shared_libs += libhwbinder.so
namespace.sphal.link.vndk.shared_libs += libion.so
namespace.sphal.link.vndk.shared_libs += libutils.so
namespace.sphal.link.vndk.shared_libs = %VNDK_SAMEPROCESS_LIBRARIES%
# Renderscript gets separate namespace
namespace.sphal.link.rs.shared_libs = libRS_internal.so
@ -155,38 +164,13 @@ namespace.rs.asan.permitted.paths += /data
namespace.rs.links = default,vndk
namespace.rs.link.default.shared_libs = libc.so
namespace.rs.link.default.shared_libs += libEGL.so
namespace.rs.link.default.shared_libs += libGLESv1_CM.so
namespace.rs.link.default.shared_libs += libGLESv2.so
namespace.rs.link.default.shared_libs += libdl.so
namespace.rs.link.default.shared_libs += liblog.so
namespace.rs.link.default.shared_libs += libm.so
namespace.rs.link.default.shared_libs += libnativewindow.so
namespace.rs.link.default.shared_libs += libstdc++.so
namespace.rs.link.default.shared_libs += libsync.so
namespace.rs.link.default.shared_libs += libvndksupport.so
namespace.rs.link.default.shared_libs += libz.so
# These two libs are private LLNDK libs but are exceptionally visible
# in this 'rs' namespace because RenderScript framework libraries
# which are loaded into this namespace are using them.
namespace.rs.link.default.shared_libs += libft2.so
namespace.rs.link.default.shared_libs += libmediandk.so
namespace.rs.link.default.shared_libs = %LLNDK_LIBRARIES%
namespace.rs.link.default.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
# Private LLNDK libs (e.g. libft2.so) are exceptionally allowed to this
# namespace because RS framework libs are using them.
namespace.rs.link.default.shared_libs += %PRIVATE_LLNDK_LIBRARIES%
namespace.rs.link.vndk.shared_libs = android.hardware.renderscript@1.0.so
namespace.rs.link.vndk.shared_libs += android.hardware.graphics.common@1.0.so
namespace.rs.link.vndk.shared_libs += android.hardware.graphics.mapper@2.0.so
namespace.rs.link.vndk.shared_libs += android.hidl.memory@1.0.so
namespace.rs.link.vndk.shared_libs += libbase.so
namespace.rs.link.vndk.shared_libs += libc++.so
namespace.rs.link.vndk.shared_libs += libcutils.so
namespace.rs.link.vndk.shared_libs += libhardware.so
namespace.rs.link.vndk.shared_libs += libhidlbase.so
namespace.rs.link.vndk.shared_libs += libhidlmemory.so
namespace.rs.link.vndk.shared_libs += libhidltransport.so
namespace.rs.link.vndk.shared_libs += libhwbinder.so
namespace.rs.link.vndk.shared_libs += libion.so
namespace.rs.link.vndk.shared_libs += libutils.so
namespace.rs.link.vndk.shared_libs = %VNDK_SAMEPROCESS_LIBRARIES%
###############################################################################
# "vndk" namespace
@ -204,6 +188,8 @@ namespace.vndk.permitted.paths = /odm/${LIB}/hw
namespace.vndk.permitted.paths += /odm/${LIB}/egl
namespace.vndk.permitted.paths += /vendor/${LIB}/hw
namespace.vndk.permitted.paths += /vendor/${LIB}/egl
# This is exceptionally required since android.hidl.memory@1.0-impl.so is here
namespace.vndk.permitted.paths += /system/${LIB}/vndk-sp%VNDK_VER%/hw
namespace.vndk.asan.search.paths = /data/asan/odm/${LIB}/vndk-sp
namespace.vndk.asan.search.paths += /odm/${LIB}/vndk-sp
@ -221,21 +207,15 @@ namespace.vndk.asan.permitted.paths += /vendor/${LIB}/hw
namespace.vndk.asan.permitted.paths += /data/asan/vendor/${LIB}/egl
namespace.vndk.asan.permitted.paths += /vendor/${LIB}/egl
namespace.vndk.asan.permitted.paths += /data/asan/system/${LIB}/vndk-sp%VNDK_VER%/hw
namespace.vndk.asan.permitted.paths += /system/${LIB}/vndk-sp%VNDK_VER%/hw
# When these NDK libs are required inside this namespace, then it is redirected
# to the default namespace. This is possible since their ABI is stable across
# Android releases.
namespace.vndk.links = default
namespace.vndk.link.default.shared_libs = android.hidl.memory@1.0-impl.so
namespace.vndk.link.default.shared_libs += libEGL.so
namespace.vndk.link.default.shared_libs += libc.so
namespace.vndk.link.default.shared_libs += libdl.so
namespace.vndk.link.default.shared_libs += liblog.so
namespace.vndk.link.default.shared_libs += libm.so
namespace.vndk.link.default.shared_libs += libnativewindow.so
namespace.vndk.link.default.shared_libs += libstdc++.so
namespace.vndk.link.default.shared_libs += libsync.so
namespace.vndk.link.default.shared_libs += libvndksupport.so
namespace.vndk.link.default.shared_libs += libz.so
namespace.vndk.link.default.shared_libs = %LLNDK_LIBRARIES%
namespace.vndk.link.default.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
###############################################################################
# Namespace config for vendor processes. In O, no restriction is enforced for
@ -244,35 +224,88 @@ namespace.vndk.link.default.shared_libs += libz.so
# (LL-NDK only) access.
###############################################################################
[vendor]
namespace.default.isolated = false
additional.namespaces = system,vndk
###############################################################################
# "default" namespace
#
# This is the default linker namespace for a vendor process (a process started
# from /vendor/bin/*). The main executable and the libs under /vendor/lib[64]
# are loaded directly into this namespace. However, other libs under the system
# partition (VNDK and LLNDK libraries) are not loaded here but from the
# separate namespace 'system'. The delegation to the system namespace is done
# via the 'namespace.default.link.system.shared_libs' property below.
###############################################################################
namespace.default.isolated = true
namespace.default.visible = true
namespace.default.search.paths = /odm/${LIB}
namespace.default.search.paths += /odm/${LIB}/vndk
namespace.default.search.paths += /odm/${LIB}/vndk-sp
namespace.default.search.paths += /vendor/${LIB}
namespace.default.search.paths += /vendor/${LIB}/vndk
namespace.default.search.paths += /vendor/${LIB}/vndk-sp
# Access to system libraries are allowed
namespace.default.search.paths += /system/${LIB}/vndk%VNDK_VER%
namespace.default.search.paths += /system/${LIB}/vndk-sp%VNDK_VER%
namespace.default.search.paths += /system/${LIB}
namespace.default.permitted.paths = /odm
namespace.default.permitted.paths += /vendor
namespace.default.asan.search.paths = /data/asan/odm/${LIB}
namespace.default.asan.search.paths += /odm/${LIB}
namespace.default.asan.search.paths += /data/asan/odm/${LIB}/vndk
namespace.default.asan.search.paths += /odm/${LIB}/vndk
namespace.default.asan.search.paths += /data/asan/odm/${LIB}/vndk-sp
namespace.default.asan.search.paths += /odm/${LIB}/vndk-sp
namespace.default.asan.search.paths += /data/asan/vendor/${LIB}
namespace.default.asan.search.paths += /vendor/${LIB}
namespace.default.asan.search.paths += /data/asan/vendor/${LIB}/vndk
namespace.default.asan.search.paths += /vendor/${LIB}/vndk
namespace.default.asan.search.paths += /data/asan/vendor/${LIB}/vndk-sp
namespace.default.asan.search.paths += /vendor/${LIB}/vndk-sp
namespace.default.asan.search.paths += /data/asan/system/${LIB}/vndk%VNDK_VER%
namespace.default.asan.search.paths += /system/${LIB}/vndk%VNDK_VER%
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.default.asan.permitted.paths = /data/asan/odm
namespace.default.asan.permitted.paths += /odm
namespace.default.asan.permitted.paths += /data/asan/vendor
namespace.default.asan.permitted.paths += /vendor
namespace.default.links = system,vndk
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%
###############################################################################
# "vndk" namespace
#
# This namespace is where VNDK and VNDK-SP libraries are loaded for
# a vendor process.
###############################################################################
namespace.vndk.isolated = false
namespace.vndk.search.paths = /odm/${LIB}/vndk
namespace.vndk.search.paths += /odm/${LIB}/vndk-sp
namespace.vndk.search.paths += /vendor/${LIB}/vndk
namespace.vndk.search.paths += /vendor/${LIB}/vndk-sp
namespace.vndk.search.paths += /system/${LIB}/vndk-sp%VNDK_VER%
namespace.vndk.search.paths += /system/${LIB}/vndk%VNDK_VER%
namespace.vndk.asan.search.paths = /data/asan/odm/${LIB}/vndk
namespace.vndk.asan.search.paths += /odm/${LIB}/vndk
namespace.vndk.asan.search.paths += /data/asan/odm/${LIB}/vndk-sp
namespace.vndk.asan.search.paths += /odm/${LIB}/vndk-sp
namespace.vndk.asan.search.paths += /data/asan/vendor/${LIB}/vndk
namespace.vndk.asan.search.paths += /vendor/${LIB}/vndk
namespace.vndk.asan.search.paths += /data/asan/vendor/${LIB}/vndk-sp
namespace.vndk.asan.search.paths += /vendor/${LIB}/vndk-sp
namespace.vndk.asan.search.paths += /data/asan/system/${LIB}/vndk-sp%VNDK_VER%
namespace.vndk.asan.search.paths += /system/${LIB}/vndk-sp%VNDK_VER%
namespace.vndk.asan.search.paths += /data/asan/system/${LIB}/vndk%VNDK_VER%
namespace.vndk.asan.search.paths += /system/${LIB}/vndk%VNDK_VER%
# When these NDK libs are required inside this namespace, then it is redirected
# to the system namespace. This is possible since their ABI is stable across
# Android releases.
namespace.vndk.links = system,default
namespace.vndk.link.system.shared_libs = %LLNDK_LIBRARIES%
namespace.vndk.link.system.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
namespace.vndk.link.default.allow_all_shared_libs = true
###############################################################################
# "system" namespace
#
# This namespace is where system libs (VNDK and LLNDK libs) are loaded for
# a vendor process.
###############################################################################
namespace.system.isolated = false
namespace.system.search.paths = /system/${LIB}
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}

View File

@ -30,55 +30,21 @@ additional.namespaces = sphal,vndk,rs
###############################################################################
# "default" namespace
#
# Framework-side code runs in this namespace. Libs from /vendor partition
# can't be loaded in this namespace.
# Framework-side code runs in this namespace. However, libs from other
# partitions are also allowed temporarily.
###############################################################################
namespace.default.isolated = true
namespace.default.isolated = false
namespace.default.search.paths = /system/${LIB}
# We can't have entire /system/${LIB} as permitted paths because doing so
# makes it possible to load libs in /system/${LIB}/vndk* directories by
# their absolute paths (e.g. dlopen("/system/lib/vndk/libbase.so");).
# VNDK libs are built with previous versions of Android and thus must not be
# loaded into this namespace where libs built with the current version of
# Android are loaded. Mixing the two types of libs in the same namespace can
# cause unexpected problem.
namespace.default.permitted.paths = /system/${LIB}/drm
namespace.default.permitted.paths += /system/${LIB}/extractors
namespace.default.permitted.paths += /system/${LIB}/hw
# These are where odex files are located. libart has to be able to dlopen the files
namespace.default.permitted.paths += /system/framework
namespace.default.permitted.paths += /system/app
namespace.default.permitted.paths += /system/priv-app
namespace.default.permitted.paths += /vendor/framework
namespace.default.permitted.paths += /vendor/app
namespace.default.permitted.paths += /vendor/priv-app
namespace.default.permitted.paths += /oem/app
namespace.default.permitted.paths += /product/framework
namespace.default.permitted.paths += /product/app
namespace.default.permitted.paths += /product/priv-app
namespace.default.permitted.paths += /data
namespace.default.permitted.paths += /mnt/expand
namespace.default.search.paths = /system/${LIB}
namespace.default.search.paths += /odm/${LIB}
namespace.default.search.paths += /vendor/${LIB}
namespace.default.asan.search.paths = /data/asan/system/${LIB}
namespace.default.asan.search.paths += /system/${LIB}
namespace.default.asan.permitted.paths = /data
namespace.default.asan.permitted.paths += /system/${LIB}/drm
namespace.default.asan.permitted.paths += /system/${LIB}/extractors
namespace.default.asan.permitted.paths += /system/${LIB}/hw
namespace.default.asan.permitted.paths += /system/framework
namespace.default.asan.permitted.paths += /system/app
namespace.default.asan.permitted.paths += /system/priv-app
namespace.default.asan.permitted.paths += /vendor/framework
namespace.default.asan.permitted.paths += /vendor/app
namespace.default.asan.permitted.paths += /vendor/priv-app
namespace.default.asan.permitted.paths += /oem/app
namespace.default.asan.permitted.paths += /product/framework
namespace.default.asan.permitted.paths += /product/app
namespace.default.asan.permitted.paths += /product/priv-app
namespace.default.asan.permitted.paths += /mnt/expand
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}
###############################################################################
# "sphal" namespace
@ -224,88 +190,35 @@ namespace.vndk.link.default.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
# (LL-NDK only) access.
###############################################################################
[vendor]
additional.namespaces = system,vndk
###############################################################################
# "default" namespace
#
# This is the default linker namespace for a vendor process (a process started
# from /vendor/bin/*). The main executable and the libs under /vendor/lib[64]
# are loaded directly into this namespace. However, other libs under the system
# partition (VNDK and LLNDK libraries) are not loaded here but from the
# separate namespace 'system'. The delegation to the system namespace is done
# via the 'namespace.default.link.system.shared_libs' property below.
###############################################################################
namespace.default.isolated = true
namespace.default.visible = true
namespace.default.isolated = false
namespace.default.search.paths = /odm/${LIB}
namespace.default.search.paths += /odm/${LIB}/vndk
namespace.default.search.paths += /odm/${LIB}/vndk-sp
namespace.default.search.paths += /vendor/${LIB}
namespace.default.search.paths += /vendor/${LIB}/vndk
namespace.default.search.paths += /vendor/${LIB}/vndk-sp
namespace.default.permitted.paths = /odm
namespace.default.permitted.paths += /vendor
# Access to system libraries are allowed
namespace.default.search.paths += /system/${LIB}/vndk%VNDK_VER%
namespace.default.search.paths += /system/${LIB}/vndk-sp%VNDK_VER%
namespace.default.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/odm/${LIB}/vndk
namespace.default.asan.search.paths += /odm/${LIB}/vndk
namespace.default.asan.search.paths += /data/asan/odm/${LIB}/vndk-sp
namespace.default.asan.search.paths += /odm/${LIB}/vndk-sp
namespace.default.asan.search.paths += /data/asan/vendor/${LIB}
namespace.default.asan.search.paths += /vendor/${LIB}
namespace.default.asan.permitted.paths = /data/asan/odm
namespace.default.asan.permitted.paths += /odm
namespace.default.asan.permitted.paths += /data/asan/vendor
namespace.default.asan.permitted.paths += /vendor
namespace.default.links = system,vndk
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%
###############################################################################
# "vndk" namespace
#
# This namespace is where VNDK and VNDK-SP libraries are loaded for
# a vendor process.
###############################################################################
namespace.vndk.isolated = false
namespace.vndk.search.paths = /odm/${LIB}/vndk
namespace.vndk.search.paths += /odm/${LIB}/vndk-sp
namespace.vndk.search.paths += /vendor/${LIB}/vndk
namespace.vndk.search.paths += /vendor/${LIB}/vndk-sp
namespace.vndk.search.paths += /system/${LIB}/vndk-sp%VNDK_VER%
namespace.vndk.search.paths += /system/${LIB}/vndk%VNDK_VER%
namespace.vndk.asan.search.paths = /data/asan/odm/${LIB}/vndk
namespace.vndk.asan.search.paths += /odm/${LIB}/vndk
namespace.vndk.asan.search.paths += /data/asan/odm/${LIB}/vndk-sp
namespace.vndk.asan.search.paths += /odm/${LIB}/vndk-sp
namespace.vndk.asan.search.paths += /data/asan/vendor/${LIB}/vndk
namespace.vndk.asan.search.paths += /vendor/${LIB}/vndk
namespace.vndk.asan.search.paths += /data/asan/vendor/${LIB}/vndk-sp
namespace.vndk.asan.search.paths += /vendor/${LIB}/vndk-sp
namespace.vndk.asan.search.paths += /data/asan/system/${LIB}/vndk-sp%VNDK_VER%
namespace.vndk.asan.search.paths += /system/${LIB}/vndk-sp%VNDK_VER%
namespace.vndk.asan.search.paths += /data/asan/system/${LIB}/vndk%VNDK_VER%
namespace.vndk.asan.search.paths += /system/${LIB}/vndk%VNDK_VER%
# When these NDK libs are required inside this namespace, then it is redirected
# to the system namespace. This is possible since their ABI is stable across
# Android releases.
namespace.vndk.links = system,default
namespace.vndk.link.system.shared_libs = %LLNDK_LIBRARIES%
namespace.vndk.link.system.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
namespace.vndk.link.default.allow_all_shared_libs = true
###############################################################################
# "system" namespace
#
# This namespace is where system libs (VNDK and LLNDK libs) are loaded for
# a vendor process.
###############################################################################
namespace.system.isolated = false
namespace.system.search.paths = /system/${LIB}
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.default.asan.search.paths += /data/asan/vendor/${LIB}/vndk
namespace.default.asan.search.paths += /vendor/${LIB}/vndk
namespace.default.asan.search.paths += /data/asan/vendor/${LIB}/vndk-sp
namespace.default.asan.search.paths += /vendor/${LIB}/vndk-sp
namespace.default.asan.search.paths += /data/asan/system/${LIB}/vndk%VNDK_VER%
namespace.default.asan.search.paths += /system/${LIB}/vndk%VNDK_VER%
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}