aboutsummaryrefslogtreecommitdiff
path: root/testdata
diff options
context:
space:
mode:
authorVictor Chang <vichang@google.com>2020-04-16 19:50:13 +0100
committerVictor Chang <vichang@google.com>2020-04-30 01:29:42 +0100
commit84d3247b545945342fab2b9e35e7b9be60f19c61 (patch)
treef9ad783af8f73a6dbd834fb72f7d826c41d7c2e0 /testdata
parente89356e8e78dfc54af78d9a1d64e73718044407f (diff)
downloadlinkerconfig-84d3247b545945342fab2b9e35e7b9be60f19c61.tar.gz
Make com_android_i18n namespace visible
libnativeloader calls android_get_exported_namespace to link this namepsace to classloader namespace. Bug: 138994281 Test: CtsJniTestCases Change-Id: I65b97bdba462a11d7389b84d873c4daa9c08b45d
Diffstat (limited to 'testdata')
-rw-r--r--testdata/golden_output/legacy/com.android.adbd/ld.config.txt30
-rw-r--r--testdata/golden_output/legacy/com.android.art/ld.config.txt31
-rw-r--r--testdata/golden_output/legacy/com.android.conscrypt/ld.config.txt30
-rw-r--r--testdata/golden_output/legacy/com.android.media.swcodec/ld.config.txt39
-rw-r--r--testdata/golden_output/legacy/com.android.runtime/ld.config.txt30
-rw-r--r--testdata/golden_output/legacy/com.android.sdkext/ld.config.txt30
-rw-r--r--testdata/golden_output/legacy/ld.config.txt35
-rw-r--r--testdata/golden_output/product-enabled/com.android.adbd/ld.config.txt30
-rw-r--r--testdata/golden_output/product-enabled/com.android.art/ld.config.txt31
-rw-r--r--testdata/golden_output/product-enabled/com.android.conscrypt/ld.config.txt30
-rw-r--r--testdata/golden_output/product-enabled/com.android.media.swcodec/ld.config.txt30
-rw-r--r--testdata/golden_output/product-enabled/com.android.runtime/ld.config.txt30
-rw-r--r--testdata/golden_output/product-enabled/com.android.sdkext/ld.config.txt30
-rw-r--r--testdata/golden_output/product-enabled/ld.config.txt134
-rw-r--r--testdata/golden_output/stage1/com.android.art/ld.config.txt31
-rw-r--r--testdata/golden_output/stage1/com.android.runtime/ld.config.txt30
-rw-r--r--testdata/golden_output/stage1/ld.config.txt102
-rw-r--r--testdata/golden_output/stage2/com.android.adbd/ld.config.txt30
-rw-r--r--testdata/golden_output/stage2/com.android.art/ld.config.txt31
-rw-r--r--testdata/golden_output/stage2/com.android.conscrypt/ld.config.txt30
-rw-r--r--testdata/golden_output/stage2/com.android.media.swcodec/ld.config.txt30
-rw-r--r--testdata/golden_output/stage2/com.android.runtime/ld.config.txt30
-rw-r--r--testdata/golden_output/stage2/com.android.sdkext/ld.config.txt30
-rw-r--r--testdata/golden_output/stage2/ld.config.txt102
-rw-r--r--testdata/golden_output/vndk-lite/com.android.adbd/ld.config.txt30
-rw-r--r--testdata/golden_output/vndk-lite/com.android.art/ld.config.txt31
-rw-r--r--testdata/golden_output/vndk-lite/com.android.conscrypt/ld.config.txt30
-rw-r--r--testdata/golden_output/vndk-lite/com.android.media.swcodec/ld.config.txt30
-rw-r--r--testdata/golden_output/vndk-lite/com.android.runtime/ld.config.txt30
-rw-r--r--testdata/golden_output/vndk-lite/com.android.sdkext/ld.config.txt30
-rw-r--r--testdata/golden_output/vndk-lite/ld.config.txt94
-rw-r--r--testdata/root/apex/com.android.art/apex_manifest.json10
-rw-r--r--testdata/root/apex/com.android.i18n/apex_manifest.json15
33 files changed, 1016 insertions, 270 deletions
diff --git a/testdata/golden_output/legacy/com.android.adbd/ld.config.txt b/testdata/golden_output/legacy/com.android.adbd/ld.config.txt
index f2ca95b..15534b9 100644
--- a/testdata/golden_output/legacy/com.android.adbd/ld.config.txt
+++ b/testdata/golden_output/legacy/com.android.adbd/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.adbd = /apex/com.android.adbd/bin
[com.android.adbd]
-additional.namespaces = com_android_art,com_android_neuralnetworks,system
+additional.namespaces = com_android_art,com_android_i18n,com_android_neuralnetworks,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.adbd/${LIB}
namespace.default.permitted.paths = /apex/com.android.adbd/${LIB}
@@ -30,10 +30,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,default,com_android_neuralnetworks
+namespace.com_android_art.links = system,default,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.default.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -59,11 +77,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/legacy/com.android.art/ld.config.txt b/testdata/golden_output/legacy/com.android.art/ld.config.txt
index 7007a32..a2e720b 100644
--- a/testdata/golden_output/legacy/com.android.art/ld.config.txt
+++ b/testdata/golden_output/legacy/com.android.art/ld.config.txt
@@ -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_neuralnetworks,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_conscrypt,com_android_i18n,com_android_neuralnetworks,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
@@ -35,9 +35,13 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_conscrypt.isolated = true
namespace.com_android_conscrypt.visible = true
@@ -55,6 +59,21 @@ namespace.com_android_conscrypt.link.system.shared_libs += liblog.so
namespace.com_android_conscrypt.link.system.shared_libs += libm.so
namespace.com_android_conscrypt.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.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_i18n.isolated = true
+namespace.com_android_i18n.visible = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.visible = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -81,11 +100,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/legacy/com.android.conscrypt/ld.config.txt b/testdata/golden_output/legacy/com.android.conscrypt/ld.config.txt
index e5e18d6..bc1b571 100644
--- a/testdata/golden_output/legacy/com.android.conscrypt/ld.config.txt
+++ b/testdata/golden_output/legacy/com.android.conscrypt/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.conscrypt = /apex/com.android.conscrypt/bin
[com.android.conscrypt]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.conscrypt/${LIB}
namespace.default.permitted.paths = /apex/com.android.conscrypt/${LIB}
@@ -45,10 +45,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -74,11 +92,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/legacy/com.android.media.swcodec/ld.config.txt b/testdata/golden_output/legacy/com.android.media.swcodec/ld.config.txt
index 885e300..bdfbacc 100644
--- a/testdata/golden_output/legacy/com.android.media.swcodec/ld.config.txt
+++ b/testdata/golden_output/legacy/com.android.media.swcodec/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.media.swcodec = /apex/com.android.media.swcodec/bin
[com.android.media.swcodec]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,sphal,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,sphal,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.media.swcodec/${LIB}
namespace.default.permitted.paths = /apex/com.android.media.swcodec/${LIB}
@@ -49,10 +49,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -76,20 +94,25 @@ namespace.sphal.visible = true
namespace.sphal.search.paths = /odm/${LIB}
namespace.sphal.search.paths += /vendor/${LIB}
namespace.sphal.search.paths += /vendor/${LIB}/hw
+namespace.sphal.search.paths += /system/${LIB}
namespace.sphal.permitted.paths = /odm/${LIB}
namespace.sphal.permitted.paths += /vendor/${LIB}
namespace.sphal.permitted.paths += /system/vendor/${LIB}
+namespace.sphal.permitted.paths += /system/${LIB}
namespace.sphal.asan.search.paths = /data/asan/odm/${LIB}
namespace.sphal.asan.search.paths += /odm/${LIB}
namespace.sphal.asan.search.paths += /data/asan/vendor/${LIB}
namespace.sphal.asan.search.paths += /vendor/${LIB}
+namespace.sphal.asan.search.paths += /data/asan/system/${LIB}
+namespace.sphal.asan.search.paths += /system/${LIB}
namespace.sphal.asan.permitted.paths = /data/asan/odm/${LIB}
namespace.sphal.asan.permitted.paths += /odm/${LIB}
namespace.sphal.asan.permitted.paths += /data/asan/vendor/${LIB}
namespace.sphal.asan.permitted.paths += /vendor/${LIB}
+namespace.sphal.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.sphal.asan.permitted.paths += /system/${LIB}
namespace.sphal.links = system
-namespace.sphal.link.system.shared_libs = libz.so
-namespace.sphal.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.sphal.link.system.shared_libs = libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
namespace.sphal.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.system.isolated = true
namespace.system.visible = true
@@ -98,11 +121,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/legacy/com.android.runtime/ld.config.txt b/testdata/golden_output/legacy/com.android.runtime/ld.config.txt
index a8d9c2e..97dcf8b 100644
--- a/testdata/golden_output/legacy/com.android.runtime/ld.config.txt
+++ b/testdata/golden_output/legacy/com.android.runtime/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.runtime = /apex/com.android.runtime/bin
[com.android.runtime]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.runtime/${LIB}
namespace.default.permitted.paths = /apex/com.android.runtime/${LIB}
@@ -41,10 +41,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -70,11 +88,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/legacy/com.android.sdkext/ld.config.txt b/testdata/golden_output/legacy/com.android.sdkext/ld.config.txt
index 4bd62b9..3662893 100644
--- a/testdata/golden_output/legacy/com.android.sdkext/ld.config.txt
+++ b/testdata/golden_output/legacy/com.android.sdkext/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.sdkext = /apex/com.android.sdkext/bin
[com.android.sdkext]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.sdkext/${LIB}
namespace.default.permitted.paths = /apex/com.android.sdkext/${LIB}
@@ -40,10 +40,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -69,11 +87,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/legacy/ld.config.txt b/testdata/golden_output/legacy/ld.config.txt
index a53b874..a60ac1b 100644
--- a/testdata/golden_output/legacy/ld.config.txt
+++ b/testdata/golden_output/legacy/ld.config.txt
@@ -7,7 +7,7 @@ dir.legacy = /sbin
dir.postinstall = /postinstall
dir.legacy = /data
[legacy]
-additional.namespaces = com_android_adbd,com_android_art,com_android_conscrypt,com_android_cronet,com_android_media,com_android_neuralnetworks,com_android_resolv,com_android_runtime
+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_resolv,com_android_runtime
namespace.default.isolated = false
namespace.default.visible = true
namespace.default.search.paths = /system/${LIB}
@@ -25,16 +25,16 @@ namespace.default.asan.search.paths += /data/asan/vendor/${LIB}
namespace.default.asan.search.paths += /vendor/${LIB}
namespace.default.asan.search.paths += /data/asan/odm/${LIB}
namespace.default.asan.search.paths += /odm/${LIB}
-namespace.default.links = com_android_art,com_android_resolv,com_android_neuralnetworks
-namespace.default.link.com_android_art.shared_libs = libandroidicu.so
-namespace.default.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.default.links = com_android_i18n,com_android_art,com_android_resolv,com_android_neuralnetworks
+namespace.default.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.default.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.default.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.default.link.com_android_i18n.shared_libs += libpac.so
+namespace.default.link.com_android_art.shared_libs = libdexfile_external.so
namespace.default.link.com_android_art.shared_libs += libdexfiled_external.so
-namespace.default.link.com_android_art.shared_libs += libicui18n.so
-namespace.default.link.com_android_art.shared_libs += libicuuc.so
namespace.default.link.com_android_art.shared_libs += libnativebridge.so
namespace.default.link.com_android_art.shared_libs += libnativehelper.so
namespace.default.link.com_android_art.shared_libs += libnativeloader.so
-namespace.default.link.com_android_art.shared_libs += libpac.so
namespace.default.link.com_android_resolv.shared_libs = libnetd_resolv.so
namespace.default.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_adbd.isolated = true
@@ -62,9 +62,13 @@ namespace.com_android_art.asan.search.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = default,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = default,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.default.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_conscrypt.isolated = true
namespace.com_android_conscrypt.visible = true
@@ -98,6 +102,21 @@ namespace.com_android_cronet.link.default.shared_libs += liblog.so
namespace.com_android_cronet.link.default.shared_libs += libm.so
namespace.com_android_cronet.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
namespace.com_android_cronet.link.default.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}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = default
+namespace.com_android_i18n.link.default.shared_libs = libc.so
+namespace.com_android_i18n.link.default.shared_libs += libdl.so
+namespace.com_android_i18n.link.default.shared_libs += liblog.so
+namespace.com_android_i18n.link.default.shared_libs += libm.so
+namespace.com_android_i18n.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.link.default.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_media.isolated = true
namespace.com_android_media.visible = true
namespace.com_android_media.search.paths = /apex/com.android.media/${LIB}
diff --git a/testdata/golden_output/product-enabled/com.android.adbd/ld.config.txt b/testdata/golden_output/product-enabled/com.android.adbd/ld.config.txt
index f2ca95b..15534b9 100644
--- a/testdata/golden_output/product-enabled/com.android.adbd/ld.config.txt
+++ b/testdata/golden_output/product-enabled/com.android.adbd/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.adbd = /apex/com.android.adbd/bin
[com.android.adbd]
-additional.namespaces = com_android_art,com_android_neuralnetworks,system
+additional.namespaces = com_android_art,com_android_i18n,com_android_neuralnetworks,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.adbd/${LIB}
namespace.default.permitted.paths = /apex/com.android.adbd/${LIB}
@@ -30,10 +30,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,default,com_android_neuralnetworks
+namespace.com_android_art.links = system,default,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.default.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -59,11 +77,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/product-enabled/com.android.art/ld.config.txt b/testdata/golden_output/product-enabled/com.android.art/ld.config.txt
index 7007a32..a2e720b 100644
--- a/testdata/golden_output/product-enabled/com.android.art/ld.config.txt
+++ b/testdata/golden_output/product-enabled/com.android.art/ld.config.txt
@@ -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_neuralnetworks,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_conscrypt,com_android_i18n,com_android_neuralnetworks,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
@@ -35,9 +35,13 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_conscrypt.isolated = true
namespace.com_android_conscrypt.visible = true
@@ -55,6 +59,21 @@ namespace.com_android_conscrypt.link.system.shared_libs += liblog.so
namespace.com_android_conscrypt.link.system.shared_libs += libm.so
namespace.com_android_conscrypt.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.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_i18n.isolated = true
+namespace.com_android_i18n.visible = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.visible = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -81,11 +100,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/product-enabled/com.android.conscrypt/ld.config.txt b/testdata/golden_output/product-enabled/com.android.conscrypt/ld.config.txt
index e5e18d6..bc1b571 100644
--- a/testdata/golden_output/product-enabled/com.android.conscrypt/ld.config.txt
+++ b/testdata/golden_output/product-enabled/com.android.conscrypt/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.conscrypt = /apex/com.android.conscrypt/bin
[com.android.conscrypt]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.conscrypt/${LIB}
namespace.default.permitted.paths = /apex/com.android.conscrypt/${LIB}
@@ -45,10 +45,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -74,11 +92,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/product-enabled/com.android.media.swcodec/ld.config.txt b/testdata/golden_output/product-enabled/com.android.media.swcodec/ld.config.txt
index 63ed302..7e8cc6f 100644
--- a/testdata/golden_output/product-enabled/com.android.media.swcodec/ld.config.txt
+++ b/testdata/golden_output/product-enabled/com.android.media.swcodec/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.media.swcodec = /apex/com.android.media.swcodec/bin
[com.android.media.swcodec]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,sphal,system,vndk
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,sphal,system,vndk
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.media.swcodec/${LIB}
namespace.default.permitted.paths = /apex/com.android.media.swcodec/${LIB}
@@ -49,10 +49,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -99,14 +117,14 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
namespace.vndk.isolated = true
namespace.vndk.visible = true
namespace.vndk.search.paths = /odm/${LIB}/vndk-sp
diff --git a/testdata/golden_output/product-enabled/com.android.runtime/ld.config.txt b/testdata/golden_output/product-enabled/com.android.runtime/ld.config.txt
index a8d9c2e..97dcf8b 100644
--- a/testdata/golden_output/product-enabled/com.android.runtime/ld.config.txt
+++ b/testdata/golden_output/product-enabled/com.android.runtime/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.runtime = /apex/com.android.runtime/bin
[com.android.runtime]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.runtime/${LIB}
namespace.default.permitted.paths = /apex/com.android.runtime/${LIB}
@@ -41,10 +41,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -70,11 +88,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/product-enabled/com.android.sdkext/ld.config.txt b/testdata/golden_output/product-enabled/com.android.sdkext/ld.config.txt
index 4bd62b9..3662893 100644
--- a/testdata/golden_output/product-enabled/com.android.sdkext/ld.config.txt
+++ b/testdata/golden_output/product-enabled/com.android.sdkext/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.sdkext = /apex/com.android.sdkext/bin
[com.android.sdkext]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.sdkext/${LIB}
namespace.default.permitted.paths = /apex/com.android.sdkext/${LIB}
@@ -40,10 +40,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -69,11 +87,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/product-enabled/ld.config.txt b/testdata/golden_output/product-enabled/ld.config.txt
index 4ac4352..52dd049 100644
--- a/testdata/golden_output/product-enabled/ld.config.txt
+++ b/testdata/golden_output/product-enabled/ld.config.txt
@@ -18,7 +18,7 @@ dir.unrestricted = /data/local/tmp
dir.postinstall = /postinstall
dir.system = /data
[system]
-additional.namespaces = com_android_adbd,com_android_art,com_android_conscrypt,com_android_cronet,com_android_media,com_android_neuralnetworks,com_android_resolv,com_android_runtime,rs,sphal,vndk,vndk_product
+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_resolv,com_android_runtime,rs,sphal,vndk,vndk_product
namespace.default.isolated = true
namespace.default.visible = true
namespace.default.search.paths = /system/${LIB}
@@ -81,16 +81,16 @@ namespace.default.asan.permitted.paths += /data
namespace.default.asan.permitted.paths += /mnt/expand
namespace.default.asan.permitted.paths += /apex/com.android.runtime/${LIB}/bionic
namespace.default.asan.permitted.paths += /system/${LIB}/bootstrap
-namespace.default.links = com_android_art,com_android_resolv,com_android_neuralnetworks
-namespace.default.link.com_android_art.shared_libs = libandroidicu.so
-namespace.default.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.default.links = com_android_i18n,com_android_art,com_android_resolv,com_android_neuralnetworks
+namespace.default.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.default.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.default.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.default.link.com_android_i18n.shared_libs += libpac.so
+namespace.default.link.com_android_art.shared_libs = libdexfile_external.so
namespace.default.link.com_android_art.shared_libs += libdexfiled_external.so
-namespace.default.link.com_android_art.shared_libs += libicui18n.so
-namespace.default.link.com_android_art.shared_libs += libicuuc.so
namespace.default.link.com_android_art.shared_libs += libnativebridge.so
namespace.default.link.com_android_art.shared_libs += libnativehelper.so
namespace.default.link.com_android_art.shared_libs += libnativeloader.so
-namespace.default.link.com_android_art.shared_libs += libpac.so
namespace.default.link.com_android_resolv.shared_libs = libnetd_resolv.so
namespace.default.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_adbd.isolated = true
@@ -118,9 +118,13 @@ namespace.com_android_art.asan.search.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = default,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = default,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.default.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_conscrypt.isolated = true
namespace.com_android_conscrypt.visible = true
@@ -154,6 +158,21 @@ namespace.com_android_cronet.link.default.shared_libs += liblog.so
namespace.com_android_cronet.link.default.shared_libs += libm.so
namespace.com_android_cronet.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
namespace.com_android_cronet.link.default.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}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = default
+namespace.com_android_i18n.link.default.shared_libs = libc.so
+namespace.com_android_i18n.link.default.shared_libs += libdl.so
+namespace.com_android_i18n.link.default.shared_libs += liblog.so
+namespace.com_android_i18n.link.default.shared_libs += libm.so
+namespace.com_android_i18n.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.link.default.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_media.isolated = true
namespace.com_android_media.visible = true
namespace.com_android_media.search.paths = /apex/com.android.media/${LIB}
@@ -317,7 +336,7 @@ namespace.vndk_product.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:lib
namespace.vndk_product.link.default.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.vndk_product.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
[vendor]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,com_android_runtime,system,vndk
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,com_android_runtime,system,vndk
namespace.default.isolated = true
namespace.default.visible = true
namespace.default.search.paths = /odm/${LIB}
@@ -364,10 +383,28 @@ namespace.com_android_art.asan.search.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.visible = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -406,12 +443,12 @@ namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.search.paths += /data/asan/system_ext/${LIB}
namespace.system.asan.search.paths += /system_ext/${LIB}
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.system.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
-namespace.system.link.com_android_art.shared_libs += libicui18n.so
-namespace.system.link.com_android_art.shared_libs += libicuuc.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
@@ -437,7 +474,7 @@ namespace.vndk.link.system.shared_libs += libclang_rt.asan-arm-android.so:libcla
namespace.vndk.link.default.allow_all_shared_libs = true
namespace.vndk.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
[product]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,com_android_runtime,system,vndk
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,com_android_runtime,system,vndk
namespace.default.isolated = true
namespace.default.visible = true
namespace.default.search.paths = /product/${LIB}
@@ -478,10 +515,28 @@ namespace.com_android_art.asan.search.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.visible = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -520,12 +575,12 @@ namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.search.paths += /data/asan/system_ext/${LIB}
namespace.system.asan.search.paths += /system_ext/${LIB}
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.system.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
-namespace.system.link.com_android_art.shared_libs += libicui18n.so
-namespace.system.link.com_android_art.shared_libs += libicuuc.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
@@ -545,7 +600,7 @@ namespace.vndk.link.system.shared_libs += libclang_rt.asan-arm-android.so:libcla
namespace.vndk.link.default.allow_all_shared_libs = true
namespace.vndk.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
[unrestricted]
-additional.namespaces = com_android_adbd,com_android_art,com_android_conscrypt,com_android_cronet,com_android_media,com_android_neuralnetworks,com_android_resolv,com_android_runtime
+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_resolv,com_android_runtime
namespace.default.isolated = false
namespace.default.visible = true
namespace.default.search.paths = /system/${LIB}
@@ -557,16 +612,16 @@ namespace.default.asan.search.paths += /data/asan/odm/${LIB}
namespace.default.asan.search.paths += /odm/${LIB}
namespace.default.asan.search.paths += /data/asan/vendor/${LIB}
namespace.default.asan.search.paths += /vendor/${LIB}
-namespace.default.links = com_android_art,com_android_resolv,com_android_neuralnetworks
-namespace.default.link.com_android_art.shared_libs = libandroidicu.so
-namespace.default.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.default.links = com_android_i18n,com_android_art,com_android_resolv,com_android_neuralnetworks
+namespace.default.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.default.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.default.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.default.link.com_android_i18n.shared_libs += libpac.so
+namespace.default.link.com_android_art.shared_libs = libdexfile_external.so
namespace.default.link.com_android_art.shared_libs += libdexfiled_external.so
-namespace.default.link.com_android_art.shared_libs += libicui18n.so
-namespace.default.link.com_android_art.shared_libs += libicuuc.so
namespace.default.link.com_android_art.shared_libs += libnativebridge.so
namespace.default.link.com_android_art.shared_libs += libnativehelper.so
namespace.default.link.com_android_art.shared_libs += libnativeloader.so
-namespace.default.link.com_android_art.shared_libs += libpac.so
namespace.default.link.com_android_resolv.shared_libs = libnetd_resolv.so
namespace.default.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_adbd.isolated = true
@@ -594,9 +649,13 @@ namespace.com_android_art.asan.search.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = default,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = default,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.default.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_conscrypt.isolated = true
namespace.com_android_conscrypt.visible = true
@@ -630,6 +689,21 @@ namespace.com_android_cronet.link.default.shared_libs += liblog.so
namespace.com_android_cronet.link.default.shared_libs += libm.so
namespace.com_android_cronet.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
namespace.com_android_cronet.link.default.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}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = default
+namespace.com_android_i18n.link.default.shared_libs = libc.so
+namespace.com_android_i18n.link.default.shared_libs += libdl.so
+namespace.com_android_i18n.link.default.shared_libs += liblog.so
+namespace.com_android_i18n.link.default.shared_libs += libm.so
+namespace.com_android_i18n.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.link.default.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_media.isolated = true
namespace.com_android_media.visible = true
namespace.com_android_media.search.paths = /apex/com.android.media/${LIB}
diff --git a/testdata/golden_output/stage1/com.android.art/ld.config.txt b/testdata/golden_output/stage1/com.android.art/ld.config.txt
index ef10416..a682126 100644
--- a/testdata/golden_output/stage1/com.android.art/ld.config.txt
+++ b/testdata/golden_output/stage1/com.android.art/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.art = /apex/com.android.art/bin
[com.android.art]
-additional.namespaces = com_android_art,system
+additional.namespaces = com_android_art,com_android_i18n,system
namespace.default.isolated = true
namespace.default.links = com_android_art,system
namespace.default.link.com_android_art.allow_all_shared_libs = true
@@ -19,8 +19,27 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system
+namespace.com_android_art.links = system,com_android_i18n
namespace.com_android_art.link.system.allow_all_shared_libs = true
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.visible = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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.system.isolated = true
namespace.system.visible = true
namespace.system.search.paths = /system/${LIB}
@@ -28,11 +47,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/stage1/com.android.runtime/ld.config.txt b/testdata/golden_output/stage1/com.android.runtime/ld.config.txt
index cceda7e..735a7e9 100644
--- a/testdata/golden_output/stage1/com.android.runtime/ld.config.txt
+++ b/testdata/golden_output/stage1/com.android.runtime/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.runtime = /apex/com.android.runtime/bin
[com.android.runtime]
-additional.namespaces = com_android_art,system
+additional.namespaces = com_android_art,com_android_i18n,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.runtime/${LIB}
namespace.default.permitted.paths = /apex/com.android.runtime/${LIB}
@@ -26,8 +26,26 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system
+namespace.com_android_art.links = system,com_android_i18n
namespace.com_android_art.link.system.allow_all_shared_libs = true
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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.system.isolated = true
namespace.system.visible = true
namespace.system.search.paths = /system/${LIB}
@@ -35,11 +53,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/stage1/ld.config.txt b/testdata/golden_output/stage1/ld.config.txt
index 40e275a..1e57021 100644
--- a/testdata/golden_output/stage1/ld.config.txt
+++ b/testdata/golden_output/stage1/ld.config.txt
@@ -18,7 +18,7 @@ dir.unrestricted = /data/local/tmp
dir.postinstall = /postinstall
dir.system = /data
[system]
-additional.namespaces = com_android_art,com_android_runtime,rs,sphal,vndk
+additional.namespaces = com_android_art,com_android_i18n,com_android_runtime,rs,sphal,vndk
namespace.default.isolated = true
namespace.default.visible = true
namespace.default.search.paths = /system/${LIB}
@@ -86,16 +86,16 @@ namespace.default.asan.permitted.paths += /mnt/expand
namespace.default.asan.permitted.paths += /apex/com.android.runtime/${LIB}/bionic
namespace.default.asan.permitted.paths += /system/${LIB}/bootstrap
namespace.default.asan.permitted.paths += /product/${LIB}
-namespace.default.links = com_android_art
-namespace.default.link.com_android_art.shared_libs = libandroidicu.so
-namespace.default.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.default.links = com_android_i18n,com_android_art
+namespace.default.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.default.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.default.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.default.link.com_android_i18n.shared_libs += libpac.so
+namespace.default.link.com_android_art.shared_libs = libdexfile_external.so
namespace.default.link.com_android_art.shared_libs += libdexfiled_external.so
-namespace.default.link.com_android_art.shared_libs += libicui18n.so
-namespace.default.link.com_android_art.shared_libs += libicuuc.so
namespace.default.link.com_android_art.shared_libs += libnativebridge.so
namespace.default.link.com_android_art.shared_libs += libnativehelper.so
namespace.default.link.com_android_art.shared_libs += libnativeloader.so
-namespace.default.link.com_android_art.shared_libs += libpac.so
namespace.com_android_art.isolated = true
namespace.com_android_art.visible = true
namespace.com_android_art.search.paths = /apex/com.android.art/${LIB}
@@ -106,8 +106,27 @@ namespace.com_android_art.asan.search.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = default
+namespace.com_android_art.links = default,com_android_i18n
namespace.com_android_art.link.default.allow_all_shared_libs = true
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.visible = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = default
+namespace.com_android_i18n.link.default.shared_libs = libc.so
+namespace.com_android_i18n.link.default.shared_libs += libdl.so
+namespace.com_android_i18n.link.default.shared_libs += liblog.so
+namespace.com_android_i18n.link.default.shared_libs += libm.so
+namespace.com_android_i18n.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.link.default.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_runtime.isolated = true
namespace.com_android_runtime.visible = true
namespace.com_android_runtime.search.paths = /apex/com.android.runtime/${LIB}
@@ -204,7 +223,7 @@ namespace.vndk.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.s
namespace.vndk.link.default.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.vndk.link.sphal.allow_all_shared_libs = true
[vendor]
-additional.namespaces = com_android_art,com_android_runtime,system,vndk
+additional.namespaces = com_android_art,com_android_i18n,com_android_runtime,system,vndk
namespace.default.isolated = true
namespace.default.visible = true
namespace.default.search.paths = /odm/${LIB}
@@ -235,8 +254,26 @@ namespace.com_android_art.asan.search.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system
+namespace.com_android_art.links = system,com_android_i18n
namespace.com_android_art.link.system.allow_all_shared_libs = true
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_runtime.isolated = true
namespace.com_android_runtime.visible = true
namespace.com_android_runtime.search.paths = /apex/com.android.runtime/${LIB}
@@ -259,12 +296,12 @@ namespace.system.asan.search.paths += /data/asan/system_ext/${LIB}
namespace.system.asan.search.paths += /system_ext/${LIB}
namespace.system.asan.search.paths += /data/asan/product/${LIB}
namespace.system.asan.search.paths += /product/${LIB}
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.system.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
-namespace.system.link.com_android_art.shared_libs += libicui18n.so
-namespace.system.link.com_android_art.shared_libs += libicuuc.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
@@ -289,7 +326,7 @@ namespace.vndk.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so
namespace.vndk.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.vndk.link.default.allow_all_shared_libs = true
[unrestricted]
-additional.namespaces = com_android_art,com_android_runtime
+additional.namespaces = com_android_art,com_android_i18n,com_android_runtime
namespace.default.isolated = false
namespace.default.visible = true
namespace.default.search.paths = /system/${LIB}
@@ -301,16 +338,16 @@ namespace.default.asan.search.paths += /data/asan/odm/${LIB}
namespace.default.asan.search.paths += /odm/${LIB}
namespace.default.asan.search.paths += /data/asan/vendor/${LIB}
namespace.default.asan.search.paths += /vendor/${LIB}
-namespace.default.links = com_android_art
-namespace.default.link.com_android_art.shared_libs = libandroidicu.so
-namespace.default.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.default.links = com_android_i18n,com_android_art
+namespace.default.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.default.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.default.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.default.link.com_android_i18n.shared_libs += libpac.so
+namespace.default.link.com_android_art.shared_libs = libdexfile_external.so
namespace.default.link.com_android_art.shared_libs += libdexfiled_external.so
-namespace.default.link.com_android_art.shared_libs += libicui18n.so
-namespace.default.link.com_android_art.shared_libs += libicuuc.so
namespace.default.link.com_android_art.shared_libs += libnativebridge.so
namespace.default.link.com_android_art.shared_libs += libnativehelper.so
namespace.default.link.com_android_art.shared_libs += libnativeloader.so
-namespace.default.link.com_android_art.shared_libs += libpac.so
namespace.com_android_art.isolated = true
namespace.com_android_art.visible = true
namespace.com_android_art.search.paths = /apex/com.android.art/${LIB}
@@ -321,8 +358,27 @@ namespace.com_android_art.asan.search.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = default
+namespace.com_android_art.links = default,com_android_i18n
namespace.com_android_art.link.default.allow_all_shared_libs = true
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.visible = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = default
+namespace.com_android_i18n.link.default.shared_libs = libc.so
+namespace.com_android_i18n.link.default.shared_libs += libdl.so
+namespace.com_android_i18n.link.default.shared_libs += liblog.so
+namespace.com_android_i18n.link.default.shared_libs += libm.so
+namespace.com_android_i18n.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.link.default.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_runtime.isolated = true
namespace.com_android_runtime.visible = true
namespace.com_android_runtime.search.paths = /apex/com.android.runtime/${LIB}
diff --git a/testdata/golden_output/stage2/com.android.adbd/ld.config.txt b/testdata/golden_output/stage2/com.android.adbd/ld.config.txt
index f2ca95b..15534b9 100644
--- a/testdata/golden_output/stage2/com.android.adbd/ld.config.txt
+++ b/testdata/golden_output/stage2/com.android.adbd/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.adbd = /apex/com.android.adbd/bin
[com.android.adbd]
-additional.namespaces = com_android_art,com_android_neuralnetworks,system
+additional.namespaces = com_android_art,com_android_i18n,com_android_neuralnetworks,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.adbd/${LIB}
namespace.default.permitted.paths = /apex/com.android.adbd/${LIB}
@@ -30,10 +30,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,default,com_android_neuralnetworks
+namespace.com_android_art.links = system,default,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.default.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -59,11 +77,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/stage2/com.android.art/ld.config.txt b/testdata/golden_output/stage2/com.android.art/ld.config.txt
index 7007a32..a2e720b 100644
--- a/testdata/golden_output/stage2/com.android.art/ld.config.txt
+++ b/testdata/golden_output/stage2/com.android.art/ld.config.txt
@@ -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_neuralnetworks,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_conscrypt,com_android_i18n,com_android_neuralnetworks,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
@@ -35,9 +35,13 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_conscrypt.isolated = true
namespace.com_android_conscrypt.visible = true
@@ -55,6 +59,21 @@ namespace.com_android_conscrypt.link.system.shared_libs += liblog.so
namespace.com_android_conscrypt.link.system.shared_libs += libm.so
namespace.com_android_conscrypt.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.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_i18n.isolated = true
+namespace.com_android_i18n.visible = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.visible = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -81,11 +100,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/stage2/com.android.conscrypt/ld.config.txt b/testdata/golden_output/stage2/com.android.conscrypt/ld.config.txt
index e5e18d6..bc1b571 100644
--- a/testdata/golden_output/stage2/com.android.conscrypt/ld.config.txt
+++ b/testdata/golden_output/stage2/com.android.conscrypt/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.conscrypt = /apex/com.android.conscrypt/bin
[com.android.conscrypt]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.conscrypt/${LIB}
namespace.default.permitted.paths = /apex/com.android.conscrypt/${LIB}
@@ -45,10 +45,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -74,11 +92,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/stage2/com.android.media.swcodec/ld.config.txt b/testdata/golden_output/stage2/com.android.media.swcodec/ld.config.txt
index 63ed302..7e8cc6f 100644
--- a/testdata/golden_output/stage2/com.android.media.swcodec/ld.config.txt
+++ b/testdata/golden_output/stage2/com.android.media.swcodec/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.media.swcodec = /apex/com.android.media.swcodec/bin
[com.android.media.swcodec]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,sphal,system,vndk
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,sphal,system,vndk
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.media.swcodec/${LIB}
namespace.default.permitted.paths = /apex/com.android.media.swcodec/${LIB}
@@ -49,10 +49,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -99,14 +117,14 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
namespace.vndk.isolated = true
namespace.vndk.visible = true
namespace.vndk.search.paths = /odm/${LIB}/vndk-sp
diff --git a/testdata/golden_output/stage2/com.android.runtime/ld.config.txt b/testdata/golden_output/stage2/com.android.runtime/ld.config.txt
index a8d9c2e..97dcf8b 100644
--- a/testdata/golden_output/stage2/com.android.runtime/ld.config.txt
+++ b/testdata/golden_output/stage2/com.android.runtime/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.runtime = /apex/com.android.runtime/bin
[com.android.runtime]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.runtime/${LIB}
namespace.default.permitted.paths = /apex/com.android.runtime/${LIB}
@@ -41,10 +41,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -70,11 +88,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/stage2/com.android.sdkext/ld.config.txt b/testdata/golden_output/stage2/com.android.sdkext/ld.config.txt
index 4bd62b9..3662893 100644
--- a/testdata/golden_output/stage2/com.android.sdkext/ld.config.txt
+++ b/testdata/golden_output/stage2/com.android.sdkext/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.sdkext = /apex/com.android.sdkext/bin
[com.android.sdkext]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.sdkext/${LIB}
namespace.default.permitted.paths = /apex/com.android.sdkext/${LIB}
@@ -40,10 +40,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -69,11 +87,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/stage2/ld.config.txt b/testdata/golden_output/stage2/ld.config.txt
index 45f6578..9271c7c 100644
--- a/testdata/golden_output/stage2/ld.config.txt
+++ b/testdata/golden_output/stage2/ld.config.txt
@@ -18,7 +18,7 @@ dir.unrestricted = /data/local/tmp
dir.postinstall = /postinstall
dir.system = /data
[system]
-additional.namespaces = com_android_adbd,com_android_art,com_android_conscrypt,com_android_cronet,com_android_media,com_android_neuralnetworks,com_android_resolv,com_android_runtime,rs,sphal,vndk
+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_resolv,com_android_runtime,rs,sphal,vndk
namespace.default.isolated = true
namespace.default.visible = true
namespace.default.search.paths = /system/${LIB}
@@ -86,16 +86,16 @@ namespace.default.asan.permitted.paths += /mnt/expand
namespace.default.asan.permitted.paths += /apex/com.android.runtime/${LIB}/bionic
namespace.default.asan.permitted.paths += /system/${LIB}/bootstrap
namespace.default.asan.permitted.paths += /product/${LIB}
-namespace.default.links = com_android_art,com_android_resolv,com_android_neuralnetworks
-namespace.default.link.com_android_art.shared_libs = libandroidicu.so
-namespace.default.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.default.links = com_android_i18n,com_android_art,com_android_resolv,com_android_neuralnetworks
+namespace.default.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.default.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.default.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.default.link.com_android_i18n.shared_libs += libpac.so
+namespace.default.link.com_android_art.shared_libs = libdexfile_external.so
namespace.default.link.com_android_art.shared_libs += libdexfiled_external.so
-namespace.default.link.com_android_art.shared_libs += libicui18n.so
-namespace.default.link.com_android_art.shared_libs += libicuuc.so
namespace.default.link.com_android_art.shared_libs += libnativebridge.so
namespace.default.link.com_android_art.shared_libs += libnativehelper.so
namespace.default.link.com_android_art.shared_libs += libnativeloader.so
-namespace.default.link.com_android_art.shared_libs += libpac.so
namespace.default.link.com_android_resolv.shared_libs = libnetd_resolv.so
namespace.default.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_adbd.isolated = true
@@ -123,9 +123,13 @@ namespace.com_android_art.asan.search.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = default,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = default,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.default.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_conscrypt.isolated = true
namespace.com_android_conscrypt.visible = true
@@ -159,6 +163,21 @@ namespace.com_android_cronet.link.default.shared_libs += liblog.so
namespace.com_android_cronet.link.default.shared_libs += libm.so
namespace.com_android_cronet.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
namespace.com_android_cronet.link.default.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}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = default
+namespace.com_android_i18n.link.default.shared_libs = libc.so
+namespace.com_android_i18n.link.default.shared_libs += libdl.so
+namespace.com_android_i18n.link.default.shared_libs += liblog.so
+namespace.com_android_i18n.link.default.shared_libs += libm.so
+namespace.com_android_i18n.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.link.default.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_media.isolated = true
namespace.com_android_media.visible = true
namespace.com_android_media.search.paths = /apex/com.android.media/${LIB}
@@ -310,7 +329,7 @@ namespace.vndk.link.default.shared_libs += libclang_rt.asan-arm-android.so:libcl
namespace.vndk.link.sphal.allow_all_shared_libs = true
namespace.vndk.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
[vendor]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,com_android_runtime,system,vndk
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,com_android_runtime,system,vndk
namespace.default.isolated = true
namespace.default.visible = true
namespace.default.search.paths = /odm/${LIB}
@@ -357,10 +376,28 @@ namespace.com_android_art.asan.search.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.visible = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -402,12 +439,12 @@ namespace.system.asan.search.paths += /data/asan/system_ext/${LIB}
namespace.system.asan.search.paths += /system_ext/${LIB}
namespace.system.asan.search.paths += /data/asan/product/${LIB}
namespace.system.asan.search.paths += /product/${LIB}
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.system.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
-namespace.system.link.com_android_art.shared_libs += libicui18n.so
-namespace.system.link.com_android_art.shared_libs += libicuuc.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
@@ -433,7 +470,7 @@ namespace.vndk.link.system.shared_libs += libclang_rt.asan-arm-android.so:libcla
namespace.vndk.link.default.allow_all_shared_libs = true
namespace.vndk.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
[unrestricted]
-additional.namespaces = com_android_adbd,com_android_art,com_android_conscrypt,com_android_cronet,com_android_media,com_android_neuralnetworks,com_android_resolv,com_android_runtime
+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_resolv,com_android_runtime
namespace.default.isolated = false
namespace.default.visible = true
namespace.default.search.paths = /system/${LIB}
@@ -445,16 +482,16 @@ namespace.default.asan.search.paths += /data/asan/odm/${LIB}
namespace.default.asan.search.paths += /odm/${LIB}
namespace.default.asan.search.paths += /data/asan/vendor/${LIB}
namespace.default.asan.search.paths += /vendor/${LIB}
-namespace.default.links = com_android_art,com_android_resolv,com_android_neuralnetworks
-namespace.default.link.com_android_art.shared_libs = libandroidicu.so
-namespace.default.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.default.links = com_android_i18n,com_android_art,com_android_resolv,com_android_neuralnetworks
+namespace.default.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.default.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.default.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.default.link.com_android_i18n.shared_libs += libpac.so
+namespace.default.link.com_android_art.shared_libs = libdexfile_external.so
namespace.default.link.com_android_art.shared_libs += libdexfiled_external.so
-namespace.default.link.com_android_art.shared_libs += libicui18n.so
-namespace.default.link.com_android_art.shared_libs += libicuuc.so
namespace.default.link.com_android_art.shared_libs += libnativebridge.so
namespace.default.link.com_android_art.shared_libs += libnativehelper.so
namespace.default.link.com_android_art.shared_libs += libnativeloader.so
-namespace.default.link.com_android_art.shared_libs += libpac.so
namespace.default.link.com_android_resolv.shared_libs = libnetd_resolv.so
namespace.default.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_adbd.isolated = true
@@ -482,9 +519,13 @@ namespace.com_android_art.asan.search.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = default,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = default,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.default.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_conscrypt.isolated = true
namespace.com_android_conscrypt.visible = true
@@ -518,6 +559,21 @@ namespace.com_android_cronet.link.default.shared_libs += liblog.so
namespace.com_android_cronet.link.default.shared_libs += libm.so
namespace.com_android_cronet.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
namespace.com_android_cronet.link.default.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}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = default
+namespace.com_android_i18n.link.default.shared_libs = libc.so
+namespace.com_android_i18n.link.default.shared_libs += libdl.so
+namespace.com_android_i18n.link.default.shared_libs += liblog.so
+namespace.com_android_i18n.link.default.shared_libs += libm.so
+namespace.com_android_i18n.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.link.default.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_media.isolated = true
namespace.com_android_media.visible = true
namespace.com_android_media.search.paths = /apex/com.android.media/${LIB}
diff --git a/testdata/golden_output/vndk-lite/com.android.adbd/ld.config.txt b/testdata/golden_output/vndk-lite/com.android.adbd/ld.config.txt
index f2ca95b..15534b9 100644
--- a/testdata/golden_output/vndk-lite/com.android.adbd/ld.config.txt
+++ b/testdata/golden_output/vndk-lite/com.android.adbd/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.adbd = /apex/com.android.adbd/bin
[com.android.adbd]
-additional.namespaces = com_android_art,com_android_neuralnetworks,system
+additional.namespaces = com_android_art,com_android_i18n,com_android_neuralnetworks,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.adbd/${LIB}
namespace.default.permitted.paths = /apex/com.android.adbd/${LIB}
@@ -30,10 +30,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,default,com_android_neuralnetworks
+namespace.com_android_art.links = system,default,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.default.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -59,11 +77,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/vndk-lite/com.android.art/ld.config.txt b/testdata/golden_output/vndk-lite/com.android.art/ld.config.txt
index 7007a32..a2e720b 100644
--- a/testdata/golden_output/vndk-lite/com.android.art/ld.config.txt
+++ b/testdata/golden_output/vndk-lite/com.android.art/ld.config.txt
@@ -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_neuralnetworks,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_conscrypt,com_android_i18n,com_android_neuralnetworks,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
@@ -35,9 +35,13 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_conscrypt.isolated = true
namespace.com_android_conscrypt.visible = true
@@ -55,6 +59,21 @@ namespace.com_android_conscrypt.link.system.shared_libs += liblog.so
namespace.com_android_conscrypt.link.system.shared_libs += libm.so
namespace.com_android_conscrypt.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.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_i18n.isolated = true
+namespace.com_android_i18n.visible = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.visible = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -81,11 +100,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/vndk-lite/com.android.conscrypt/ld.config.txt b/testdata/golden_output/vndk-lite/com.android.conscrypt/ld.config.txt
index e5e18d6..bc1b571 100644
--- a/testdata/golden_output/vndk-lite/com.android.conscrypt/ld.config.txt
+++ b/testdata/golden_output/vndk-lite/com.android.conscrypt/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.conscrypt = /apex/com.android.conscrypt/bin
[com.android.conscrypt]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.conscrypt/${LIB}
namespace.default.permitted.paths = /apex/com.android.conscrypt/${LIB}
@@ -45,10 +45,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -74,11 +92,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/vndk-lite/com.android.media.swcodec/ld.config.txt b/testdata/golden_output/vndk-lite/com.android.media.swcodec/ld.config.txt
index e5b040d..42e951b 100644
--- a/testdata/golden_output/vndk-lite/com.android.media.swcodec/ld.config.txt
+++ b/testdata/golden_output/vndk-lite/com.android.media.swcodec/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.media.swcodec = /apex/com.android.media.swcodec/bin
[com.android.media.swcodec]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,sphal,system,vndk
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,sphal,system,vndk
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.media.swcodec/${LIB}
namespace.default.permitted.paths = /apex/com.android.media.swcodec/${LIB}
@@ -49,10 +49,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -99,14 +117,14 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
namespace.vndk.isolated = true
namespace.vndk.visible = true
namespace.vndk.search.paths = /odm/${LIB}/vndk-sp
diff --git a/testdata/golden_output/vndk-lite/com.android.runtime/ld.config.txt b/testdata/golden_output/vndk-lite/com.android.runtime/ld.config.txt
index a8d9c2e..97dcf8b 100644
--- a/testdata/golden_output/vndk-lite/com.android.runtime/ld.config.txt
+++ b/testdata/golden_output/vndk-lite/com.android.runtime/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.runtime = /apex/com.android.runtime/bin
[com.android.runtime]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.runtime/${LIB}
namespace.default.permitted.paths = /apex/com.android.runtime/${LIB}
@@ -41,10 +41,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -70,11 +88,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/vndk-lite/com.android.sdkext/ld.config.txt b/testdata/golden_output/vndk-lite/com.android.sdkext/ld.config.txt
index 4bd62b9..3662893 100644
--- a/testdata/golden_output/vndk-lite/com.android.sdkext/ld.config.txt
+++ b/testdata/golden_output/vndk-lite/com.android.sdkext/ld.config.txt
@@ -1,6 +1,6 @@
dir.com.android.sdkext = /apex/com.android.sdkext/bin
[com.android.sdkext]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,system
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,system
namespace.default.isolated = true
namespace.default.search.paths = /apex/com.android.sdkext/${LIB}
namespace.default.permitted.paths = /apex/com.android.sdkext/${LIB}
@@ -40,10 +40,28 @@ namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /data
namespace.com_android_art.asan.permitted.paths += /system/framework
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = system,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = system,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.system.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = system
+namespace.com_android_i18n.link.system.shared_libs = libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += liblog.so
+namespace.com_android_i18n.link.system.shared_libs += libm.so
+namespace.com_android_i18n.link.system.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.com_android_neuralnetworks.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -69,11 +87,11 @@ namespace.system.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
namespace.system.asan.search.paths = /data/asan/system/${LIB}
namespace.system.asan.search.paths += /system/${LIB}
namespace.system.asan.permitted.paths = /apex/com.android.runtime/${LIB}/bionic
-namespace.system.links = com_android_art
-namespace.system.link.com_android_art.shared_libs = libandroidicu.so
-namespace.system.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.system.links = com_android_i18n,com_android_art
+namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.system.link.com_android_i18n.shared_libs += libpac.so
+namespace.system.link.com_android_art.shared_libs = libdexfile_external.so
namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
namespace.system.link.com_android_art.shared_libs += libnativebridge.so
namespace.system.link.com_android_art.shared_libs += libnativehelper.so
namespace.system.link.com_android_art.shared_libs += libnativeloader.so
-namespace.system.link.com_android_art.shared_libs += libpac.so
diff --git a/testdata/golden_output/vndk-lite/ld.config.txt b/testdata/golden_output/vndk-lite/ld.config.txt
index 1ba24c7..e3baf1b 100644
--- a/testdata/golden_output/vndk-lite/ld.config.txt
+++ b/testdata/golden_output/vndk-lite/ld.config.txt
@@ -18,7 +18,7 @@ dir.unrestricted = /data/local/tmp
dir.postinstall = /postinstall
dir.system = /data
[system]
-additional.namespaces = com_android_adbd,com_android_art,com_android_conscrypt,com_android_cronet,com_android_media,com_android_neuralnetworks,com_android_resolv,com_android_runtime,rs,sphal,vndk
+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_resolv,com_android_runtime,rs,sphal,vndk
namespace.default.isolated = false
namespace.default.visible = true
namespace.default.search.paths = /system/${LIB}
@@ -36,16 +36,16 @@ namespace.default.asan.search.paths += /data/asan/vendor/${LIB}
namespace.default.asan.search.paths += /vendor/${LIB}
namespace.default.asan.search.paths += /data/asan/odm/${LIB}
namespace.default.asan.search.paths += /odm/${LIB}
-namespace.default.links = com_android_art,com_android_resolv,com_android_neuralnetworks
-namespace.default.link.com_android_art.shared_libs = libandroidicu.so
-namespace.default.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.default.links = com_android_i18n,com_android_art,com_android_resolv,com_android_neuralnetworks
+namespace.default.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.default.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.default.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.default.link.com_android_i18n.shared_libs += libpac.so
+namespace.default.link.com_android_art.shared_libs = libdexfile_external.so
namespace.default.link.com_android_art.shared_libs += libdexfiled_external.so
-namespace.default.link.com_android_art.shared_libs += libicui18n.so
-namespace.default.link.com_android_art.shared_libs += libicuuc.so
namespace.default.link.com_android_art.shared_libs += libnativebridge.so
namespace.default.link.com_android_art.shared_libs += libnativehelper.so
namespace.default.link.com_android_art.shared_libs += libnativeloader.so
-namespace.default.link.com_android_art.shared_libs += libpac.so
namespace.default.link.com_android_resolv.shared_libs = libnetd_resolv.so
namespace.default.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_adbd.isolated = true
@@ -73,9 +73,13 @@ namespace.com_android_art.asan.search.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = default,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = default,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.default.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_conscrypt.isolated = true
namespace.com_android_conscrypt.visible = true
@@ -109,6 +113,21 @@ namespace.com_android_cronet.link.default.shared_libs += liblog.so
namespace.com_android_cronet.link.default.shared_libs += libm.so
namespace.com_android_cronet.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
namespace.com_android_cronet.link.default.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}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = default
+namespace.com_android_i18n.link.default.shared_libs = libc.so
+namespace.com_android_i18n.link.default.shared_libs += libdl.so
+namespace.com_android_i18n.link.default.shared_libs += liblog.so
+namespace.com_android_i18n.link.default.shared_libs += libm.so
+namespace.com_android_i18n.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.link.default.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_media.isolated = true
namespace.com_android_media.visible = true
namespace.com_android_media.search.paths = /apex/com.android.media/${LIB}
@@ -258,7 +277,7 @@ namespace.vndk.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.s
namespace.vndk.link.default.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.vndk.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
[vendor]
-additional.namespaces = com_android_adbd,com_android_art,com_android_neuralnetworks,com_android_runtime
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,com_android_runtime
namespace.default.isolated = false
namespace.default.search.paths = /odm/${LIB}
namespace.default.search.paths += /odm/${LIB}/vndk
@@ -296,14 +315,14 @@ namespace.default.asan.permitted.paths = /data/asan/odm
namespace.default.asan.permitted.paths += /odm
namespace.default.asan.permitted.paths += /data/asan/vendor
namespace.default.asan.permitted.paths += /vendor
-namespace.default.links = com_android_art,com_android_neuralnetworks
+namespace.default.links = com_android_art,com_android_i18n,com_android_neuralnetworks
namespace.default.link.com_android_art.shared_libs = libdexfile_external.so
namespace.default.link.com_android_art.shared_libs += libdexfiled_external.so
-namespace.default.link.com_android_art.shared_libs += libicui18n.so
-namespace.default.link.com_android_art.shared_libs += libicuuc.so
namespace.default.link.com_android_art.shared_libs += libnativebridge.so
namespace.default.link.com_android_art.shared_libs += libnativehelper.so
namespace.default.link.com_android_art.shared_libs += libnativeloader.so
+namespace.default.link.com_android_i18n.shared_libs = libicui18n.so
+namespace.default.link.com_android_i18n.shared_libs += libicuuc.so
namespace.default.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_adbd.isolated = true
namespace.com_android_adbd.search.paths = /apex/com.android.adbd/${LIB}
@@ -324,10 +343,24 @@ namespace.com_android_art.asan.search.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = default,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = default,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.default.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
+namespace.com_android_i18n.isolated = true
+namespace.com_android_i18n.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = default
+namespace.com_android_i18n.link.default.shared_libs = libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.link.default.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_neuralnetworks.isolated = true
namespace.com_android_neuralnetworks.visible = true
namespace.com_android_neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
@@ -351,7 +384,7 @@ namespace.com_android_runtime.links = default
namespace.com_android_runtime.link.default.shared_libs = libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
namespace.com_android_runtime.link.default.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
[unrestricted]
-additional.namespaces = com_android_adbd,com_android_art,com_android_conscrypt,com_android_cronet,com_android_media,com_android_neuralnetworks,com_android_resolv,com_android_runtime
+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_resolv,com_android_runtime
namespace.default.isolated = false
namespace.default.visible = true
namespace.default.search.paths = /system/${LIB}
@@ -363,16 +396,16 @@ namespace.default.asan.search.paths += /data/asan/odm/${LIB}
namespace.default.asan.search.paths += /odm/${LIB}
namespace.default.asan.search.paths += /data/asan/vendor/${LIB}
namespace.default.asan.search.paths += /vendor/${LIB}
-namespace.default.links = com_android_art,com_android_resolv,com_android_neuralnetworks
-namespace.default.link.com_android_art.shared_libs = libandroidicu.so
-namespace.default.link.com_android_art.shared_libs += libdexfile_external.so
+namespace.default.links = com_android_i18n,com_android_art,com_android_resolv,com_android_neuralnetworks
+namespace.default.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.default.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.default.link.com_android_i18n.shared_libs += libicuuc.so
+namespace.default.link.com_android_i18n.shared_libs += libpac.so
+namespace.default.link.com_android_art.shared_libs = libdexfile_external.so
namespace.default.link.com_android_art.shared_libs += libdexfiled_external.so
-namespace.default.link.com_android_art.shared_libs += libicui18n.so
-namespace.default.link.com_android_art.shared_libs += libicuuc.so
namespace.default.link.com_android_art.shared_libs += libnativebridge.so
namespace.default.link.com_android_art.shared_libs += libnativehelper.so
namespace.default.link.com_android_art.shared_libs += libnativeloader.so
-namespace.default.link.com_android_art.shared_libs += libpac.so
namespace.default.link.com_android_resolv.shared_libs = libnetd_resolv.so
namespace.default.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_adbd.isolated = true
@@ -400,9 +433,13 @@ namespace.com_android_art.asan.search.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths = /apex/com.android.art/${LIB}
namespace.com_android_art.asan.permitted.paths += /system/${LIB}
namespace.com_android_art.asan.permitted.paths += /apex/com.android.art/javalib
-namespace.com_android_art.links = default,com_android_adbd,com_android_neuralnetworks
+namespace.com_android_art.links = default,com_android_adbd,com_android_i18n,com_android_neuralnetworks
namespace.com_android_art.link.default.allow_all_shared_libs = true
namespace.com_android_art.link.com_android_adbd.shared_libs = libadbconnection_client.so
+namespace.com_android_art.link.com_android_i18n.shared_libs = libandroidicu.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicu_jni.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicui18n.so
+namespace.com_android_art.link.com_android_i18n.shared_libs += libicuuc.so
namespace.com_android_art.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
namespace.com_android_conscrypt.isolated = true
namespace.com_android_conscrypt.visible = true
@@ -436,6 +473,21 @@ namespace.com_android_cronet.link.default.shared_libs += liblog.so
namespace.com_android_cronet.link.default.shared_libs += libm.so
namespace.com_android_cronet.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
namespace.com_android_cronet.link.default.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}
+namespace.com_android_i18n.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.asan.search.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths = /apex/com.android.i18n/${LIB}
+namespace.com_android_i18n.asan.permitted.paths += /system/${LIB}
+namespace.com_android_i18n.links = default
+namespace.com_android_i18n.link.default.shared_libs = libc.so
+namespace.com_android_i18n.link.default.shared_libs += libdl.so
+namespace.com_android_i18n.link.default.shared_libs += liblog.so
+namespace.com_android_i18n.link.default.shared_libs += libm.so
+namespace.com_android_i18n.link.default.shared_libs += libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libaaudio.so:libadbd_auth.so:libadbd_fs.so:libandroid.so:libandroid_net.so:libbinder_ndk.so:libc.so:libcgrouprc.so:libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libdl_android.so:libft2.so:libincident.so:liblog.so:libm.so:libmediametrics.so:libmediandk.so:libnativewindow.so:libneuralnetworks_packageinfo.so:libsync.so:libvndksupport.so:libvulkan.so:libselinux.so
+namespace.com_android_i18n.link.default.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_media.isolated = true
namespace.com_android_media.visible = true
namespace.com_android_media.search.paths = /apex/com.android.media/${LIB}
diff --git a/testdata/root/apex/com.android.art/apex_manifest.json b/testdata/root/apex/com.android.art/apex_manifest.json
index 0ca88d0..7a9b371 100644
--- a/testdata/root/apex/com.android.art/apex_manifest.json
+++ b/testdata/root/apex/com.android.art/apex_manifest.json
@@ -2,18 +2,18 @@
"name": "com.android.art",
"version": 1,
"provideNativeLibs": [
- "libicui18n.so",
- "libicuuc.so",
- "libandroidicu.so",
"libandroidio.so",
"libdexfile_external.so",
"libdexfiled_external.so",
"libnativebridge.so",
"libnativehelper.so",
- "libnativeloader.so",
- "libpac.so"
+ "libnativeloader.so"
],
"requireNativeLibs": [
+ "libandroidicu.so",
+ "libicuuc.so",
+ "libicui18n.so",
+ "libicu_jni.so",
"libneuralnetworks.so",
"libadbconnection_client.so",
"libc.so",
diff --git a/testdata/root/apex/com.android.i18n/apex_manifest.json b/testdata/root/apex/com.android.i18n/apex_manifest.json
index 49e13dd..c853003 100644
--- a/testdata/root/apex/com.android.i18n/apex_manifest.json
+++ b/testdata/root/apex/com.android.i18n/apex_manifest.json
@@ -1,6 +1,17 @@
{
"name": "com.android.i18n",
"version": 1,
- "provideNativeLibs": [],
- "requireNativeLibs": []
+ "provideNativeLibs": [
+ "libandroidicu.so",
+ "libicui18n.so",
+ "libicuuc.so",
+ "libicu_jni.so",
+ "libpac.so"
+ ],
+ "requireNativeLibs": [
+ "libc.so",
+ "libdl.so",
+ "liblog.so",
+ "libm.so"
+ ]
}