Commit graph

252 commits

Author SHA1 Message Date
Martin Stjernholm
ba01a4cc5b Merge changes from topic "runtime-ld-configs" am: d35c4ccc40 am: 00f2f79179
am: 432c4cd11f

Change-Id: Ia1a199a51a601e38180f44b18842b79b348d5bab
2019-01-23 10:00:01 -08:00
Martin Stjernholm
d35c4ccc40 Merge changes from topic "runtime-ld-configs"
* changes:
  Make libdexfile_external.so accessible from binaries and libraries in /system.
  The runtime namespace needs to be visible since libopenjdk is loaded through dlopen().
2019-01-23 17:03:12 +00:00
Martin Stjernholm
c02464ced9 Make libdexfile_external.so accessible from binaries and libraries in /system.
There are dependencies on libdexfile_external from some central libraries
that are widely used (b/123186083).

One example is vendor/bin/hw/android.hardware.media.omx@1.0-service, which
requries the link from "system" to "runtime" in the [vendor] section.

The direct dependants are libunwindstack and simpleperf, so it's enough to
link from namespaces containing /system/{lib,lib64,bin}.

Test: Flash and boot
Test: Flash and boot with Runtime APEX enabled (http://r.android.com/q/topic:art-move-libs-to-runtime-apex)
Bug: 123186083
Bug: 113373927
Change-Id: I081aa7392c875202acdaf1185c2ff28e17ac7e76
2019-01-23 15:45:59 +00:00
Nicolas Geoffray
119e95b3b6 Merge "Conscrypt should only link against bionic." am: 1cab2c6bec am: 31e937429c
am: 06710823aa

Change-Id: Ic884d79df46b625e78f1b0bda03a368322bcef50
2019-01-23 01:30:49 -08:00
Martin Stjernholm
1fc8a55ba7 The runtime namespace needs to be visible since libopenjdk is loaded through dlopen().
Test: Flash and boot
Test: Flash and boot with Runtime APEX enabled (http://r.android.com/q/topic:art-move-libs-to-runtime-apex)
Bug: 113373927

Change-Id: I555ea988f56d1ee8e7488997a923207de044630f
2019-01-22 18:32:09 +00:00
Nicolas Geoffray
88bdf80d17 Conscrypt should only link against bionic.
Also remove useless code in native_loader.cpp

Test: m
Change-Id: Id176256cc36fa32d3f722e1443429cb9fbec05f2
2019-01-22 15:32:23 +00:00
Nicolas Geoffray
abc1c8b905 Merge "Revert "Revert "Introduce conscrypt linker namespace.""" am: 4d30819263 am: af8e980ed1
am: fd6a05085c

Change-Id: Ie935c28c91dd88fc99b04fc556d2fcba71246fbd
2019-01-22 06:43:47 -08:00
Nicolas Geoffray
56bbf65ecf Merge "Add 'media' namespace in ld.config.txt" am: 7fa20386c3 am: f495d92287
am: bc60897aec

Change-Id: I9714df74f50dc6ebe72b3cc564ef7d2de41577e0
2019-01-22 01:34:15 -08:00
Nicolas Geoffray
890e3bf4e7 Revert "Revert "Introduce conscrypt linker namespace.""
This reverts commit 5701a47685.

Bug: 123185917
Test: CtsJdwpTestCases
Test: android.signature.cts.api.killswitch_debug_class

Reason for revert: Fixed CtsJdwpTestCases and KillSwitchTest.

Change-Id: I6a074038a4e974875d68ca6a371f6a87ad48bce9
2019-01-22 09:15:22 +00:00
Dongwon Kang
c19263bcd0 Add 'media' namespace in ld.config.txt
Test: build & boot & atest MediaPlayer2Test
Bug: 112766913, Bug: 123185917
Change-Id: I6bccc5d767c108af5e71ad5cf64a1d4d48227761
2019-01-21 11:23:04 -08:00
Nicolas Geoffray
97f0c48712 Merge "Revert "Introduce conscrypt linker namespace."" am: e606e00042 am: 3326da5bb7
am: 9ea6ac833b

Change-Id: I50c9696c6049a4183da388dd659fe87e88982a4d
2019-01-21 09:44:38 -08:00
Nicolas Geoffray
5701a47685 Revert "Introduce conscrypt linker namespace."
This reverts commit 67a09e5791.
Exempt-From-Owner-Approval: Fixes P0 failures.

Bug: 123185917


Reason for revert: media namespace needs to be introduced.

Change-Id: I0c28798a3143c1e627278c3a908207e670171416
2019-01-21 17:23:31 +00:00
Nicolas Geoffray
95cb5d8303 Merge "Introduce conscrypt linker namespace." am: 8922048185 am: 70df103b96
am: a3370d6bd4

Change-Id: I87d60938dc7c32865a6ea8aad4dd3514450e14c5
2019-01-21 04:21:41 -08:00
Nicolas Geoffray
67a09e5791 Introduce conscrypt linker namespace.
And have the linker translate a java library path from an apex
to a linker namespace.

Bug: 122874359
Test: m, boots, gtest, run-test, CtsJdwpTests
Change-Id: I216c3509c45589d28acdac068aec53877aeb104a
Exempt-From-Owner-Approval: Carrying Jiyong's +2
2019-01-21 12:05:13 +00:00
Jiyong Park
bd653fa045 Bionic libs are located at /system/lib am: 3fa8415b37 am: 1c4851f223
am: 556a4a7d60

Change-Id: Ibefcda2ceb31a1707af8faf4302d0a84015e5229
2019-01-11 09:53:48 -08:00
Jiyong Park
3fa8415b37 Bionic libs are located at /system/lib
Bionic libs, regardless of whether they are bootstrap ones or from the
runtime APEX, are available via /system/lib. Since /system/lib is in the
search paths of the default(platform) namespace, there is no need to
list the bionic libs to the namespace link to the runtime namespace.

Bug: 120266448
Test: m; device boots
Test: atest CtsJniTestCases CtsCompilationTestCases CtsBionicTestCases
all passing except for following tests that are also failing at ToT
dl#exec_linker
dl#exec_linker_load_from_zip
dl#exec_linker_load_self
dl#exec_linker_load_file

Change-Id: Ib67acd4f384b2f0e70b5fe8ec6b45a5506367223
2019-01-11 15:17:04 +09:00
Logan Chien
b5d6b3494a Merge "Fix runtime namespace links for vendor processes" am: c2aad281fc am: e1324405a4
am: 67b1d7d834

Change-Id: Iaedfcf926bf062af57955fd93c9746138dc13774
2019-01-06 21:42:00 -08:00
Logan Chien
c2aad281fc Merge "Fix runtime namespace links for vendor processes" 2019-01-07 05:19:49 +00:00
Logan Chien
c0bb441b15 Fix runtime namespace links for vendor processes
This commit removes the soname filter from the namespace fallback link
from `runtime` to `system` in the vendor process.  This fixes the
problem that vendor process might fail to load `libnetd_client.so`,
`libc_malloc_debug.so`, `libc_malloc_debug_leak.so`, and other libc
dependencies.

This commit also removes the namespace fallback link from `runtime` to
`default` in the vendor process.  According to the comments in [1], the
original intention was to allow the access to `/system/${LIB}` not
`/vendor/${LIB}`.  Furthermore, `com.android.runtime` suppose to work
without libraries from `/vendor/${LIB}`.

[1] https://android-review.googlesource.com/c/858456

Bug: 119867084
Bug: 122025516  # Motivation of this commit
Test: Executables under vendor partition are not blocked by
`libnetd_client.so` not found error.

Change-Id: I682baada9d755910832474bb3d8307cd49c21ece
2019-01-07 11:14:34 +08:00
Ryan Haining
9a0804475d Merge "Allow dlopen()ing libraries from the netd APEX on pasan build" am: 0c2d673fcc am: 20f1be47d3
am: 137d547e40

Change-Id: Ibc5647f852ff5793df36bb971bf40dd1128d6ad8
2018-12-28 13:43:59 -08:00
Ken Chen
30200f1e24 Allow dlopen()ing libraries from the netd APEX on pasan build
This is a workaround to allow us to use libnetd_resolv.so from
the resolver APEX before b/120661824 is fixed.

We cannot put the APEX into the search path due to b/120661824,
but we can put it into the permitted path,

Bug: b/122073006
Test: builds, boots
Test: system/netd/tests/runtests.sh
Change-Id: If6f13ba9dc249d019b820a7c37cf6d4cdd8d0a7d
2018-12-28 17:20:01 +08:00
Martin Stjernholm
e7268de040 Merge "Revert^2 "Linker namespace configuration for the Runtime APEX."" am: f679c58787 am: 587ebc4bfb
am: 26b91d0eb4

Change-Id: I9705f4a9d323ba8d0cd5485b2a253b3029a47677
2018-12-21 05:53:45 -08:00
Martin Stjernholm
e71d91e729 Revert^2 "Linker namespace configuration for the Runtime APEX."
This reverts commit a0d9f2fd6c.

Original change: Needs to support e.g. app_process in "default" ->
libnativehelper in "runtime" -> platform libs in "default" -> libc etc in "runtime".

Always make sure to switch namespaces when switching library paths between
/system and the APEX, so that internal library dependencies in both
locations are loaded from their own directory. E.g. libc++ and libbase live
in both places, and their dependents must always load the version they were
compiled with.

This CL also adds a temporary workaround to not break hwasan builds
(b/121038155).

Bug: 119867084
Bug: 113373927
Bug: 121038155
Change-Id: I58d09ed091dd82b2162c4a0b51555174d9322e0e
Test: Flash and reboot device
Test: Remount / read-write, then on device: rm -f system/lib{,64}/lib{c,m,dl}.so; system/bin/dex2oat -h; stop && start
Test: mmma bionic/tests/ && adb root && adb shell rm -rf /data/nativetest\* && adb push out/target/product/taimen/data/nativetest* /data/ && adb shell /data/nativetest64/bionic-unit-tests/bionic-unit-tests && adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests
Test: cts-tradefed run commandAndExit cts-dev -m CtsJniTestCases
Test: cts-tradefed run commandAndExit cts-dev -m CtsCompilationTestCases
Test: cts-tradefed run commandAndExit cts-dev -m CtsBionicTestCases (8 failures remain unchanged by this CL)
Test: Patch internal; lunch taimen_hwasan-userdebug && m SANITIZE_TARGET=hwaddress && vendor/google/tools/flashall -w && adb shell /vendor/bin/sh -c ls
2018-12-21 11:15:52 +00:00
Lorenzo Colitti
3618926adc Merge "Allow dlopen()ing libraries from the netd APEX." am: 95a8d0d0c7 am: e93f1bba90
am: 934b08a013

Change-Id: Ief8c006c230faa1fd6758754a98ba1a39f4bc640
2018-12-19 06:44:16 -08:00
Lorenzo Colitti
472c900f6b Allow dlopen()ing libraries from the netd APEX.
This is a workaround to allow us to use libnetd_resolv.so from
the resolver APEX before b/120661824 is fixed.

We cannot put the APEX into the search path due to b/120661824,
but we can put it into the permitted path,

Test: builds, boots
Test: system/netd/tests/runtests.sh
Test: atest FrameworksNetTests android.net.cts.ConnectivityManagerTest
Change-Id: Ia68df860b7edc92180284f62736146e6029d7655
2018-12-19 16:52:06 +09:00
Andreas Gampe
434e7d6389 Merge "Revert "Linker namespace configuration for the Runtime APEX."" am: ece144857b am: 3138ddb181
am: 3438ac260a

Change-Id: I72166807c00e0d0719519516a484481989a872eb
2018-12-17 15:19:43 -08:00
Andreas Gampe
a0d9f2fd6c Revert "Linker namespace configuration for the Runtime APEX."
This reverts commit f1038896ad.

Reason for revert: Breaks CTS

Bug: 119867084
Bug: 113373927
Bug: 121149887
Change-Id: I44b3e708ff1c87520bcfb64f509bf3ae6871f7bc
2018-12-17 21:22:53 +00:00
Martin Stjernholm
581c9859ee Merge "Linker namespace configuration for the Runtime APEX." am: bd660496c8 am: 49b81b9332
am: ecc3a35e04

Change-Id: I304695b1444d704a759bdd1dd834c7b90d69392a
2018-12-12 08:07:52 -08:00
Martin Stjernholm
f1038896ad Linker namespace configuration for the Runtime APEX.
Needs to support e.g. app_process in "default" -> libnativehelper in
"runtime" -> platform libs in "default" -> libc etc in "runtime".

Always make sure to switch namespaces when switching library paths between
/system and the APEX, so that internal library dependencies in both
locations are loaded from their own directory. E.g. libc++ and libbase live
in both places, and their dependents must always load the version they were
compiled with.

Bug: 119867084,113373927
Test: Flash and reboot device
Test: Remount / read-write, then on device: rm -f system/lib{,64}/lib{c,m,dl}.so; system/bin/dex2oat -h; stop && start
Test: mmma bionic/tests/ && adb root && adb shell rm -rf /data/nativetest\* && adb push out/target/product/taimen/data/nativetest* /data/ && adb shell /data/nativetest64/bionic-unit-tests/bionic-unit-tests && adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests
Test: cts-tradefed run commandAndExit cts -m CtsJniTestCases
Change-Id: I6c4fc2f1abea1fb8851546e258ffaaa4ef6fe7d0
2018-12-12 11:44:07 +00:00
Roland Levillain
bf95ac9c7b Merge "Revert "Add Android Runtime APEX lib directories to the system linker configuration."" am: c400ced93d am: 1e08eabf7c
am: c3e04a86dc

Change-Id: Icb8d669f76fa702cc93216f8828f39641a24b613
2018-12-11 06:12:06 -08:00
Treehugger Robot
c400ced93d Merge "Revert "Add Android Runtime APEX lib directories to the system linker configuration."" 2018-12-11 13:41:10 +00:00
Roland Levillain
9b79db5ebf Revert "Add Android Runtime APEX lib directories to the system linker configuration."
This reverts commit 2f56b1fff8.

Reason for revert: Breaks bionic-unit-tests's dlfcn.dladdr_libc
and x86 CtsJniTestCases' JniStaticTest.test_linker_namespaces.

Bug: 113373927
Bug: 120661824
Change-Id: I9b34bcb240a42bf99c6d8b58db4b18a4f6d36961
2018-12-11 10:20:33 +00:00
Roland Levillain
5d0c8664b4 Merge "Add Android Runtime APEX lib directories to the system linker configuration." am: d768a0c13d am: 4bcae06f9b
am: 499bab62a6

Change-Id: Ibf3dfed292685475e04b33b59b76ae08042da2c3
2018-12-10 07:36:16 -08:00
Roland Levillain
d768a0c13d Merge "Add Android Runtime APEX lib directories to the system linker configuration." 2018-12-10 15:04:29 +00:00
Andreas Gampe
3269748028 Merge "Revert "Use apex/com.android.resolv/lib64/libned_resolv.so by default"" am: 40f96aff36 am: aac7fa53d4
am: 432a55e432

Change-Id: Ic2c03f96a0a19c361748404146544ea3e36d55dc
2018-12-07 20:51:49 -08:00
Andreas Gampe
d831773ec6 Revert "Use apex/com.android.resolv/lib64/libned_resolv.so by default"
This reverts commit eb4384c2a0.

Reason for revert: Breaks tests

Bug: 119527674
Bug: 120661824
Change-Id: I2f452f25e7b4e070e766b84cdefdf1800244b150
Test: N/A
2018-12-07 21:46:06 +00:00
chenbruce
4980e769d3 Merge "Use apex/com.android.resolv/lib64/libned_resolv.so by default" am: 87e10ba280 am: 518bd1235c
am: 99c85bc053

Change-Id: Ibc074d4d5b8dc5efe51490d78dd498f163b75733
2018-12-06 23:27:54 -08:00
chenbruce
eb4384c2a0 Use apex/com.android.resolv/lib64/libned_resolv.so by default
netd will use apex/com.android.resolv/lib64/libned_resolv.so to replace
system/lib64/libned_resolv.so.
note:Without disabling selinux, we setenv LD_LIBRARY_PATH in netd.rc but
netd couldn't use libnetd_resolv.so under com.android.resolv/lib64 because
LD_LIBRARY_PATH is ignored when AT_SECURE is on. Directly add path to the
libnetd_resolv apex to /system/etc/ld.config.txt for temporarily.

Bug: 119527674
Test: make; flash; lsof -p $(pidof netd)
Change-Id: I011d2da625151bf43c10497bb84c15f3d8e6ad33
2018-12-05 17:25:24 +08:00
changho.shin
bc511b421f Merge "Support product partition for non-treblized devices" am: 79bd67bb2f am: 7a6df0832a
am: b1c845d003

Change-Id: I1c00c808f75ed9234f517a52288413673ed4e36b
2018-11-30 01:06:35 -08:00
changho.shin
715b1aab50 Support product partition for non-treblized devices
Non-treblized devices use ld.config.legacy.txt, which does not
support product partition, leading to access denial from/to product partition.
Declare directly /product since search paths are resolved in linker config.

Test: m -j with non-treblized device upgraded to P.
Change-Id: Ic142b807f5dbffdfa5c774b3df8d0903b9626b6a
2018-11-28 17:17:05 +09:00
Roland Levillain
2f56b1fff8 Add Android Runtime APEX lib directories to the system linker configuration.
Test: Device boot test with Android Runtime APEX.
Test: Device boot test without Android Runtime APEX.
Bug: 113373927
Change-Id: Iff32fcd79a667b07df839f4e6ef2cdb3cf70e9d3
2018-11-21 19:41:59 +00:00
Anton Hansson
f5986284dc Merge "Add product_services support to ld.config.vndk_lite" am: cf7d0e85d4 am: 13eb788bdc
am: 8c10354e7d

Change-Id: Ia74881217e467e09d0b099b40c4af767e2f85780
2018-09-19 17:46:11 -07:00
Anton Hansson
123c8d261d Merge "Update ld config to use build-time determined paths." am: 70b3fdce20 am: 5933e83e1d
am: 554d01506c

Change-Id: Ibe52f311662013e3100cb1d10b227597ca9a1c1c
2018-09-19 17:43:15 -07:00
Anton Hansson
ece0a74691 Add product_services support to ld.config.vndk_lite
We're moving apps and their libs to product_services for older
devices too, so mimic the rules in the default ld.config related
to product_services.

Also fix a one-off disparity between /product and /product_services
in ld.config.txt.

Bug: 114804489
Test: m out/target/product/marlin/system/etc/ld.config.vndk_lite
Change-Id: I166275c035c85b4d69cff8e9d51af3d6d0ff4857
2018-09-19 02:53:33 +01:00
Anton Hansson
0244428c8e Update ld config to use build-time determined paths.
A few places had /product and /product_services hardcoded. Update
them to use values that get set at build time.

Bug: 114804489
Test: m out/target/product/marlin/system/etc/ld.config.vndk_lite.txt
Change-Id: Ie48dbb2453ae941c1b5ee57f092d12a5497d878f
2018-09-19 00:47:12 +01:00
Steven Moreland
dd8eee871b Add libbinder_ndk to public.libraries.*
Bug: 111445392
Test: atest android.binder.cts.NdkBinderTest
Change-Id: I8ccb1f74654dcb925cd3ac20042cbffd2f594bb9
Merged-In: I8ccb1f74654dcb925cd3ac20042cbffd2f594bb9
2018-09-17 20:05:27 +00:00
Steven Moreland
fbeb8e8c46 Add libbinder_ndk to public.libraries.*
Bug: 111445392
Test: atest android.binder.cts.NdkBinderTest
Change-Id: I8ccb1f74654dcb925cd3ac20042cbffd2f594bb9
(cherry picked from commit fd0dad6825c09b8cc043fd54f679f7782fbf2c26)
2018-09-17 13:04:51 -07:00
Yifan Hong
de39afd1e0 Merge "s/product-services/product_services/g" 2018-08-21 01:07:56 +00:00
Yifan Hong
98d8981cf2 Merge "s/product-services/product_services/g" 2018-08-20 23:18:54 +00:00
Dario Freni
ab5583b585 s/product-services/product_services/g
Attempting to reduce the number of different spellings we have for
"product services" partition in the codebase.

Bug: 112431447
Test: m
Change-Id: I1a87d7e040a8b1f91f973ac7d90d6360b5b54f71
Merged-In: I1a87d7e040a8b1f91f973ac7d90d6360b5b54f71
2018-08-20 17:46:42 +00:00