OSDN Git Service

Add Vendor APEX to testdata
authorJooyung Han <jooyung@google.com>
Tue, 23 Jun 2020 13:15:47 +0000 (22:15 +0900)
committerJooyung Han <jooyung@google.com>
Tue, 23 Jun 2020 13:15:47 +0000 (22:15 +0900)
Linkerconfig doesn't care about Vendor APEXes yet.

Bug: 159576928
Test: ./rundiff.sh
Change-Id: I703789cc41e990b89a471f5489c120240faddba6

testdata/golden_output/legacy/com.vendor.service1/ld.config.txt [new file with mode: 0644]
testdata/golden_output/product-enabled/com.vendor.service1/ld.config.txt [new file with mode: 0644]
testdata/golden_output/stage2/com.vendor.service1/ld.config.txt [new file with mode: 0644]
testdata/root/vendor/apex/com.vendor.service1/apex_manifest.json [new file with mode: 0644]
testdata/root/vendor/apex/com.vendor.service1/bin/.keep [new file with mode: 0644]

diff --git a/testdata/golden_output/legacy/com.vendor.service1/ld.config.txt b/testdata/golden_output/legacy/com.vendor.service1/ld.config.txt
new file mode 100644 (file)
index 0000000..5366a11
--- /dev/null
@@ -0,0 +1,144 @@
+dir.com.vendor.service1 = /apex/com.vendor.service1/bin
+[com.vendor.service1]
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,com_android_os_statsd,system
+namespace.default.isolated = true
+namespace.default.search.paths = /apex/com.vendor.service1/${LIB}
+namespace.default.permitted.paths = /apex/com.vendor.service1/${LIB}
+namespace.default.permitted.paths += /system/${LIB}
+namespace.default.asan.search.paths = /apex/com.vendor.service1/${LIB}
+namespace.default.asan.permitted.paths = /apex/com.vendor.service1/${LIB}
+namespace.default.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.default.asan.permitted.paths += /system/${LIB}
+namespace.default.links = system
+namespace.default.link.system.shared_libs = libbinder_ndk.so
+namespace.default.link.system.shared_libs += libc.so
+namespace.default.link.system.shared_libs += libdl.so
+namespace.default.link.system.shared_libs += liblog.so
+namespace.default.link.system.shared_libs += libm.so
+namespace.default.link.system.shared_libs += libc.so
+namespace.default.link.system.shared_libs += libdl.so
+namespace.default.link.system.shared_libs += libdl_android.so
+namespace.default.link.system.shared_libs += libm.so
+namespace.default.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_adbd.isolated = true
+namespace.com_android_adbd.search.paths = /apex/com.android.adbd/${LIB}
+namespace.com_android_adbd.permitted.paths = /apex/com.android.adbd/${LIB}
+namespace.com_android_adbd.permitted.paths += /system/${LIB}
+namespace.com_android_adbd.asan.search.paths = /apex/com.android.adbd/${LIB}
+namespace.com_android_adbd.asan.permitted.paths = /apex/com.android.adbd/${LIB}
+namespace.com_android_adbd.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.com_android_adbd.asan.permitted.paths += /system/${LIB}
+namespace.com_android_adbd.links = system
+namespace.com_android_adbd.link.system.shared_libs = libadbd_auth.so
+namespace.com_android_adbd.link.system.shared_libs += libc.so
+namespace.com_android_adbd.link.system.shared_libs += libdl.so
+namespace.com_android_adbd.link.system.shared_libs += liblog.so
+namespace.com_android_adbd.link.system.shared_libs += libm.so
+namespace.com_android_adbd.link.system.shared_libs += libc.so
+namespace.com_android_adbd.link.system.shared_libs += libdl.so
+namespace.com_android_adbd.link.system.shared_libs += libdl_android.so
+namespace.com_android_adbd.link.system.shared_libs += libm.so
+namespace.com_android_adbd.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_art.isolated = true
+namespace.com_android_art.visible = true
+namespace.com_android_art.search.paths = /apex/com.android.art/${LIB}
+namespace.com_android_art.permitted.paths = /apex/com.android.art/${LIB}
+namespace.com_android_art.permitted.paths += /system/${LIB}
+namespace.com_android_art.permitted.paths += /data
+namespace.com_android_art.permitted.paths += /system/framework
+namespace.com_android_art.permitted.paths += /apex/com.android.art/javalib
+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 += /data/asan/system/${LIB}
+namespace.com_android_art.asan.permitted.paths += /system/${LIB}
+namespace.com_android_art.asan.permitted.paths += /data/asan/data
+namespace.com_android_art.asan.permitted.paths += /data
+namespace.com_android_art.asan.permitted.paths += /data/asan/system/framework
+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_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 += /data/asan/system/${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 += libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += libdl_android.so
+namespace.com_android_i18n.link.system.shared_libs += libm.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}
+namespace.com_android_neuralnetworks.permitted.paths += /system/${LIB}
+namespace.com_android_neuralnetworks.asan.search.paths = /apex/com.android.neuralnetworks/${LIB}
+namespace.com_android_neuralnetworks.asan.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
+namespace.com_android_neuralnetworks.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.com_android_neuralnetworks.asan.permitted.paths += /system/${LIB}
+namespace.com_android_neuralnetworks.links = system
+namespace.com_android_neuralnetworks.link.system.shared_libs = libc.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libcgrouprc.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libdl.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += liblog.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libm.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libnativewindow.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libneuralnetworks_packageinfo.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libvndksupport.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libc.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libdl.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libdl_android.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libm.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
+namespace.com_android_os_statsd.isolated = true
+namespace.com_android_os_statsd.search.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.permitted.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.permitted.paths += /system/${LIB}
+namespace.com_android_os_statsd.asan.search.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths += /system/${LIB}
+namespace.com_android_os_statsd.links = system,com_android_art
+namespace.com_android_os_statsd.link.system.shared_libs = libbinder_ndk.so
+namespace.com_android_os_statsd.link.system.shared_libs += libc.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl.so
+namespace.com_android_os_statsd.link.system.shared_libs += libincident.so
+namespace.com_android_os_statsd.link.system.shared_libs += liblog.so
+namespace.com_android_os_statsd.link.system.shared_libs += libm.so
+namespace.com_android_os_statsd.link.system.shared_libs += libc.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl_android.so
+namespace.com_android_os_statsd.link.system.shared_libs += libm.so
+namespace.com_android_os_statsd.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
+namespace.com_android_os_statsd.link.com_android_art.shared_libs = libnativehelper.so
+namespace.system.isolated = true
+namespace.system.visible = true
+namespace.system.search.paths = /system/${LIB}
+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_i18n,com_android_art,com_android_os_statsd
+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_os_statsd.shared_libs = libstatspull.so
+namespace.system.link.com_android_os_statsd.shared_libs += libstatssocket.so
diff --git a/testdata/golden_output/product-enabled/com.vendor.service1/ld.config.txt b/testdata/golden_output/product-enabled/com.vendor.service1/ld.config.txt
new file mode 100644 (file)
index 0000000..5366a11
--- /dev/null
@@ -0,0 +1,144 @@
+dir.com.vendor.service1 = /apex/com.vendor.service1/bin
+[com.vendor.service1]
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,com_android_os_statsd,system
+namespace.default.isolated = true
+namespace.default.search.paths = /apex/com.vendor.service1/${LIB}
+namespace.default.permitted.paths = /apex/com.vendor.service1/${LIB}
+namespace.default.permitted.paths += /system/${LIB}
+namespace.default.asan.search.paths = /apex/com.vendor.service1/${LIB}
+namespace.default.asan.permitted.paths = /apex/com.vendor.service1/${LIB}
+namespace.default.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.default.asan.permitted.paths += /system/${LIB}
+namespace.default.links = system
+namespace.default.link.system.shared_libs = libbinder_ndk.so
+namespace.default.link.system.shared_libs += libc.so
+namespace.default.link.system.shared_libs += libdl.so
+namespace.default.link.system.shared_libs += liblog.so
+namespace.default.link.system.shared_libs += libm.so
+namespace.default.link.system.shared_libs += libc.so
+namespace.default.link.system.shared_libs += libdl.so
+namespace.default.link.system.shared_libs += libdl_android.so
+namespace.default.link.system.shared_libs += libm.so
+namespace.default.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_adbd.isolated = true
+namespace.com_android_adbd.search.paths = /apex/com.android.adbd/${LIB}
+namespace.com_android_adbd.permitted.paths = /apex/com.android.adbd/${LIB}
+namespace.com_android_adbd.permitted.paths += /system/${LIB}
+namespace.com_android_adbd.asan.search.paths = /apex/com.android.adbd/${LIB}
+namespace.com_android_adbd.asan.permitted.paths = /apex/com.android.adbd/${LIB}
+namespace.com_android_adbd.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.com_android_adbd.asan.permitted.paths += /system/${LIB}
+namespace.com_android_adbd.links = system
+namespace.com_android_adbd.link.system.shared_libs = libadbd_auth.so
+namespace.com_android_adbd.link.system.shared_libs += libc.so
+namespace.com_android_adbd.link.system.shared_libs += libdl.so
+namespace.com_android_adbd.link.system.shared_libs += liblog.so
+namespace.com_android_adbd.link.system.shared_libs += libm.so
+namespace.com_android_adbd.link.system.shared_libs += libc.so
+namespace.com_android_adbd.link.system.shared_libs += libdl.so
+namespace.com_android_adbd.link.system.shared_libs += libdl_android.so
+namespace.com_android_adbd.link.system.shared_libs += libm.so
+namespace.com_android_adbd.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_art.isolated = true
+namespace.com_android_art.visible = true
+namespace.com_android_art.search.paths = /apex/com.android.art/${LIB}
+namespace.com_android_art.permitted.paths = /apex/com.android.art/${LIB}
+namespace.com_android_art.permitted.paths += /system/${LIB}
+namespace.com_android_art.permitted.paths += /data
+namespace.com_android_art.permitted.paths += /system/framework
+namespace.com_android_art.permitted.paths += /apex/com.android.art/javalib
+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 += /data/asan/system/${LIB}
+namespace.com_android_art.asan.permitted.paths += /system/${LIB}
+namespace.com_android_art.asan.permitted.paths += /data/asan/data
+namespace.com_android_art.asan.permitted.paths += /data
+namespace.com_android_art.asan.permitted.paths += /data/asan/system/framework
+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_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 += /data/asan/system/${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 += libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += libdl_android.so
+namespace.com_android_i18n.link.system.shared_libs += libm.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}
+namespace.com_android_neuralnetworks.permitted.paths += /system/${LIB}
+namespace.com_android_neuralnetworks.asan.search.paths = /apex/com.android.neuralnetworks/${LIB}
+namespace.com_android_neuralnetworks.asan.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
+namespace.com_android_neuralnetworks.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.com_android_neuralnetworks.asan.permitted.paths += /system/${LIB}
+namespace.com_android_neuralnetworks.links = system
+namespace.com_android_neuralnetworks.link.system.shared_libs = libc.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libcgrouprc.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libdl.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += liblog.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libm.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libnativewindow.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libneuralnetworks_packageinfo.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libvndksupport.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libc.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libdl.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libdl_android.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libm.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
+namespace.com_android_os_statsd.isolated = true
+namespace.com_android_os_statsd.search.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.permitted.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.permitted.paths += /system/${LIB}
+namespace.com_android_os_statsd.asan.search.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths += /system/${LIB}
+namespace.com_android_os_statsd.links = system,com_android_art
+namespace.com_android_os_statsd.link.system.shared_libs = libbinder_ndk.so
+namespace.com_android_os_statsd.link.system.shared_libs += libc.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl.so
+namespace.com_android_os_statsd.link.system.shared_libs += libincident.so
+namespace.com_android_os_statsd.link.system.shared_libs += liblog.so
+namespace.com_android_os_statsd.link.system.shared_libs += libm.so
+namespace.com_android_os_statsd.link.system.shared_libs += libc.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl_android.so
+namespace.com_android_os_statsd.link.system.shared_libs += libm.so
+namespace.com_android_os_statsd.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
+namespace.com_android_os_statsd.link.com_android_art.shared_libs = libnativehelper.so
+namespace.system.isolated = true
+namespace.system.visible = true
+namespace.system.search.paths = /system/${LIB}
+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_i18n,com_android_art,com_android_os_statsd
+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_os_statsd.shared_libs = libstatspull.so
+namespace.system.link.com_android_os_statsd.shared_libs += libstatssocket.so
diff --git a/testdata/golden_output/stage2/com.vendor.service1/ld.config.txt b/testdata/golden_output/stage2/com.vendor.service1/ld.config.txt
new file mode 100644 (file)
index 0000000..5366a11
--- /dev/null
@@ -0,0 +1,144 @@
+dir.com.vendor.service1 = /apex/com.vendor.service1/bin
+[com.vendor.service1]
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_neuralnetworks,com_android_os_statsd,system
+namespace.default.isolated = true
+namespace.default.search.paths = /apex/com.vendor.service1/${LIB}
+namespace.default.permitted.paths = /apex/com.vendor.service1/${LIB}
+namespace.default.permitted.paths += /system/${LIB}
+namespace.default.asan.search.paths = /apex/com.vendor.service1/${LIB}
+namespace.default.asan.permitted.paths = /apex/com.vendor.service1/${LIB}
+namespace.default.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.default.asan.permitted.paths += /system/${LIB}
+namespace.default.links = system
+namespace.default.link.system.shared_libs = libbinder_ndk.so
+namespace.default.link.system.shared_libs += libc.so
+namespace.default.link.system.shared_libs += libdl.so
+namespace.default.link.system.shared_libs += liblog.so
+namespace.default.link.system.shared_libs += libm.so
+namespace.default.link.system.shared_libs += libc.so
+namespace.default.link.system.shared_libs += libdl.so
+namespace.default.link.system.shared_libs += libdl_android.so
+namespace.default.link.system.shared_libs += libm.so
+namespace.default.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_adbd.isolated = true
+namespace.com_android_adbd.search.paths = /apex/com.android.adbd/${LIB}
+namespace.com_android_adbd.permitted.paths = /apex/com.android.adbd/${LIB}
+namespace.com_android_adbd.permitted.paths += /system/${LIB}
+namespace.com_android_adbd.asan.search.paths = /apex/com.android.adbd/${LIB}
+namespace.com_android_adbd.asan.permitted.paths = /apex/com.android.adbd/${LIB}
+namespace.com_android_adbd.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.com_android_adbd.asan.permitted.paths += /system/${LIB}
+namespace.com_android_adbd.links = system
+namespace.com_android_adbd.link.system.shared_libs = libadbd_auth.so
+namespace.com_android_adbd.link.system.shared_libs += libc.so
+namespace.com_android_adbd.link.system.shared_libs += libdl.so
+namespace.com_android_adbd.link.system.shared_libs += liblog.so
+namespace.com_android_adbd.link.system.shared_libs += libm.so
+namespace.com_android_adbd.link.system.shared_libs += libc.so
+namespace.com_android_adbd.link.system.shared_libs += libdl.so
+namespace.com_android_adbd.link.system.shared_libs += libdl_android.so
+namespace.com_android_adbd.link.system.shared_libs += libm.so
+namespace.com_android_adbd.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_art.isolated = true
+namespace.com_android_art.visible = true
+namespace.com_android_art.search.paths = /apex/com.android.art/${LIB}
+namespace.com_android_art.permitted.paths = /apex/com.android.art/${LIB}
+namespace.com_android_art.permitted.paths += /system/${LIB}
+namespace.com_android_art.permitted.paths += /data
+namespace.com_android_art.permitted.paths += /system/framework
+namespace.com_android_art.permitted.paths += /apex/com.android.art/javalib
+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 += /data/asan/system/${LIB}
+namespace.com_android_art.asan.permitted.paths += /system/${LIB}
+namespace.com_android_art.asan.permitted.paths += /data/asan/data
+namespace.com_android_art.asan.permitted.paths += /data
+namespace.com_android_art.asan.permitted.paths += /data/asan/system/framework
+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_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 += /data/asan/system/${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 += libc.so
+namespace.com_android_i18n.link.system.shared_libs += libdl.so
+namespace.com_android_i18n.link.system.shared_libs += libdl_android.so
+namespace.com_android_i18n.link.system.shared_libs += libm.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}
+namespace.com_android_neuralnetworks.permitted.paths += /system/${LIB}
+namespace.com_android_neuralnetworks.asan.search.paths = /apex/com.android.neuralnetworks/${LIB}
+namespace.com_android_neuralnetworks.asan.permitted.paths = /apex/com.android.neuralnetworks/${LIB}
+namespace.com_android_neuralnetworks.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.com_android_neuralnetworks.asan.permitted.paths += /system/${LIB}
+namespace.com_android_neuralnetworks.links = system
+namespace.com_android_neuralnetworks.link.system.shared_libs = libc.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libcgrouprc.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libdl.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += liblog.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libm.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libnativewindow.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libneuralnetworks_packageinfo.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libvndksupport.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libc.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libdl.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libdl_android.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libm.so
+namespace.com_android_neuralnetworks.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
+namespace.com_android_os_statsd.isolated = true
+namespace.com_android_os_statsd.search.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.permitted.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.permitted.paths += /system/${LIB}
+namespace.com_android_os_statsd.asan.search.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths += /system/${LIB}
+namespace.com_android_os_statsd.links = system,com_android_art
+namespace.com_android_os_statsd.link.system.shared_libs = libbinder_ndk.so
+namespace.com_android_os_statsd.link.system.shared_libs += libc.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl.so
+namespace.com_android_os_statsd.link.system.shared_libs += libincident.so
+namespace.com_android_os_statsd.link.system.shared_libs += liblog.so
+namespace.com_android_os_statsd.link.system.shared_libs += libm.so
+namespace.com_android_os_statsd.link.system.shared_libs += libc.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl_android.so
+namespace.com_android_os_statsd.link.system.shared_libs += libm.so
+namespace.com_android_os_statsd.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
+namespace.com_android_os_statsd.link.com_android_art.shared_libs = libnativehelper.so
+namespace.system.isolated = true
+namespace.system.visible = true
+namespace.system.search.paths = /system/${LIB}
+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_i18n,com_android_art,com_android_os_statsd
+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_os_statsd.shared_libs = libstatspull.so
+namespace.system.link.com_android_os_statsd.shared_libs += libstatssocket.so
diff --git a/testdata/root/vendor/apex/com.vendor.service1/apex_manifest.json b/testdata/root/vendor/apex/com.vendor.service1/apex_manifest.json
new file mode 100644 (file)
index 0000000..73c11fd
--- /dev/null
@@ -0,0 +1,11 @@
+{
+  "name": "com.vendor.service1",
+  "version": 1,
+  "requireNativeLibs": [
+    "libbinder_ndk.so",
+    "libc.so",
+    "libdl.so",
+    "liblog.so",
+    "libm.so"
+  ]
+}
\ No newline at end of file
diff --git a/testdata/root/vendor/apex/com.vendor.service1/bin/.keep b/testdata/root/vendor/apex/com.vendor.service1/bin/.keep
new file mode 100644 (file)
index 0000000..e69de29