Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3060be35 authored by Justin Yun's avatar Justin Yun Committed by android-build-merger
Browse files

Merge "Add VNDK version suffix in ld.config.txt on build time."

am: 447280ce

Change-Id: Id4e165610e03ca7b8f0bc9aca781382f48f2cd1c
parents b4d9751e 447280ce
Loading
Loading
Loading
Loading
+97 −51
Original line number Original line Diff line number Diff line
@@ -135,37 +135,20 @@ $(strip \
)
)
endef
endef


#######################################
# Update namespace configuration file with library lists and VNDK version
# ld.config.txt
#
include $(CLEAR_VARS)
# $(1): Input source file (ld.config.txt)

# $(2): Output built module
_enforce_vndk_at_runtime := false
# $(3): VNDK version suffix

define update_and_install_ld_config
ifdef BOARD_VNDK_VERSION
ifneq ($(BOARD_VNDK_RUNTIME_DISABLE),true)
  _enforce_vndk_at_runtime := true
endif
endif

ifeq ($(_enforce_vndk_at_runtime),true)
LOCAL_MODULE := ld.config.txt
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)
LOCAL_MODULE_STEM := $(call append_vndk_version,$(LOCAL_MODULE))
include $(BUILD_SYSTEM)/base_rules.mk

llndk_libraries := $(call normalize-path-list,$(addsuffix .so,\
llndk_libraries := $(call normalize-path-list,$(addsuffix .so,\
  $(filter-out $(VNDK_PRIVATE_LIBRARIES),$(LLNDK_LIBRARIES))))
  $(filter-out $(VNDK_PRIVATE_LIBRARIES),$(LLNDK_LIBRARIES))))

private_llndk_libraries := $(call normalize-path-list,$(addsuffix .so,\
private_llndk_libraries := $(call normalize-path-list,$(addsuffix .so,\
  $(filter $(VNDK_PRIVATE_LIBRARIES),$(LLNDK_LIBRARIES))))
  $(filter $(VNDK_PRIVATE_LIBRARIES),$(LLNDK_LIBRARIES))))

vndk_sameprocess_libraries := $(call normalize-path-list,$(addsuffix .so,\
vndk_sameprocess_libraries := $(call normalize-path-list,$(addsuffix .so,\
  $(filter-out $(VNDK_PRIVATE_LIBRARIES),$(VNDK_SAMEPROCESS_LIBRARIES))))
  $(filter-out $(VNDK_PRIVATE_LIBRARIES),$(VNDK_SAMEPROCESS_LIBRARIES))))

vndk_core_libraries := $(call normalize-path-list,$(addsuffix .so,\
vndk_core_libraries := $(call normalize-path-list,$(addsuffix .so,\
  $(filter-out $(VNDK_PRIVATE_LIBRARIES),$(VNDK_CORE_LIBRARIES))))
  $(filter-out $(VNDK_PRIVATE_LIBRARIES),$(VNDK_CORE_LIBRARIES))))

sanitizer_runtime_libraries := $(call normalize-path-list,$(addsuffix .so,\
sanitizer_runtime_libraries := $(call normalize-path-list,$(addsuffix .so,\
  $(ADDRESS_SANITIZER_RUNTIME_LIBRARY) \
  $(ADDRESS_SANITIZER_RUNTIME_LIBRARY) \
  $(UBSAN_RUNTIME_LIBRARY) \
  $(UBSAN_RUNTIME_LIBRARY) \
@@ -173,40 +156,103 @@ $(TSAN_RUNTIME_LIBRARY) \
  $(2ND_ADDRESS_SANITIZER_RUNTIME_LIBRARY) \
  $(2ND_ADDRESS_SANITIZER_RUNTIME_LIBRARY) \
  $(2ND_UBSAN_RUNTIME_LIBRARY) \
  $(2ND_UBSAN_RUNTIME_LIBRARY) \
  $(2ND_TSAN_RUNTIME_LIBRARY)))
  $(2ND_TSAN_RUNTIME_LIBRARY)))

# If BOARD_VNDK_VERSION is not defined, VNDK version suffix will not be used.
$(LOCAL_BUILT_MODULE): PRIVATE_LLNDK_LIBRARIES := $(llndk_libraries)
vndk_version_suffix := $(if $(strip $(3)),-$(strip $(3)))
$(LOCAL_BUILT_MODULE): PRIVATE_PRIVATE_LLNDK_LIBRARIES := $(private_llndk_libraries)

