OSDN Git Service

JNI libs should be visible to ART namespace
authorJooyung Han <jooyung@google.com>
Fri, 6 Nov 2020 01:18:03 +0000 (10:18 +0900)
committerMartin Stjernholm <mast@google.com>
Wed, 11 Nov 2020 21:30:36 +0000 (21:30 +0000)
JNI libs from apexes should be visible for libnativeloader to load them.

Bug: 172541385
Bug: 150767721
Bug: 172689934
Test: linkerconfig_diff_test
Test: loading jni libs from apexes
Change-Id: Ie6cd53fb0aef78132dccc4398270884f4455804b

contents/section/apexart.cc
testdata/golden_output/legacy/com.android.art/ld.config.txt
testdata/golden_output/product-enabled/com.android.art/ld.config.txt
testdata/golden_output/stage2/com.android.art/ld.config.txt

index 897d7d9..cc438e6 100644 (file)
@@ -38,13 +38,11 @@ Section BuildApexArtSection(Context& ctx, const ApexInfo& apex_info) {
   namespaces.emplace_back(BuildApexPlatformNamespace(ctx));
   namespaces.emplace_back(BuildArtNamespace(ctx, apex_info));
 
-  std::set<std::string> visible_apexes{
-      "com.android.conscrypt",
-  };
+  std::set<std::string> visible_apexes;
 
-  // APEXes with public libs should be visible
+  // APEXes with JNI libs or public libs should be visible
   for (const auto& apex : ctx.GetApexModules()) {
-    if (apex.public_libs.size() > 0) {
+    if (apex.jni_libs.size() > 0 || apex.public_libs.size() > 0) {
       visible_apexes.insert(apex.name);
     }
   }
index 87836f1..68f9d52 100644 (file)
@@ -1,6 +1,6 @@
 dir.com.android.art = /apex/com.android.art/bin
 [com.android.art]
-additional.namespaces = com_android_adbd,com_android_art,com_android_conscrypt,com_android_i18n,com_android_media,com_android_neuralnetworks,com_android_os_statsd,com_android_resolv,com_android_runtime,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_conscrypt,com_android_cronet,com_android_i18n,com_android_media,com_android_neuralnetworks,com_android_os_statsd,com_android_resolv,com_android_runtime,system
 namespace.default.isolated = true
 namespace.default.links = com_android_art,system,com_android_adbd
 namespace.default.link.com_android_art.allow_all_shared_libs = true
@@ -71,6 +71,26 @@ namespace.com_android_conscrypt.link.system.shared_libs += libdl.so
 namespace.com_android_conscrypt.link.system.shared_libs += libdl_android.so
 namespace.com_android_conscrypt.link.system.shared_libs += libm.so
 namespace.com_android_conscrypt.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
+namespace.com_android_cronet.isolated = true
+namespace.com_android_cronet.visible = true
+namespace.com_android_cronet.search.paths = /apex/com.android.cronet/${LIB}
+namespace.com_android_cronet.permitted.paths = /apex/com.android.cronet/${LIB}
+namespace.com_android_cronet.permitted.paths += /system/${LIB}
+namespace.com_android_cronet.asan.search.paths = /apex/com.android.cronet/${LIB}
+namespace.com_android_cronet.asan.permitted.paths = /apex/com.android.cronet/${LIB}
+namespace.com_android_cronet.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.com_android_cronet.asan.permitted.paths += /system/${LIB}
+namespace.com_android_cronet.links = system
+namespace.com_android_cronet.link.system.shared_libs = libandroid.so
+namespace.com_android_cronet.link.system.shared_libs += libc.so
+namespace.com_android_cronet.link.system.shared_libs += libdl.so
+namespace.com_android_cronet.link.system.shared_libs += liblog.so
+namespace.com_android_cronet.link.system.shared_libs += libm.so
+namespace.com_android_cronet.link.system.shared_libs += libc.so
+namespace.com_android_cronet.link.system.shared_libs += libdl.so
+namespace.com_android_cronet.link.system.shared_libs += libdl_android.so
+namespace.com_android_cronet.link.system.shared_libs += libm.so
+namespace.com_android_cronet.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
 namespace.com_android_i18n.isolated = true
 namespace.com_android_i18n.visible = true
 namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
@@ -137,6 +157,7 @@ namespace.com_android_neuralnetworks.link.system.shared_libs += libdl_android.so
 namespace.com_android_neuralnetworks.link.system.shared_libs += libm.so
 namespace.com_android_neuralnetworks.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
 namespace.com_android_os_statsd.isolated = true
+namespace.com_android_os_statsd.visible = true
 namespace.com_android_os_statsd.search.paths = /apex/com.android.os.statsd/${LIB}
 namespace.com_android_os_statsd.permitted.paths = /apex/com.android.os.statsd/${LIB}
 namespace.com_android_os_statsd.permitted.paths += /system/${LIB}
index 3c4e5fd..992a5f0 100644 (file)
@@ -1,6 +1,6 @@
 dir.com.android.art = /apex/com.android.art/bin
 [com.android.art]
-additional.namespaces = com_android_adbd,com_android_art,com_android_conscrypt,com_android_i18n,com_android_media,com_android_neuralnetworks,com_android_os_statsd,com_android_resolv,com_android_runtime,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_conscrypt,com_android_cronet,com_android_i18n,com_android_media,com_android_neuralnetworks,com_android_os_statsd,com_android_resolv,com_android_runtime,system
 namespace.default.isolated = true
 namespace.default.links = com_android_art,system,com_android_adbd
 namespace.default.link.com_android_art.allow_all_shared_libs = true
@@ -71,6 +71,26 @@ namespace.com_android_conscrypt.link.system.shared_libs += libdl.so
 namespace.com_android_conscrypt.link.system.shared_libs += libdl_android.so
 namespace.com_android_conscrypt.link.system.shared_libs += libm.so
 namespace.com_android_conscrypt.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
+namespace.com_android_cronet.isolated = true
+namespace.com_android_cronet.visible = true
+namespace.com_android_cronet.search.paths = /apex/com.android.cronet/${LIB}
+namespace.com_android_cronet.permitted.paths = /apex/com.android.cronet/${LIB}
+namespace.com_android_cronet.permitted.paths += /system/${LIB}
+namespace.com_android_cronet.asan.search.paths = /apex/com.android.cronet/${LIB}
+namespace.com_android_cronet.asan.permitted.paths = /apex/com.android.cronet/${LIB}
+namespace.com_android_cronet.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.com_android_cronet.asan.permitted.paths += /system/${LIB}
+namespace.com_android_cronet.links = system
+namespace.com_android_cronet.link.system.shared_libs = libandroid.so
+namespace.com_android_cronet.link.system.shared_libs += libc.so
+namespace.com_android_cronet.link.system.shared_libs += libdl.so
+namespace.com_android_cronet.link.system.shared_libs += liblog.so
+namespace.com_android_cronet.link.system.shared_libs += libm.so
+namespace.com_android_cronet.link.system.shared_libs += libc.so
+namespace.com_android_cronet.link.system.shared_libs += libdl.so
+namespace.com_android_cronet.link.system.shared_libs += libdl_android.so
+namespace.com_android_cronet.link.system.shared_libs += libm.so
+namespace.com_android_cronet.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
 namespace.com_android_i18n.isolated = true
 namespace.com_android_i18n.visible = true
 namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
@@ -137,6 +157,7 @@ namespace.com_android_neuralnetworks.link.system.shared_libs += libdl_android.so
 namespace.com_android_neuralnetworks.link.system.shared_libs += libm.so
 namespace.com_android_neuralnetworks.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
 namespace.com_android_os_statsd.isolated = true
+namespace.com_android_os_statsd.visible = true
 namespace.com_android_os_statsd.search.paths = /apex/com.android.os.statsd/${LIB}
 namespace.com_android_os_statsd.permitted.paths = /apex/com.android.os.statsd/${LIB}
 namespace.com_android_os_statsd.permitted.paths += /system/${LIB}
index 87836f1..68f9d52 100644 (file)
@@ -1,6 +1,6 @@
 dir.com.android.art = /apex/com.android.art/bin
 [com.android.art]
-additional.namespaces = com_android_adbd,com_android_art,com_android_conscrypt,com_android_i18n,com_android_media,com_android_neuralnetworks,com_android_os_statsd,com_android_resolv,com_android_runtime,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_conscrypt,com_android_cronet,com_android_i18n,com_android_media,com_android_neuralnetworks,com_android_os_statsd,com_android_resolv,com_android_runtime,system
 namespace.default.isolated = true
 namespace.default.links = com_android_art,system,com_android_adbd
 namespace.default.link.com_android_art.allow_all_shared_libs = true
@@ -71,6 +71,26 @@ namespace.com_android_conscrypt.link.system.shared_libs += libdl.so
 namespace.com_android_conscrypt.link.system.shared_libs += libdl_android.so
 namespace.com_android_conscrypt.link.system.shared_libs += libm.so
 namespace.com_android_conscrypt.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
+namespace.com_android_cronet.isolated = true
+namespace.com_android_cronet.visible = true
+namespace.com_android_cronet.search.paths = /apex/com.android.cronet/${LIB}
+namespace.com_android_cronet.permitted.paths = /apex/com.android.cronet/${LIB}
+namespace.com_android_cronet.permitted.paths += /system/${LIB}
+namespace.com_android_cronet.asan.search.paths = /apex/com.android.cronet/${LIB}
+namespace.com_android_cronet.asan.permitted.paths = /apex/com.android.cronet/${LIB}
+namespace.com_android_cronet.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.com_android_cronet.asan.permitted.paths += /system/${LIB}
+namespace.com_android_cronet.links = system
+namespace.com_android_cronet.link.system.shared_libs = libandroid.so
+namespace.com_android_cronet.link.system.shared_libs += libc.so
+namespace.com_android_cronet.link.system.shared_libs += libdl.so
+namespace.com_android_cronet.link.system.shared_libs += liblog.so
+namespace.com_android_cronet.link.system.shared_libs += libm.so
+namespace.com_android_cronet.link.system.shared_libs += libc.so
+namespace.com_android_cronet.link.system.shared_libs += libdl.so
+namespace.com_android_cronet.link.system.shared_libs += libdl_android.so
+namespace.com_android_cronet.link.system.shared_libs += libm.so
+namespace.com_android_cronet.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
 namespace.com_android_i18n.isolated = true
 namespace.com_android_i18n.visible = true
 namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
@@ -137,6 +157,7 @@ namespace.com_android_neuralnetworks.link.system.shared_libs += libdl_android.so
 namespace.com_android_neuralnetworks.link.system.shared_libs += libm.so
 namespace.com_android_neuralnetworks.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
 namespace.com_android_os_statsd.isolated = true
+namespace.com_android_os_statsd.visible = true
 namespace.com_android_os_statsd.search.paths = /apex/com.android.os.statsd/${LIB}
 namespace.com_android_os_statsd.permitted.paths = /apex/com.android.os.statsd/${LIB}
 namespace.com_android_os_statsd.permitted.paths += /system/${LIB}