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

Commit 4c0ee1e8 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

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

* changes:
  Rename namespace configuration source files.
  Use actual VNDK list for non-VNDK-enforcing devices
parents 9bf624cd 27bdc37f
Loading
Loading
Loading
Loading
+9 −8
Original line number Original line Diff line number Diff line
@@ -192,11 +192,12 @@ endef # update_and_install_ld_config
# ld.config.txt
# ld.config.txt
#
#
# For VNDK enforced devices that have defined BOARD_VNDK_VERSION, use
# 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.
# run-time restrictions for vendor process.
# Other treblized devices, that have not defined BOARD_VNDK_VERSION or that
# 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
# have set BOARD_VNDK_RUNTIME_DISABLE to true, use "ld.config.vndk_lite.txt"
# file. This configuration does not have strict VNDK run-time restrictions.
# 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
# If the device is not treblized, use "ld.config.legacy.txt" for legacy
# namespace configuration.
# namespace configuration.
include $(CLEAR_VARS)
include $(CLEAR_VARS)
@@ -216,7 +217,7 @@ ifeq ($(_enforce_vndk_at_runtime),true)
LOCAL_MODULE_STEM := $(call append_vndk_version,$(LOCAL_MODULE))
LOCAL_MODULE_STEM := $(call append_vndk_version,$(LOCAL_MODULE))
include $(BUILD_SYSTEM)/base_rules.mk
include $(BUILD_SYSTEM)/base_rules.mk
$(eval $(call update_and_install_ld_config,\
$(eval $(call update_and_install_ld_config,\
  $(LOCAL_PATH)/etc/ld.config.txt.in,\
  $(LOCAL_PATH)/etc/ld.config.txt,\
  $(LOCAL_BUILT_MODULE),\
  $(LOCAL_BUILT_MODULE),\
  $(PLATFORM_VNDK_VERSION)))
  $(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))
LOCAL_MODULE_STEM := $(call append_vndk_version,$(LOCAL_MODULE))
include $(BUILD_SYSTEM)/base_rules.mk
include $(BUILD_SYSTEM)/base_rules.mk
$(eval $(call update_and_install_ld_config,\
$(eval $(call update_and_install_ld_config,\
  $(LOCAL_PATH)/etc/ld.config.txt,\
  $(LOCAL_PATH)/etc/ld.config.vndk_lite.txt,\
  $(LOCAL_BUILT_MODULE),\
  $(LOCAL_BUILT_MODULE),\
  $(if $(BOARD_VNDK_VERSION),$(PLATFORM_VNDK_VERSION))))
  $(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
# 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
# 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
# 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.
# Do not install this file for the devices other than GSI.
include $(CLEAR_VARS)
include $(CLEAR_VARS)
LOCAL_MODULE := ld.config.noenforce.txt
LOCAL_MODULE := ld.config.noenforce.txt
@@ -255,7 +256,7 @@ LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)
LOCAL_MODULE_STEM := $(LOCAL_MODULE)
LOCAL_MODULE_STEM := $(LOCAL_MODULE)
include $(BUILD_SYSTEM)/base_rules.mk
include $(BUILD_SYSTEM)/base_rules.mk
$(eval $(call update_and_install_ld_config,\
$(eval $(call update_and_install_ld_config,\
  $(LOCAL_PATH)/etc/ld.config.txt,\
  $(LOCAL_PATH)/etc/ld.config.vndk_lite.txt,\
  $(LOCAL_BUILT_MODULE),\
  $(LOCAL_BUILT_MODULE),\
  $(PLATFORM_VNDK_VERSION)))
  $(PLATFORM_VNDK_VERSION)))


+139 −106
Original line number Original line Diff line number Diff line
@@ -30,21 +30,55 @@ additional.namespaces = sphal,vndk,rs
###############################################################################
###############################################################################
# "default" namespace
# "default" namespace
#
#
# Framework-side code runs in this namespace. However, libs from other
# Framework-side code runs in this namespace. Libs from /vendor partition
# partitions are also allowed temporarily.
# 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 = /system/${LIB}
namespace.default.search.paths += /odm/${LIB}

namespace.default.search.paths += /vendor/${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  = /data/asan/system/${LIB}
namespace.default.asan.search.paths +=           /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.permitted.paths  = /data
namespace.default.asan.search.paths += /data/asan/vendor/${LIB}
namespace.default.asan.permitted.paths += /system/${LIB}/drm
namespace.default.asan.search.paths +=           /vendor/${LIB}
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
# "sphal" namespace
@@ -82,35 +116,10 @@ namespace.sphal.asan.permitted.paths += /vendor/${LIB}
# libs listed here can be used.
# libs listed here can be used.
namespace.sphal.links = default,vndk,rs
namespace.sphal.links = default,vndk,rs


# WARNING: only NDK libs can be listed here.
namespace.sphal.link.default.shared_libs  = %LLNDK_LIBRARIES%
namespace.sphal.link.default.shared_libs  = libc.so
namespace.sphal.link.default.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
namespace.sphal.link.default.shared_libs += libEGL.so

namespace.sphal.link.default.shared_libs += libGLESv1_CM.so
namespace.sphal.link.vndk.shared_libs = %VNDK_SAMEPROCESS_LIBRARIES%
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

# 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


# Renderscript gets separate namespace
# Renderscript gets separate namespace
namespace.sphal.link.rs.shared_libs = libRS_internal.so
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.links = default,vndk


namespace.rs.link.default.shared_libs  = libc.so
namespace.rs.link.default.shared_libs  =  %LLNDK_LIBRARIES%
namespace.rs.link.default.shared_libs += libEGL.so
namespace.rs.link.default.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
namespace.rs.link.default.shared_libs += libGLESv1_CM.so
# Private LLNDK libs (e.g. libft2.so) are exceptionally allowed to this
namespace.rs.link.default.shared_libs += libGLESv2.so
# namespace because RS framework libs are using them.
namespace.rs.link.default.shared_libs += libdl.so
namespace.rs.link.default.shared_libs += %PRIVATE_LLNDK_LIBRARIES%
namespace.rs.link.default.shared_libs += liblog.so

namespace.rs.link.default.shared_libs += libm.so
namespace.rs.link.vndk.shared_libs = %VNDK_SAMEPROCESS_LIBRARIES%
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.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


###############################################################################
###############################################################################
# "vndk" namespace
# "vndk" namespace
@@ -204,6 +188,8 @@ 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
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
@@ -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 += /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 +=           /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
# Android releases.
# Android releases.
namespace.vndk.links = default
namespace.vndk.links = default
namespace.vndk.link.default.shared_libs  = android.hidl.memory@1.0-impl.so
namespace.vndk.link.default.shared_libs  = %LLNDK_LIBRARIES%
namespace.vndk.link.default.shared_libs += libEGL.so
namespace.vndk.link.default.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
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 config for vendor processes. In O, no restriction is enforced for
# 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.
# (LL-NDK only) access.
###############################################################################
###############################################################################
[vendor]
[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}
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}
namespace.default.search.paths += /vendor/${LIB}/vndk
namespace.default.search.paths += /vendor/${LIB}/vndk-sp


# Access to system libraries are allowed
namespace.default.permitted.paths  = /odm
namespace.default.search.paths += /system/${LIB}/vndk%VNDK_VER%
namespace.default.permitted.paths += /vendor
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  = /data/asan/odm/${LIB}
namespace.default.asan.search.paths +=           /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 += /data/asan/vendor/${LIB}
namespace.default.asan.search.paths +=           /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.permitted.paths  = /data/asan/odm
namespace.default.asan.search.paths += /data/asan/vendor/${LIB}/vndk-sp
namespace.default.asan.permitted.paths +=           /odm
namespace.default.asan.search.paths +=           /vendor/${LIB}/vndk-sp
namespace.default.asan.permitted.paths += /data/asan/vendor
namespace.default.asan.search.paths += /data/asan/system/${LIB}/vndk%VNDK_VER%
namespace.default.asan.permitted.paths +=           /vendor
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.links = system,vndk
namespace.default.asan.search.paths +=           /system/${LIB}/vndk-sp%VNDK_VER%
namespace.default.link.system.shared_libs = %LLNDK_LIBRARIES%
namespace.default.asan.search.paths += /data/asan/system/${LIB}
namespace.default.link.vndk.shared_libs  = %VNDK_SAMEPROCESS_LIBRARIES%
namespace.default.asan.search.paths +=           /system/${LIB}
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}
+34 −121

File changed and moved.

Preview size limit exceeded, changes collapsed.