$(LOCAL_BUILT_MODULE): PRIVATE_VNDK_SAMEPROCESS_LIBRARIES := $(vndk_sameprocess_libraries)
$(2): PRIVATE_LLNDK_LIBRARIES := $$(llndk_libraries)
$(LOCAL_BUILT_MODULE): PRIVATE_LLNDK_PRIVATE_LIBRARIES := $(llndk_private_libraries)
$(2): PRIVATE_PRIVATE_LLNDK_LIBRARIES := $$(private_llndk_libraries)
$(LOCAL_BUILT_MODULE): PRIVATE_VNDK_CORE_LIBRARIES := $(vndk_core_libraries)
$(2): PRIVATE_VNDK_SAMEPROCESS_LIBRARIES := $$(vndk_sameprocess_libraries)
$(LOCAL_BUILT_MODULE): PRIVATE_SANITIZER_RUNTIME_LIBRARIES := $(sanitizer_runtime_libraries)
$(2): PRIVATE_VNDK_CORE_LIBRARIES := $$(vndk_core_libraries)
$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/etc/ld.config.txt.in
$(2): PRIVATE_SANITIZER_RUNTIME_LIBRARIES := $$(sanitizer_runtime_libraries)
	@echo "Generate: $< -> $@"
$(2): PRIVATE_VNDK_VERSION := $$(vndk_version_suffix)
	@mkdir -p $(dir $@)
$(2): $(1)
	$(hide) sed -e 's?%LLNDK_LIBRARIES%?$(PRIVATE_LLNDK_LIBRARIES)?g' $< >$@
	@echo "Generate: $$< -> $$@"
	$(hide) sed -i -e 's?%PRIVATE_LLNDK_LIBRARIES%?$(PRIVATE_PRIVATE_LLNDK_LIBRARIES)?g' $@
	@mkdir -p $$(dir $$@)
	$(hide) sed -i -e 's?%VNDK_SAMEPROCESS_LIBRARIES%?$(PRIVATE_VNDK_SAMEPROCESS_LIBRARIES)?g' $@
	$$(hide) sed -e 's?%LLNDK_LIBRARIES%?$$(PRIVATE_LLNDK_LIBRARIES)?g' $$< >$$@
	$(hide) sed -i -e 's?%VNDK_CORE_LIBRARIES%?$(PRIVATE_VNDK_CORE_LIBRARIES)?g' $@
	$$(hide) sed -i -e 's?%PRIVATE_LLNDK_LIBRARIES%?$$(PRIVATE_PRIVATE_LLNDK_LIBRARIES)?g' $$@
	$(hide) sed -i -e 's?%SANITIZER_RUNTIME_LIBRARIES%?$(PRIVATE_SANITIZER_RUNTIME_LIBRARIES)?g' $@
	$$(hide) sed -i -e 's?%VNDK_SAMEPROCESS_LIBRARIES%?$$(PRIVATE_VNDK_SAMEPROCESS_LIBRARIES)?g' $$@
	$$(hide) sed -i -e 's?%VNDK_CORE_LIBRARIES%?$$(PRIVATE_VNDK_CORE_LIBRARIES)?g' $$@
	$$(hide) sed -i -e 's?%SANITIZER_RUNTIME_LIBRARIES%?$$(PRIVATE_SANITIZER_RUNTIME_LIBRARIES)?g' $$@
	$$(hide) sed -i -e 's?%VNDK_VER%?$$(PRIVATE_VNDK_VERSION)?g' $$@


llndk_libraries :=
llndk_libraries :=
private_llndk_libraries :=
vndk_sameprocess_libraries :=
vndk_sameprocess_libraries :=
vndk_core_libraries :=
vndk_core_libraries :=
sanitizer_runtime_libraries :=
sanitizer_runtime_libraries :=
else # if _enforce_vndk_at_runtime is not true
vndk_version_suffix :=
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
# 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.
# If the device is not treblized, use "ld.config.legacy.txt" for legacy
# namespace configuration.
include $(CLEAR_VARS)
LOCAL_MODULE := ld.config.txt
LOCAL_MODULE := ld.config.txt
ifeq ($(PRODUCT_TREBLE_LINKER_NAMESPACES)|$(SANITIZE_TARGET),true|)
LOCAL_MODULE_CLASS := ETC
  LOCAL_SRC_FILES := etc/ld.config.txt
LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)

