From 875fe42a81696f44cc03eeaa538f370b44639bb7 Mon Sep 17 00:00:00 2001 From: Yang Ni Date: Wed, 6 Dec 2017 11:59:26 -0800 Subject: [PATCH] Revert "Prevent vendors from accessing private VNDK libs" Bug: 70260989 Bug: 70279973 This reverts commit 6b369bee69fda98e52c580d95e94fe820a44189c. Test: Build for Walley and tested Photos edit. --- rootdir/Android.mk | 9 +++------ rootdir/etc/ld.config.txt.in | 25 +++++++++++-------------- 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/rootdir/Android.mk b/rootdir/Android.mk index c1e21861a..560092e86 100644 --- a/rootdir/Android.mk +++ b/rootdir/Android.mk @@ -207,14 +207,11 @@ LOCAL_MODULE_PATH := $(TARGET_OUT_ETC) LOCAL_MODULE_STEM := $(LOCAL_MODULE) include $(BUILD_SYSTEM)/base_rules.mk -llndk_libraries := $(subst $(space),:,$(addsuffix .so,\ -$(filter-out $(VNDK_PRIVATE_LIBRARIES),$(LLNDK_LIBRARIES)))) +llndk_libraries := $(subst $(space),:,$(addsuffix .so,$(LLNDK_LIBRARIES))) -vndk_sameprocess_libraries := $(subst $(space),:,$(addsuffix .so,\ -$(filter-out $(VNDK_PRIVATE_LIBRARIES),$(VNDK_SAMEPROCESS_LIBRARIES)))) +vndk_sameprocess_libraries := $(subst $(space),:,$(addsuffix .so,$(VNDK_SAMEPROCESS_LIBRARIES))) -vndk_core_libraries := $(subst $(space),:,$(addsuffix .so,\ -$(filter-out $(VNDK_PRIVATE_LIBRARIES),$(VNDK_CORE_LIBRARIES)))) +vndk_core_libraries := $(subst $(space),:,$(addsuffix .so,$(VNDK_CORE_LIBRARIES))) sanitizer_runtime_libraries := $(subst $(space),:,$(addsuffix .so,\ $(ADDRESS_SANITIZER_RUNTIME_LIBRARY) \ diff --git a/rootdir/etc/ld.config.txt.in b/rootdir/etc/ld.config.txt.in index baca5d694..c79391513 100644 --- a/rootdir/etc/ld.config.txt.in +++ b/rootdir/etc/ld.config.txt.in @@ -120,31 +120,28 @@ additional.namespaces = system ############################################################################### # "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. +# Vendor-side code runs in this namespace. ############################################################################### namespace.default.isolated = true namespace.default.visible = true -namespace.default.search.paths = /vendor/${LIB}/hw:/vendor/${LIB}/egl:/vendor/${LIB}:/vendor/${LIB}/vndk${VNDK_VER}:/vendor/${LIB}/vndk-sp${VNDK_VER} -namespace.default.permitted.paths = /vendor +namespace.default.search.paths = /vendor/${LIB}/hw:/vendor/${LIB}/egl:/vendor/${LIB}:/vendor/${LIB}/vndk${VNDK_VER}:/system/${LIB}/vndk${VNDK_VER}:/vendor/${LIB}/vndk-sp${VNDK_VER}:/system/${LIB}/vndk-sp${VNDK_VER} +namespace.default.permitted.paths = /vendor:/system/${LIB}/vndk${VNDK_VER}:/system/${LIB}/vndk-sp${VNDK_VER} -namespace.default.asan.search.paths = /data/asan/vendor/${LIB}/hw:/vendor/${LIB}/hw:/data/asan/vendor/${LIB}/egl:/vendor/${LIB}/egl:/data/asan/vendor/${LIB}:/vendor/${LIB}:/data/asan/vendor/${LIB}/vndk${VNDK_VER}:/vendor/${LIB}/vndk${VNDK_VER}:/data/asan/vendor/${LIB}/vndk-sp${VNDK_VER}:/vendor/${LIB}/vndk-sp${VNDK_VER}:namespace.default.asan.permitted.paths = /data/asan/vendor:/vendor +namespace.default.asan.search.paths = /data/asan/vendor/${LIB}/hw:/vendor/${LIB}/hw:/data/asan/vendor/${LIB}/egl:/vendor/${LIB}/egl:/data/asan/vendor/${LIB}:/vendor/${LIB}:/data/asan/vendor/${LIB}/vndk${VNDK_VER}:/vendor/${LIB}/vndk${VNDK_VER}:/data/asan/system/${LIB}/vndk${VNDK_VER}:/system/${LIB}/vndk${VNDK_VER}:/data/asan/vendor/${LIB}/vndk-sp${VNDK_VER}:/vendor/${LIB}/vndk-sp${VNDK_VER}:/data/asan/system/${LIB}/vndk-sp${VNDK_VER}:/system/${LIB}/vndk-sp${VNDK_VER} +namespace.default.asan.permitted.paths = /data/asan/vendor:/vendor:/data/asan/system/${LIB}/vndk${VNDK_VER}:/system/${LIB}/vndk${VNDK_VER}:/data/asan/system/${LIB}/vndk-sp${VNDK_VER}:/system/${LIB}/vndk-sp${VNDK_VER} namespace.default.links = system -namespace.default.link.system.shared_libs = %LLNDK_LIBRARIES%:%VNDK_SAMEPROCESS_LIBRARIES%:%VNDK_CORE_LIBRARIES% +namespace.default.link.system.shared_libs = %LLNDK_LIBRARIES% ############################################################################### # "system" namespace # -# This namespace is where system libs (VNDK and LLNDK libs) are loaded for -# a vendor process. +# This is for vendor process to use LL-NDK in system partition. ############################################################################### namespace.system.isolated = false -namespace.system.search.paths = /system/${LIB}/vndk-sp${VNDK_VER}:/system/${LIB}/vndk${VNDK_VER}:/system/${LIB} +namespace.system.search.paths = /system/${LIB} +namespace.system.permitted.paths = /system/${LIB} -namespace.system.asan.search.paths = /data/asan/system/${LIB}/vndk-sp${VNDK_VER}:/system/${LIB}/vndk-sp${VNDK_VER}:/data/asan/system/${LIB}/vndk${VNDK_VER}:/system/${LIB}/vndk${VNDK_VER}:/data/asan/system/${LIB}:/system/${LIB} +namespace.system.asan.search.paths = /data/asan/system/${LIB}:/system/${LIB} +namespace.system.asan.permitted.paths = /data/asan/system/${LIB}:/system/${LIB}