Skip to content

Commit 24cb8ce

Browse files
committedOct 18, 2019
[dcd] Use patched ld.config.28.txt for bionic on hybris-16.0
1 parent cf257e0 commit 24cb8ce

File tree

2 files changed

+360
-3
lines changed

2 files changed

+360
-3
lines changed
 
+10-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
1-
#!/bin/env bash
1+
#!/bin/bash
22
# Actions to execute before starting DHI.
33

4-
# Nothing is required (for now) so we'll just exit :)
5-
exit 0
4+
# A patched bionic ld.config.28.txt is required for hybris-16.0
5+
if ! grep -q hybris /system/etc/ld.config.28.txt; then
6+
echo "using patched bionic ld.config.28.txt for hybris-16.0..."
7+
mount -o bind /usr/libexec/droid-hybris/system/etc/ld.config.28.txt /system/etc/ld.config.28.txt
8+
exit $?
9+
fi
10+
11+
# Nothing else is required (for now) so we'll just exit :)
12+
exit 0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,350 @@
1+
# Copyright (C) 2017 The Android Open Source Project
2+
#
3+
# Bionic loader config file.
4+
#
5+
6+
# Don't change the order here. The first pattern that matches with the
7+
# absolute path of an executable is selected.
8+
dir.system = /system/bin/
9+
dir.system = /system/xbin/
10+
dir.system = /system/product/bin/
11+
12+
dir.vendor = /odm/bin/
13+
dir.vendor = /vendor/bin/
14+
dir.vendor = /data/nativetest/odm
15+
dir.vendor = /data/nativetest64/odm
16+
dir.vendor = /data/benchmarktest/odm
17+
dir.vendor = /data/benchmarktest64/odm
18+
dir.vendor = /data/nativetest/vendor
19+
dir.vendor = /data/nativetest64/vendor
20+
dir.vendor = /data/benchmarktest/vendor
21+
dir.vendor = /data/benchmarktest64/vendor
22+
23+
dir.system = /data/nativetest
24+
dir.system = /data/nativetest64
25+
dir.system = /data/benchmarktest
26+
dir.system = /data/benchmarktest64
27+
28+
dir.postinstall = /postinstall
29+
30+
[system]
31+
additional.namespaces = sphal,vndk,rs
32+
33+
###############################################################################
34+
# "default" namespace
35+
#
36+
# Framework-side code runs in this namespace. Libs from /vendor partition
37+
# can't be loaded in this namespace.
38+
###############################################################################
39+
namespace.default.isolated = true
40+
41+
namespace.default.search.paths = /system/${LIB}
42+
namespace.default.search.paths += /system/product/${LIB}
43+
44+
# We can't have entire /system/${LIB} as permitted paths because doing so
45+
# makes it possible to load libs in /system/${LIB}/vndk* directories by
46+
# their absolute paths (e.g. dlopen("/system/lib/vndk/libbase.so");).
47+
# VNDK libs are built with previous versions of Android and thus must not be
48+
# loaded into this namespace where libs built with the current version of
49+
# Android are loaded. Mixing the two types of libs in the same namespace can
50+
# cause unexpected problem.
51+
namespace.default.permitted.paths = /system/${LIB}/drm
52+
namespace.default.permitted.paths += /system/${LIB}/extractors
53+
namespace.default.permitted.paths += /system/${LIB}/hw
54+
namespace.default.permitted.paths += /system/product/${LIB}
55+
# These are where odex files are located. libart has to be able to dlopen the files
56+
namespace.default.permitted.paths += /system/framework
57+
namespace.default.permitted.paths += /system/app
58+
namespace.default.permitted.paths += /system/priv-app
59+
namespace.default.permitted.paths += /vendor/framework
60+
namespace.default.permitted.paths += /vendor/app
61+
namespace.default.permitted.paths += /vendor/priv-app
62+
namespace.default.permitted.paths += /odm/framework
63+
namespace.default.permitted.paths += /odm/app
64+
namespace.default.permitted.paths += /odm/priv-app
65+
namespace.default.permitted.paths += /oem/app
66+
namespace.default.permitted.paths += /system/product/framework
67+
namespace.default.permitted.paths += /system/product/app
68+
namespace.default.permitted.paths += /system/product/priv-app
69+
namespace.default.permitted.paths += /data
70+
namespace.default.permitted.paths += /mnt/expand
71+
namespace.default.permitted.paths += /usr/libexec/droid-hybris/system/${LIB}
72+
73+
namespace.default.asan.search.paths = /data/asan/system/${LIB}
74+
namespace.default.asan.search.paths += /system/${LIB}
75+
namespace.default.asan.search.paths += /data/asan/product/${LIB}
76+
namespace.default.asan.search.paths += /product/${LIB}
77+
78+
namespace.default.asan.permitted.paths = /data
79+
namespace.default.asan.permitted.paths += /system/${LIB}/drm
80+
namespace.default.asan.permitted.paths += /system/${LIB}/extractors
81+
namespace.default.asan.permitted.paths += /system/${LIB}/hw
82+
namespace.default.asan.permitted.paths += /system/framework
83+
namespace.default.asan.permitted.paths += /system/app
84+
namespace.default.asan.permitted.paths += /system/priv-app
85+
namespace.default.asan.permitted.paths += /vendor/framework
86+
namespace.default.asan.permitted.paths += /vendor/app
87+
namespace.default.asan.permitted.paths += /vendor/priv-app
88+
namespace.default.asan.permitted.paths += /odm/framework
89+
namespace.default.asan.permitted.paths += /odm/app
90+
namespace.default.asan.permitted.paths += /odm/priv-app
91+
namespace.default.asan.permitted.paths += /oem/app
92+
namespace.default.asan.permitted.paths += /system/product/${LIB}
93+
namespace.default.asan.permitted.paths += /system/product/framework
94+
namespace.default.asan.permitted.paths += /system/product/app
95+
namespace.default.asan.permitted.paths += /system/product/priv-app
96+
namespace.default.asan.permitted.paths += /mnt/expand
97+
98+
###############################################################################
99+
# "sphal" namespace
100+
#
101+
# SP-HAL(Sameprocess-HAL)s are the only vendor libraries that are allowed to be
102+
# loaded inside system processes. libEGL_<chipset>.so, libGLESv2_<chipset>.so,
103+
# android.hardware.graphics.mapper@2.0-impl.so, etc are SP-HALs.
104+
#
105+
# This namespace is exclusivly for SP-HALs. When the framework tries to dynami-
106+
# cally load SP-HALs, android_dlopen_ext() is used to explicitly specifying
107+
# that they should be searched and loaded from this namespace.
108+
#
109+
# Note that there is no link from the default namespace to this namespace.
110+
###############################################################################
111+
namespace.sphal.isolated = true
112+
namespace.sphal.visible = true
113+
114+
namespace.sphal.search.paths = /odm/${LIB}
115+
namespace.sphal.search.paths += /vendor/${LIB}
116+
117+
namespace.sphal.permitted.paths = /odm/${LIB}
118+
namespace.sphal.permitted.paths += /vendor/${LIB}
119+
120+
namespace.sphal.asan.search.paths = /data/asan/odm/${LIB}
121+
namespace.sphal.asan.search.paths += /odm/${LIB}
122+
namespace.sphal.asan.search.paths += /data/asan/vendor/${LIB}
123+
namespace.sphal.asan.search.paths += /vendor/${LIB}
124+
125+
namespace.sphal.asan.permitted.paths = /data/asan/odm/${LIB}
126+
namespace.sphal.asan.permitted.paths += /odm/${LIB}
127+
namespace.sphal.asan.permitted.paths += /data/asan/vendor/${LIB}
128+
namespace.sphal.asan.permitted.paths += /vendor/${LIB}
129+
130+
# Once in this namespace, access to libraries in /system/lib is restricted. Only
131+
# libs listed here can be used.
132+
namespace.sphal.links = default,vndk,rs
133+
134+
namespace.sphal.link.default.shared_libs = libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libandroid_net.so:libc.so:libclang_rt.asan-aarch64-android.so:libclang_rt.asan-arm-android.so:libdl.so:liblog.so:libm.so:libmediandk.so:libnativewindow.so:libneuralnetworks.so:libsync.so:libvndksupport.so:libvulkan.so
135+
namespace.sphal.link.default.shared_libs += libclang_rt.asan-aarch64-android.so:libclang_rt.ubsan_standalone-aarch64-android.so:libclang_rt.tsan-aarch64-android.so:libclang_rt.asan-arm-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.tsan-arm-android.so
136+
137+
namespace.sphal.link.vndk.shared_libs = android.hardware.graphics.common@1.0.so:android.hardware.graphics.common@1.1.so:android.hardware.graphics.mapper@2.0.so:android.hardware.graphics.mapper@2.1.so:android.hardware.renderscript@1.0.so:android.hidl.memory.token@1.0.so:android.hidl.memory@1.0.so:android.hidl.memory@1.0-impl.so:libRSCpuRef.so:libRSDriver.so:libRS_internal.so:libbase.so:libbcinfo.so:libc++.so:libcutils.so:libhardware.so:libhidlbase.so:libhidlmemory.so:libhidltransport.so:libhwbinder.so:libhwbinder_noltopgo.so:libion.so:liblzma.so:libunwindstack.so:libutils.so:libutilscallstack.so:libz.so
138+
139+
# Renderscript gets separate namespace
140+
namespace.sphal.link.rs.shared_libs = libRS_internal.so
141+
142+
###############################################################################
143+
# "rs" namespace
144+
#
145+
# This namespace is exclusively for Renderscript internal libraries.
146+
# This namespace has slightly looser restriction than the vndk namespace because
147+
# of the genuine characteristics of Renderscript; /data is in the permitted path
148+
# to load the compiled *.so file and libmediandk.so can be used here.
149+
###############################################################################
150+
namespace.rs.isolated = true
151+
namespace.rs.visible = true
152+
153+
namespace.rs.search.paths = /odm/${LIB}/vndk-sp
154+
namespace.rs.search.paths += /vendor/${LIB}/vndk-sp
155+
namespace.rs.search.paths += /system/${LIB}/vndk-sp-28
156+
namespace.rs.search.paths += /odm/${LIB}
157+
namespace.rs.search.paths += /vendor/${LIB}
158+
159+
namespace.rs.permitted.paths = /odm/${LIB}
160+
namespace.rs.permitted.paths += /vendor/${LIB}
161+
namespace.rs.permitted.paths += /data
162+
163+
namespace.rs.asan.search.paths = /data/asan/odm/${LIB}/vndk-sp
164+
namespace.rs.asan.search.paths += /odm/${LIB}/vndk-sp
165+
namespace.rs.asan.search.paths += /data/asan/vendor/${LIB}/vndk-sp
166+
namespace.rs.asan.search.paths += /vendor/${LIB}/vndk-sp
167+
namespace.rs.asan.search.paths += /data/asan/system/${LIB}/vndk-sp-28
168+
namespace.rs.asan.search.paths += /system/${LIB}/vndk-sp-28
169+
namespace.rs.asan.search.paths += /data/asan/odm/${LIB}
170+
namespace.rs.asan.search.paths += /odm/${LIB}
171+
namespace.rs.asan.search.paths += /data/asan/vendor/${LIB}
172+
namespace.rs.asan.search.paths += /vendor/${LIB}
173+
174+
namespace.rs.asan.permitted.paths = /data/asan/odm/${LIB}
175+
namespace.rs.asan.permitted.paths += /odm/${LIB}
176+
namespace.rs.asan.permitted.paths += /data/asan/vendor/${LIB}
177+
namespace.rs.asan.permitted.paths += /vendor/${LIB}
178+
namespace.rs.asan.permitted.paths += /data
179+
180+
namespace.rs.links = default,vndk
181+
182+
namespace.rs.link.default.shared_libs = libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libandroid_net.so:libc.so:libclang_rt.asan-aarch64-android.so:libclang_rt.asan-arm-android.so:libdl.so:liblog.so:libm.so:libmediandk.so:libnativewindow.so:libneuralnetworks.so:libsync.so:libvndksupport.so:libvulkan.so
183+
namespace.rs.link.default.shared_libs += libclang_rt.asan-aarch64-android.so:libclang_rt.ubsan_standalone-aarch64-android.so:libclang_rt.tsan-aarch64-android.so:libclang_rt.asan-arm-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.tsan-arm-android.so
184+
# Private LLNDK libs (e.g. libft2.so) are exceptionally allowed to this
185+
# namespace because RS framework libs are using them.
186+
namespace.rs.link.default.shared_libs += libft2.so
187+
188+
namespace.rs.link.vndk.shared_libs = android.hardware.graphics.common@1.0.so:android.hardware.graphics.common@1.1.so:android.hardware.graphics.mapper@2.0.so:android.hardware.graphics.mapper@2.1.so:android.hardware.renderscript@1.0.so:android.hidl.memory.token@1.0.so:android.hidl.memory@1.0.so:android.hidl.memory@1.0-impl.so:libRSCpuRef.so:libRSDriver.so:libRS_internal.so:libbase.so:libbcinfo.so:libc++.so:libcutils.so:libhardware.so:libhidlbase.so:libhidlmemory.so:libhidltransport.so:libhwbinder.so:libhwbinder_noltopgo.so:libion.so:liblzma.so:libunwindstack.so:libutils.so:libutilscallstack.so:libz.so
189+
190+
###############################################################################
191+
# "vndk" namespace
192+
#
193+
# This namespace is exclusively for vndk-sp libs.
194+
###############################################################################
195+
namespace.vndk.isolated = true
196+
namespace.vndk.visible = true
197+
198+
namespace.vndk.search.paths = /odm/${LIB}/vndk-sp
199+
namespace.vndk.search.paths += /vendor/${LIB}/vndk-sp
200+
namespace.vndk.search.paths += /system/${LIB}/vndk-sp-28
201+
202+
namespace.vndk.permitted.paths = /odm/${LIB}/hw
203+
namespace.vndk.permitted.paths += /odm/${LIB}/egl
204+
namespace.vndk.permitted.paths += /vendor/${LIB}/hw
205+
namespace.vndk.permitted.paths += /vendor/${LIB}/egl
206+
# This is exceptionally required since android.hidl.memory@1.0-impl.so is here
207+
namespace.vndk.permitted.paths += /system/${LIB}/vndk-sp-28/hw
208+
209+
namespace.vndk.asan.search.paths = /data/asan/odm/${LIB}/vndk-sp
210+
namespace.vndk.asan.search.paths += /odm/${LIB}/vndk-sp
211+
namespace.vndk.asan.search.paths += /data/asan/vendor/${LIB}/vndk-sp
212+
namespace.vndk.asan.search.paths += /vendor/${LIB}/vndk-sp
213+
namespace.vndk.asan.search.paths += /data/asan/system/${LIB}/vndk-sp-28
214+
namespace.vndk.asan.search.paths += /system/${LIB}/vndk-sp-28
215+
216+
namespace.vndk.asan.permitted.paths = /data/asan/odm/${LIB}/hw
217+
namespace.vndk.asan.permitted.paths += /odm/${LIB}/hw
218+
namespace.vndk.asan.permitted.paths += /data/asan/odm/${LIB}/egl
219+
namespace.vndk.asan.permitted.paths += /odm/${LIB}/egl
220+
namespace.vndk.asan.permitted.paths += /data/asan/vendor/${LIB}/hw
221+
namespace.vndk.asan.permitted.paths += /vendor/${LIB}/hw
222+
namespace.vndk.asan.permitted.paths += /data/asan/vendor/${LIB}/egl
223+
namespace.vndk.asan.permitted.paths += /vendor/${LIB}/egl
224+
225+
namespace.vndk.asan.permitted.paths += /data/asan/system/${LIB}/vndk-sp-28/hw
226+
namespace.vndk.asan.permitted.paths += /system/${LIB}/vndk-sp-28/hw
227+
228+
# The "vndk" namespace links to "default" namespace for LLNDK libs and links to
229+
# "sphal" namespace for vendor libs. The ordering matters. The "default"
230+
# namespace has higher priority than the "sphal" namespace.
231+
namespace.vndk.links = default,sphal
232+
233+
# When these NDK libs are required inside this namespace, then it is redirected
234+
# to the default namespace. This is possible since their ABI is stable across
235+
# Android releases.
236+
namespace.vndk.link.default.shared_libs = libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libandroid_net.so:libc.so:libclang_rt.asan-aarch64-android.so:libclang_rt.asan-arm-android.so:libdl.so:liblog.so:libm.so:libmediandk.so:libnativewindow.so:libneuralnetworks.so:libsync.so:libvndksupport.so:libvulkan.so
237+
namespace.vndk.link.default.shared_libs += libclang_rt.asan-aarch64-android.so:libclang_rt.ubsan_standalone-aarch64-android.so:libclang_rt.tsan-aarch64-android.so:libclang_rt.asan-arm-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.tsan-arm-android.so
238+
239+
# Allow VNDK-SP extensions to use vendor libraries
240+
namespace.vndk.link.sphal.allow_all_shared_libs = true
241+
242+
###############################################################################
243+
# Namespace config for vendor processes. In O, no restriction is enforced for
244+
# them. However, in O-MR1, access to /system/${LIB} will not be allowed to
245+
# the default namespace. 'system' namespace will be added to give limited
246+
# (LL-NDK only) access.
247+
###############################################################################
248+
[vendor]
249+
additional.namespaces = system,vndk
250+
251+
###############################################################################
252+
# "default" namespace
253+
#
254+
# This is the default linker namespace for a vendor process (a process started
255+
# from /vendor/bin/*). The main executable and the libs under /vendor/lib[64]
256+
# are loaded directly into this namespace. However, other libs under the system
257+
# partition (VNDK and LLNDK libraries) are not loaded here but from the
258+
# separate namespace 'system'. The delegation to the system namespace is done
259+
# via the 'namespace.default.link.system.shared_libs' property below.
260+
###############################################################################
261+
namespace.default.isolated = true
262+
namespace.default.visible = true
263+
264+
namespace.default.search.paths = /odm/${LIB}
265+
namespace.default.search.paths += /vendor/${LIB}
266+
267+
namespace.default.permitted.paths = /odm
268+
namespace.default.permitted.paths += /vendor
269+
namespace.default.permitted.paths += /usr/libexec/droid-hybris/system/${LIB}
270+
271+
namespace.default.asan.search.paths = /data/asan/odm/${LIB}
272+
namespace.default.asan.search.paths += /odm/${LIB}
273+
namespace.default.asan.search.paths += /data/asan/vendor/${LIB}
274+
namespace.default.asan.search.paths += /vendor/${LIB}
275+
276+
namespace.default.asan.permitted.paths = /data/asan/odm
277+
namespace.default.asan.permitted.paths += /odm
278+
namespace.default.asan.permitted.paths += /data/asan/vendor
279+
namespace.default.asan.permitted.paths += /vendor
280+
281+
namespace.default.links = system,vndk
282+
namespace.default.link.system.shared_libs = libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libandroid_net.so:libc.so:libclang_rt.asan-aarch64-android.so:libclang_rt.asan-arm-android.so:libdl.so:liblog.so:libm.so:libmediandk.so:libnativewindow.so:libneuralnetworks.so:libsync.so:libvndksupport.so:libvulkan.so
283+
namespace.default.link.vndk.shared_libs = android.hardware.graphics.common@1.0.so:android.hardware.graphics.common@1.1.so:android.hardware.graphics.mapper@2.0.so:android.hardware.graphics.mapper@2.1.so:android.hardware.renderscript@1.0.so:android.hidl.memory.token@1.0.so:android.hidl.memory@1.0.so:android.hidl.memory@1.0-impl.so:libRSCpuRef.so:libRSDriver.so:libRS_internal.so:libbase.so:libbcinfo.so:libc++.so:libcutils.so:libhardware.so:libhidlbase.so:libhidlmemory.so:libhidltransport.so:libhwbinder.so:libhwbinder_noltopgo.so:libion.so:liblzma.so:libunwindstack.so:libutils.so:libutilscallstack.so:libz.so
284+
namespace.default.link.vndk.shared_libs += android.frameworks.displayservice@1.0.so:android.frameworks.schedulerservice@1.0.so:android.frameworks.sensorservice@1.0.so:android.frameworks.vr.composer@1.0.so:android.hardware.audio.common-util.so:android.hardware.audio.common@2.0.so:android.hardware.audio.common@2.0-util.so:android.hardware.audio.common@4.0.so:android.hardware.audio.common@4.0-util.so:android.hardware.audio.effect@2.0.so:android.hardware.audio.effect@4.0.so:android.hardware.audio@2.0.so:android.hardware.audio@4.0.so:android.hardware.authsecret@1.0.so:android.hardware.automotive.audiocontrol@1.0.so:android.hardware.automotive.evs@1.0.so:android.hardware.automotive.vehicle@2.0.so:android.hardware.biometrics.fingerprint@2.1.so:android.hardware.bluetooth.a2dp@1.0.so:android.hardware.bluetooth@1.0.so:android.hardware.boot@1.0.so:android.hardware.broadcastradio@1.0.so:android.hardware.broadcastradio@1.1.so:android.hardware.broadcastradio@2.0.so:android.hardware.camera.common@1.0.so:android.hardware.camera.device@1.0.so:android.hardware.camera.device@3.2.so:android.hardware.camera.device@3.3.so:android.hardware.camera.device@3.4.so:android.hardware.camera.metadata@3.2.so:android.hardware.camera.metadata@3.3.so:android.hardware.camera.provider@2.4.so:android.hardware.cas.native@1.0.so:android.hardware.cas@1.0.so:android.hardware.configstore-utils.so:android.hardware.configstore@1.0.so:android.hardware.configstore@1.1.so:android.hardware.confirmationui-support-lib.so:android.hardware.confirmationui@1.0.so:android.hardware.contexthub@1.0.so:android.hardware.drm@1.0.so:android.hardware.drm@1.1.so:android.hardware.dumpstate@1.0.so:android.hardware.gatekeeper@1.0.so:android.hardware.gnss@1.0.so:android.hardware.gnss@1.1.so:android.hardware.graphics.allocator@2.0.so:android.hardware.graphics.bufferqueue@1.0.so:android.hardware.graphics.composer@2.1.so:android.hardware.graphics.composer@2.2.so:android.hardware.health@1.0.so:android.hardware.health@2.0.so:android.hardware.ir@1.0.so:android.hardware.keymaster@3.0.so:android.hardware.keymaster@4.0.so:android.hardware.light@2.0.so:android.hardware.media.bufferpool@1.0.so:android.hardware.media.omx@1.0.so:android.hardware.media@1.0.so:android.hardware.memtrack@1.0.so:android.hardware.neuralnetworks@1.0.so:android.hardware.neuralnetworks@1.1.so:android.hardware.nfc@1.0.so:android.hardware.nfc@1.1.so:android.hardware.oemlock@1.0.so:android.hardware.power@1.0.so:android.hardware.power@1.1.so:android.hardware.power@1.2.so:android.hardware.radio.config@1.0.so:android.hardware.radio.deprecated@1.0.so:android.hardware.radio@1.0.so:android.hardware.radio@1.1.so:android.hardware.radio@1.2.so:android.hardware.secure_element@1.0.so:android.hardware.sensors@1.0.so:android.hardware.soundtrigger@2.0.so:android.hardware.soundtrigger@2.0-core.so:android.hardware.soundtrigger@2.1.so:android.hardware.tetheroffload.config@1.0.so:android.hardware.tetheroffload.control@1.0.so:android.hardware.thermal@1.0.so:android.hardware.thermal@1.1.so:android.hardware.tv.cec@1.0.so:android.hardware.tv.input@1.0.so:android.hardware.usb.gadget@1.0.so:android.hardware.usb@1.0.so:android.hardware.usb@1.1.so:android.hardware.vibrator@1.0.so:android.hardware.vibrator@1.1.so:android.hardware.vibrator@1.2.so:android.hardware.vr@1.0.so:android.hardware.weaver@1.0.so:android.hardware.wifi.hostapd@1.0.so:android.hardware.wifi.offload@1.0.so:android.hardware.wifi.supplicant@1.0.so:android.hardware.wifi.supplicant@1.1.so:android.hardware.wifi@1.0.so:android.hardware.wifi@1.1.so:android.hardware.wifi@1.2.so:android.hidl.allocator@1.0.so:android.hidl.memory.block@1.0.so:android.hidl.token@1.0.so:android.hidl.token@1.0-utils.so:android.system.net.netd@1.0.so:android.system.net.netd@1.1.so:android.system.wifi.keystore@1.0.so:libadf.so:libaudioroute.so:libaudioutils.so:libbinder.so:libcamera_metadata.so:libcap.so:libclang_rt.ubsan_standalone-aarch64-android.so:libclang_rt.ubsan_standalone-arm-android.so:libcn-cbor.so:libcrypto.so:libcrypto_utils.so:libcurl.so:libdiskconfig.so:libdumpstateutil.so:libevent.so:libexif.so:libexpat.so:libfmq.so:libgatekeeper.so:libhardware_legacy.so:libhidlallocatorutils.so:libhidlcache.so:libjpeg.so:libkeymaster_messages.so:libkeymaster_portable.so:libldacBT_abr.so:libldacBT_enc.so:liblz4.so:libmedia_helper.so:libmedia_omx.so:libmemtrack.so:libminijail.so:libmkbootimg_abi_check.so:libnetutils.so:libnl.so:libopus.so:libpagemap.so:libpcre2.so:libpiex.so:libpng.so:libpower.so:libprocinfo.so:libprotobuf-cpp-full.so:libprotobuf-cpp-lite.so:libpuresoftkeymasterdevice.so:libradio_metadata.so:libselinux.so:libsoftkeymasterdevice.so:libspeexresampler.so:libsqlite.so:libssl.so:libstagefright_amrnb_common.so:libstagefright_bufferqueue_helper.so:libstagefright_enc_common.so:libstagefright_flacdec.so:libstagefright_foundation.so:libstagefright_omx.so:libstagefright_omx_utils.so:libstagefright_soft_aacdec.so:libstagefright_soft_aacenc.so:libstagefright_soft_amrdec.so:libstagefright_soft_amrnbenc.so:libstagefright_soft_amrwbenc.so:libstagefright_soft_avcdec.so:libstagefright_soft_avcenc.so:libstagefright_soft_flacdec.so:libstagefright_soft_flacenc.so:libstagefright_soft_g711dec.so:libstagefright_soft_gsmdec.so:libstagefright_soft_hevcdec.so:libstagefright_soft_mp3dec.so:libstagefright_soft_mpeg2dec.so:libstagefright_soft_mpeg4dec.so:libstagefright_soft_mpeg4enc.so:libstagefright_soft_opusdec.so:libstagefright_soft_rawdec.so:libstagefright_soft_vorbisdec.so:libstagefright_soft_vpxdec.so:libstagefright_soft_vpxenc.so:libstagefright_xmlparser.so:libsuspend.so:libsysutils.so:libtinyalsa.so:libtinyxml2.so:libui.so:libusbhost.so:libvixl-arm.so:libvixl-arm64.so:libvorbisidec.so:libwifi-system-iface.so:libxml2.so:libyuv.so:libziparchive.so
285+
286+
###############################################################################
287+
# "vndk" namespace
288+
#
289+
# This namespace is where VNDK and VNDK-SP libraries are loaded for
290+
# a vendor process.
291+
###############################################################################
292+
namespace.vndk.isolated = false
293+
294+
namespace.vndk.search.paths = /odm/${LIB}/vndk
295+
namespace.vndk.search.paths += /odm/${LIB}/vndk-sp
296+
namespace.vndk.search.paths += /vendor/${LIB}/vndk
297+
namespace.vndk.search.paths += /vendor/${LIB}/vndk-sp
298+
namespace.vndk.search.paths += /system/${LIB}/vndk-sp-28
299+
namespace.vndk.search.paths += /system/${LIB}/vndk-28
300+
301+
namespace.vndk.asan.search.paths = /data/asan/odm/${LIB}/vndk
302+
namespace.vndk.asan.search.paths += /odm/${LIB}/vndk
303+
namespace.vndk.asan.search.paths += /data/asan/odm/${LIB}/vndk-sp
304+
namespace.vndk.asan.search.paths += /odm/${LIB}/vndk-sp
305+
namespace.vndk.asan.search.paths += /data/asan/vendor/${LIB}/vndk
306+
namespace.vndk.asan.search.paths += /vendor/${LIB}/vndk
307+
namespace.vndk.asan.search.paths += /data/asan/vendor/${LIB}/vndk-sp
308+
namespace.vndk.asan.search.paths += /vendor/${LIB}/vndk-sp
309+
namespace.vndk.asan.search.paths += /data/asan/system/${LIB}/vndk-sp-28
310+
namespace.vndk.asan.search.paths += /system/${LIB}/vndk-sp-28
311+
namespace.vndk.asan.search.paths += /data/asan/system/${LIB}/vndk-28
312+
namespace.vndk.asan.search.paths += /system/${LIB}/vndk-28
313+
314+
# When these NDK libs are required inside this namespace, then it is redirected
315+
# to the system namespace. This is possible since their ABI is stable across
316+
# Android releases.
317+
namespace.vndk.links = system,default
318+
namespace.vndk.link.system.shared_libs = libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libandroid_net.so:libc.so:libclang_rt.asan-aarch64-android.so:libclang_rt.asan-arm-android.so:libdl.so:liblog.so:libm.so:libmediandk.so:libnativewindow.so:libneuralnetworks.so:libsync.so:libvndksupport.so:libvulkan.so
319+
namespace.vndk.link.system.shared_libs += libclang_rt.asan-aarch64-android.so:libclang_rt.ubsan_standalone-aarch64-android.so:libclang_rt.tsan-aarch64-android.so:libclang_rt.asan-arm-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.tsan-arm-android.so
320+
321+
namespace.vndk.link.default.allow_all_shared_libs = true
322+
323+
###############################################################################
324+
# "system" namespace
325+
#
326+
# This namespace is where system libs (VNDK and LLNDK libs) are loaded for
327+
# a vendor process.
328+
###############################################################################
329+
namespace.system.isolated = false
330+
331+
namespace.system.search.paths = /system/${LIB}
332+
namespace.system.search.paths += /system/product/${LIB}
333+
334+
namespace.system.asan.search.paths = /data/asan/system/${LIB}
335+
namespace.system.asan.search.paths += /system/${LIB}
336+
namespace.system.asan.search.paths += /data/asan/product/${LIB}
337+
namespace.system.asan.search.paths += /product/${LIB}
338+
339+
###############################################################################
340+
# Namespace config for binaries under /postinstall.
341+
# Only one default namespace is defined and it has no directories other than
342+
# /system/lib in the search paths. This is because linker calls realpath on the
343+
# search paths and this causes selinux denial if the paths (/vendor, /odm) are
344+
# not allowed to the poinstall binaries. There is no reason to allow the
345+
# binaries to access the paths.
346+
###############################################################################
347+
[postinstall]
348+
namespace.default.isolated = false
349+
namespace.default.search.paths = /system/${LIB}
350+
namespace.default.search.paths += /system/product/${LIB}

0 commit comments

Comments
 (0)
Please sign in to comment.