_enforce_vndk_at_runtime := false
ifdef BOARD_VNDK_VERSION
ifneq ($(BOARD_VNDK_RUNTIME_DISABLE),true)
  _enforce_vndk_at_runtime := true
endif
endif

ifeq ($(_enforce_vndk_at_runtime),true)
# for VNDK enforced devices
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_BUILT_MODULE),\
  $(PLATFORM_VNDK_VERSION)))

else ifeq ($(PRODUCT_TREBLE_LINKER_NAMESPACES)|$(SANITIZE_TARGET),true|)
# for treblized but VNDK non-enforced devices
LOCAL_MODULE_STEM := $(call append_vndk_version,$(LOCAL_MODULE))
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_BUILT_MODULE),\
  $(if $(BOARD_VNDK_VERSION),$(PLATFORM_VNDK_VERSION))))

else
else
# for legacy non-treblized devices
LOCAL_SRC_FILES := etc/ld.config.legacy.txt
LOCAL_SRC_FILES := etc/ld.config.legacy.txt
LOCAL_MODULE_STEM := $(LOCAL_MODULE)
LOCAL_MODULE_STEM := $(LOCAL_MODULE)
endif
include $(BUILD_PREBUILT)

endif # if _enforce_vndk_at_runtime is true

_enforce_vndk_at_runtime :=

#######################################
# ld.config.noenforce.txt
#
# 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
# BOARD_VNDK_VERSION, GSI provides this configuration file which is based on
# "ld.config.txt".
# Do not install this file for the devices other than GSI.
include $(CLEAR_VARS)
LOCAL_MODULE := ld.config.noenforce.txt
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)
LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)
include $(BUILD_PREBUILT)
LOCAL_MODULE_STEM := $(LOCAL_MODULE)
endif
include $(BUILD_SYSTEM)/base_rules.mk
$(eval $(call update_and_install_ld_config,\
  $(LOCAL_PATH)/etc/ld.config.txt,\
  $(LOCAL_BUILT_MODULE),\
  $(PLATFORM_VNDK_VERSION)))


#######################################
#######################################
# llndk.libraries.txt
# llndk.libraries.txt
+12 −12
Original line number Original line Diff line number Diff line
@@ -128,7 +128,7 @@ namespace.rs.visible = true


namespace.rs.search.paths  = /odm/${LIB}/vndk-sp
namespace.rs.search.paths  = /odm/${LIB}/vndk-sp
namespace.rs.search.paths += /vendor/${LIB}/vndk-sp
namespace.rs.search.paths += /vendor/${LIB}/vndk-sp
namespace.rs.search.paths += /system/${LIB}/vndk-sp${VNDK_VER}
namespace.rs.search.paths += /system/${LIB}/vndk-sp%VNDK_VER%
namespace.rs.search.paths += /odm/${LIB}
namespace.rs.search.paths += /odm/${LIB}
namespace.rs.search.paths += /vendor/${LIB}
namespace.rs.search.paths += /vendor/${LIB}


@@ -140,8 +140,8 @@ namespace.rs.asan.search.paths = /data/asan/odm/${LIB}/vndk-sp
namespace.rs.asan.search.paths +=           /odm/${LIB}/vndk-sp
namespace.rs.asan.search.paths +=           /odm/${LIB}/vndk-sp
namespace.rs.asan.search.paths += /data/asan/vendor/${LIB}/vndk-sp
namespace.rs.asan.search.paths += /data/asan/vendor/${LIB}/vndk-sp
namespace.rs.asan.search.paths +=           /vendor/${LIB}/vndk-sp
namespace.rs.asan.search.paths +=           /vendor/${LIB}/vndk-sp
namespace.rs.asan.search.paths += /data/asan/system/${LIB}/vndk-sp${VNDK_VER}
namespace.rs.asan.search.paths += /data/asan/system/${LIB}/vndk-sp%VNDK_VER%
namespace.rs.asan.search.paths +=           /system/${LIB}/vndk-sp${VNDK_VER}
namespace.rs.asan.search.paths +=           /system/${LIB}/vndk-sp%VNDK_VER%
namespace.rs.asan.search.paths += /data/asan/odm/${LIB}
namespace.rs.asan.search.paths += /data/asan/odm/${LIB}
namespace.rs.asan.search.paths +=           /odm/${LIB}
namespace.rs.asan.search.paths +=           /odm/${LIB}
namespace.rs.asan.search.paths += /data/asan/vendor/${LIB}
namespace.rs.asan.search.paths += /data/asan/vendor/${LIB}
@@ -198,7 +198,7 @@ namespace.vndk.visible = true


