diff --git a/porting/linux/user/config/ld-musl-namespace-aarch64.ini b/porting/linux/user/config/ld-musl-namespace-aarch64.ini index 043817aa8c5e43f34214ba175bc53508faf3e2c9..54d2ed6902fbf0f2da262907ad8d46663bb74fa8 100644 --- a/porting/linux/user/config/ld-musl-namespace-aarch64.ini +++ b/porting/linux/user/config/ld-musl-namespace-aarch64.ini @@ -1,6 +1,8 @@ [section.dir.map] - acquiescence = / + acquiescence = /system/bin:/vendor/bin:/data/local/tmp [acquiescence] - namespace.default.lib.paths = /system/lib64:/vendor/lib64:/vendor/lib64/chipsetsdk:/system/lib64/ndk:/system/lib64/chipset-pub-sdk:/system/lib64/chipset-sdk:/system/lib64/platformsdk:/system/lib64/priv-platformsdk:/system/lib64/priv-module:/system/lib64/module:/system/lib64/module/data:/system/lib64/module/multimedia:/system/lib64/module/security:/system/lib:/vendor/lib:/system/lib/ndk:/system/lib/chipset-pub-sdk:/system/lib/chipset-sdk:/system/lib/platformsdk:/system/lib/priv-platformsdk:/system/lib/priv-module:/system/lib/module:/system/lib/module/data:/system/lib/module/multimedia:/lib64:/lib:/usr/local/lib:/usr/lib:/vendor/lib64/hw + added.nslist = ndk + namespace.ndk.lib.paths = /system/lib64/ndk:/system/lib/ndk + namespace.default.lib.paths = /system/lib64:/vendor/lib64:/vendor/lib64/chipsetsdk:/system/lib64/chipset-pub-sdk:/system/lib64/chipset-sdk:/system/lib64/platformsdk:/system/lib64/priv-platformsdk:/system/lib64/priv-module:/system/lib64/module:/system/lib64/module/data:/system/lib64/module/multimedia:/system/lib64/module/security:/system/lib:/vendor/lib:/system/lib/chipset-pub-sdk:/system/lib/chipset-sdk:/system/lib/platformsdk:/system/lib/priv-platformsdk:/system/lib/priv-module:/system/lib/module:/system/lib/module/data:/system/lib/module/multimedia:/lib64:/lib:/usr/local/lib:/usr/lib:/vendor/lib64/hw namespace.default.asan.lib.paths = /system/lib64:/system/lib64/module:/vendor/lib64:/vendor/lib64/chipsetsdk:/system/lib64/module/data:/system/lib64/module/multimedia:/system/lib64/module/security:/system/lib:/system/lib/module:/system/lib/module/data:/system/lib/module/multimedia:/lib64:/lib:/usr/local/lib:/usr/lib:/vendor/lib64/hw diff --git a/porting/linux/user/config/ld-musl-namespace-arm.ini b/porting/linux/user/config/ld-musl-namespace-arm.ini index cf520d0a6d7a2c79ad3437c20e08583b497ce1ee..44dd5bc4750c0c96a22867748dd8d6a46a1c2cb6 100644 --- a/porting/linux/user/config/ld-musl-namespace-arm.ini +++ b/porting/linux/user/config/ld-musl-namespace-arm.ini @@ -1,6 +1,8 @@ [section.dir.map] - acquiescence = / + acquiescence = /system/bin:/vendor/bin:/data/local/tmp [acquiescence] - namespace.default.lib.paths = /system/lib:/vendor/lib:/vendor/lib/chipsetsdk:/system/lib/ndk:/system/lib/chipset-pub-sdk:/system/lib/chipset-sdk:/system/lib/platformsdk:/system/lib/priv-platformsdk:/system/lib/priv-module:/system/lib/module:/system/lib/module/data:/system/lib/module/multimedia:/system/lib/module/security:/lib:/usr/local/lib:/usr/lib + added.nslist = ndk + namespace.ndk.lib.paths = /system/lib/ndk + namespace.default.lib.paths = /system/lib:/vendor/lib:/vendor/lib/chipsetsdk:/system/lib/chipset-pub-sdk:/system/lib/chipset-sdk:/system/lib/platformsdk:/system/lib/priv-platformsdk:/system/lib/priv-module:/system/lib/module:/system/lib/module/data:/system/lib/module/multimedia:/system/lib/module/security:/lib:/usr/local/lib:/usr/lib namespace.default.asan.lib.paths = /system/lib:/system/lib/module:/vendor/lib:/vendor/lib/chipsetsdk:/system/lib/module/data:/system/lib/module/multimedia:/system/lib/module/security:/lib:/usr/local/lib:/usr/lib diff --git a/porting/linux/user/config/ld-musl-namespace-x86_64.ini b/porting/linux/user/config/ld-musl-namespace-x86_64.ini index d2609f16daa4700191616ffbfb30813f3d3d9fb2..6dc91349fec7bbcb244e3fbaccf869030adfda63 100644 --- a/porting/linux/user/config/ld-musl-namespace-x86_64.ini +++ b/porting/linux/user/config/ld-musl-namespace-x86_64.ini @@ -1,6 +1,8 @@ [section.dir.map] - acquiescence = / + acquiescence = /system/bin:/vendor/bin:/data/local/tmp [acquiescence] - namespace.default.lib.paths = /system/lib64:/vendor/lib64:/vendor/lib64/chipsetsdk:/system/lib64/ndk:/system/lib64/chipset-pub-sdk:/system/lib64/chipset-sdk:/system/lib64/platformsdk:/system/lib64/priv-platformsdk:/system/lib64/priv-module:/system/lib64/module:/system/lib64/module/data:/system/lib64/module/multimedia:/system/lib64/module/security:/lib64 + added.nslist = ndk + namespace.ndk.lib.paths = /system/lib64/ndk:/system/lib/ndk + namespace.default.lib.paths = /system/lib64:/vendor/lib64:/vendor/lib64/chipsetsdk:/system/lib64/chipset-pub-sdk:/system/lib64/chipset-sdk:/system/lib64/platformsdk:/system/lib64/priv-platformsdk:/system/lib64/priv-module:/system/lib64/module:/system/lib64/module/data:/system/lib64/module/multimedia:/system/lib64/module/security:/lib64 namespace.default.asan.lib.paths = /system/lib64:/system/lib64/module:/vendor/lib64:/vendor/lib64/chipsetsdk:/system/lib64/module/data:/system/lib64/module/multimedia:/system/lib64/module/security:/lib64 diff --git a/porting/linux/user/ldso/namespace.c b/porting/linux/user/ldso/namespace.c index f0450e43276fa822173c96476d97a6bef35928b6..3c4b7e97be50e4d6cff15698cd9472d56a273c80 100644 --- a/porting/linux/user/ldso/namespace.c +++ b/porting/linux/user/ldso/namespace.c @@ -37,6 +37,8 @@ static nslist g_ns_list; #define UT_STATIC static #endif +#define ALLOW_ALL_SHARED_LIBS "allow_all_shared_libs" + static ns_inherit_list *nsinherits_alloc() { ns_inherit_list *nsinl; @@ -584,7 +586,8 @@ bool is_sharable(ns_inherit *inherit, const char *lib_name) { if (inherit && lib_name && inherit->shared_libs) { for (size_t i = 0; i < inherit->shared_libs->num; i++) { - if (strcmp(inherit->shared_libs->strs[i], lib_name) == 0) { + if (strcmp(inherit->shared_libs->strs[i], lib_name) == 0 || + strcmp(inherit->shared_libs->strs[i], ALLOW_ALL_SHARED_LIBS) == 0) { LD_LOGD("is_sharable inherit [%{public}s] lib_name [%{public}s] found, return true.", inherit->inherited_ns->ns_name, lib_name); diff --git a/porting/linux/user/ldso/ns_config.c b/porting/linux/user/ldso/ns_config.c index 4a61938348e1801ba778eb6394fd255447ed7535..84b7b3ecc19883bd6f46fec78f8b7091ea8910bd 100644 --- a/porting/linux/user/ldso/ns_config.c +++ b/porting/linux/user/ldso/ns_config.c @@ -512,8 +512,9 @@ static int config_parse(const char *file_path, const char *exe_path) if (sname) break; } if (!sname) { + /* No matched section found, use the default section. */ + sname = ATTR_NS_ACQUIESCENCE; LD_LOGD("config_parse no section found!"); - return -4;/* no section found */ } if (!(g_configor.kvs = config_get_kvs(sname))) { LD_LOGD("config_parse no section key-value list found!");