namespace.vndk.search.paths  = /odm/${LIB}/vndk-sp
namespace.vndk.search.paths  = /odm/${LIB}/vndk-sp
namespace.vndk.search.paths += /vendor/${LIB}/vndk-sp
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-sp%VNDK_VER%


namespace.vndk.permitted.paths  = /odm/${LIB}/hw
namespace.vndk.permitted.paths  = /odm/${LIB}/hw
namespace.vndk.permitted.paths += /odm/${LIB}/egl
namespace.vndk.permitted.paths += /odm/${LIB}/egl
@@ -209,8 +209,8 @@ 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 +=           /odm/${LIB}/vndk-sp
namespace.vndk.asan.search.paths += /data/asan/vendor/${LIB}/vndk-sp
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 +=           /vendor/${LIB}/vndk-sp
namespace.vndk.asan.search.paths += /data/asan/system/${LIB}/vndk-sp${VNDK_VER}
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 +=           /system/${LIB}/vndk-sp%VNDK_VER%


namespace.vndk.asan.permitted.paths  = /data/asan/odm/${LIB}/hw
namespace.vndk.asan.permitted.paths  = /data/asan/odm/${LIB}/hw
namespace.vndk.asan.permitted.paths +=           /odm/${LIB}/hw
namespace.vndk.asan.permitted.paths +=           /odm/${LIB}/hw
@@ -254,8 +254,8 @@ namespace.default.search.paths += /vendor/${LIB}/vndk
namespace.default.search.paths += /vendor/${LIB}/vndk-sp
namespace.default.search.paths += /vendor/${LIB}/vndk-sp


# Access to system libraries are allowed
# Access to system libraries are allowed
namespace.default.search.paths += /system/${LIB}/vndk${VNDK_VER}
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}/vndk-sp%VNDK_VER%
namespace.default.search.paths += /system/${LIB}
namespace.default.search.paths += /system/${LIB}


namespace.default.asan.search.paths  = /data/asan/odm/${LIB}
namespace.default.asan.search.paths  = /data/asan/odm/${LIB}
@@ -270,9 +270,9 @@ namespace.default.asan.search.paths += /data/asan/vendor/${LIB}/vndk
namespace.default.asan.search.paths +=           /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 += /data/asan/vendor/${LIB}/vndk-sp
namespace.default.asan.search.paths +=           /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 += /data/asan/system/${LIB}/vndk%VNDK_VER%
namespace.default.asan.search.paths +=           /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 += /data/asan/system/${LIB}/vndk-sp%VNDK_VER%
namespace.default.asan.search.paths +=           /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 += /data/asan/system/${LIB}
namespace.default.asan.search.paths +=           /system/${LIB}
namespace.default.asan.search.paths +=           /system/${LIB}
+15 −15
Original line number Original line Diff line number Diff line
@@ -131,7 +131,7 @@ namespace.rs.visible = true


namespace.rs.search.paths  = /odm/${LIB}/vndk-sp
namespace.rs.search.paths  = /odm/${LIB}/vndk-sp
namespace.rs.search.paths += /vendor/${LIB}/vndk-sp
namespace.rs.search.paths += /vendor/${LIB}/vndk-sp
namespace.rs.search.paths += /system/${LIB}/vndk-sp${VNDK_VER}
namespace.rs.search.paths += /system/${LIB}/vndk-sp%VNDK_VER%
namespace.rs.search.paths += /odm/${LIB}
namespace.rs.search.paths += /odm/${LIB}
namespace.rs.search.paths += /vendor/${LIB}
namespace.rs.search.paths += /vendor/${LIB}


@@ -143,8 +143,8 @@ namespace.rs.asan.search.paths = /data/asan/odm/${LIB}/vndk-sp
namespace.rs.asan.search.paths +=           /odm/${LIB}/vndk-sp
namespace.rs.asan.search.paths +=           /odm/${LIB}/vndk-sp
namespace.rs.asan.search.paths += /data/asan/vendor/${LIB}/vndk-sp
namespace.rs.asan.search.paths += /data/asan/vendor/${LIB}/vndk-sp
namespace.rs.asan.search.paths +=           /vendor/${LIB}/vndk-sp
namespace.rs.asan.search.paths +=           /vendor/${LIB}/vndk-sp
namespace.rs.asan.search.paths += /data/asan/system/${LIB}/vndk-sp${VNDK_VER}
namespace.rs.asan.search.paths += /data/asan/system/${LIB}/vndk-sp%VNDK_VER%
namespace.rs.asan.search.paths +=           /system/${LIB}/vndk-sp${VNDK_VER}
namespace.rs.asan.search.paths +=           /system/${LIB}/vndk-sp%VNDK_VER%
namespace.rs.asan.search.paths += /data/asan/odm/${LIB}
namespace.rs.asan.search.paths += /data/asan/odm/${LIB}
namespace.rs.asan.search.paths +=           /odm/${LIB}
namespace.rs.asan.search.paths +=           /odm/${LIB}
namespace.rs.asan.search.paths += /data/asan/vendor/${LIB}
namespace.rs.asan.search.paths += /data/asan/vendor/${LIB}
@@ -176,21 +176,21 @@ namespace.vndk.visible = true


namespace.vndk.search.paths  = /odm/${LIB}/vndk-sp
namespace.vndk.search.paths  = /odm/${LIB}/vndk-sp
namespace.vndk.search.paths += /vendor/${LIB}/vndk-sp
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-sp%VNDK_VER%


namespace.vndk.permitted.paths  = /odm/${LIB}/hw
namespace.vndk.permitted.paths  = /odm/${LIB}/hw
namespace.vndk.permitted.paths += /odm/${LIB}/egl
namespace.vndk.permitted.paths += /odm/${LIB}/egl
namespace.vndk.permitted.paths += /vendor/${LIB}/hw
namespace.vndk.permitted.paths += /vendor/${LIB}/hw
namespace.vndk.permitted.paths += /vendor/${LIB}/egl
namespace.vndk.permitted.paths += /vendor/${LIB}/egl
# This is exceptionally required since android.hidl.memory@1.0-impl.so is here
# 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.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  = /data/asan/odm/${LIB}/vndk-sp
namespace.vndk.asan.search.paths +=           /odm/${LIB}/vndk-sp
namespace.vndk.asan.search.paths +=           /odm/${LIB}/vndk-sp
namespace.vndk.asan.search.paths += /data/asan/vendor/${LIB}/vndk-sp
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 +=           /vendor/${LIB}/vndk-sp
namespace.vndk.asan.search.paths += /data/asan/system/${LIB}/vndk-sp${VNDK_VER}
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 +=           /system/${LIB}/vndk-sp%VNDK_VER%


namespace.vndk.asan.permitted.paths  = /data/asan/odm/${LIB}/hw
namespace.vndk.asan.permitted.paths  = /data/asan/odm/${LIB}/hw
namespace.vndk.asan.permitted.paths +=           /odm/${LIB}/hw
namespace.vndk.asan.permitted.paths +=           /odm/${LIB}/hw
@@ -201,8 +201,8 @@ namespace.vndk.asan.permitted.paths += /vendor/${LIB}/hw
namespace.vndk.asan.permitted.paths += /data/asan/vendor/${LIB}/egl
namespace.vndk.asan.permitted.paths += /data/asan/vendor/${LIB}/egl
namespace.vndk.asan.permitted.paths +=           /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 += /data/asan/system/${LIB}/vndk-sp%VNDK_VER%/hw
namespace.vndk.asan.permitted.paths +=           /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
# 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
# to the default namespace. This is possible since their ABI is stable across
@@ -274,13 +274,13 @@ namespace.default.link.vndk.shared_libs += %VNDK_CORE_LIBRARIES%
###############################################################################
###############################################################################
namespace.vndk.isolated = false
namespace.vndk.isolated = false


namespace.vndk.search.paths  = /system/${LIB}/vndk-sp${VNDK_VER}
namespace.vndk.search.paths  = /system/${LIB}/vndk-sp%VNDK_VER%
namespace.vndk.search.paths += /system/${LIB}/vndk${VNDK_VER}
namespace.vndk.search.paths += /system/${LIB}/vndk%VNDK_VER%


namespace.vndk.asan.search.paths  = /data/asan/system/${LIB}/vndk-sp${VNDK_VER}
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 +=           /system/${LIB}/vndk-sp%VNDK_VER%
namespace.vndk.asan.search.paths += /data/asan/system/${LIB}/vndk${VNDK_VER}
namespace.vndk.asan.search.paths += /data/asan/system/${LIB}/vndk%VNDK_VER%
namespace.vndk.asan.search.paths +=           /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
# 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
# to the system namespace. This is possible since their ABI is stable across