OSDN Git Service

android-x86/system-linkerconfig.git
3 years agoSkip reading apex-info-list when there's no apexes
Jooyung Han [Tue, 18 Aug 2020 07:35:31 +0000 (16:35 +0900)]
Skip reading apex-info-list when there's no apexes

linkerconfig may run even when there's no apexes activated. We need to
skip reading apex-info-list.xml then. Otherwise, it will emit an error
log when it is perfectly normal.

> E linkerconfig: Can't read /apex/apex-info-list.xml: No such file or directory

Bug: n/a
Test: device boots & see logs if there's an error
Change-Id: I8f6255de536618ad590ce18adf9b729e45c721df

3 years agoMerge "Add /vendor/lib/egl to sphal namespace"
Jason Macnak [Tue, 18 Aug 2020 02:10:38 +0000 (02:10 +0000)]
Merge "Add /vendor/lib/egl to sphal namespace"

3 years agoAdd /vendor/lib/egl to sphal namespace
Jason Macnak [Fri, 14 Aug 2020 17:36:16 +0000 (10:36 -0700)]
Add /vendor/lib/egl to sphal namespace

... to support having ANGLE as the native GL driver
which needs to dlopen libGLESv2. Without this change,
devices would have to create symlinks from libs in the
nested egl directory to the parent directory.

Bug: b/165022040
Test: launch Cuttlefish with ANGLE
Change-Id: Ib60bd8397fdf1f1ba52bbe1c249ae100c0c68e70

3 years agoMerge changes from topic "revert-1387130-revert-apex-info-list-XDFTNNKFQI"
Treehugger Robot [Sat, 15 Aug 2020 07:34:44 +0000 (07:34 +0000)]
Merge changes from topic "revert-1387130-revert-apex-info-list-XDFTNNKFQI"

* changes:
  Revert^2 "Fix "vndk" namespace for vendor apexes"
  Revert^2 "Read apex-info-file.xml to distinguish vendor apex"

3 years agoRevert^2 "Fix "vndk" namespace for vendor apexes"
Jooyung Han [Tue, 11 Aug 2020 08:56:29 +0000 (08:56 +0000)]
Revert^2 "Fix "vndk" namespace for vendor apexes"

51a44276496b47a2a682d6498a47d52b70cc40ee

Change-Id: Id608e1e02b3d466a72194049548bca1a7756dd1f

3 years agoRevert^2 "Read apex-info-file.xml to distinguish vendor apex"
Jooyung Han [Tue, 11 Aug 2020 08:56:29 +0000 (08:56 +0000)]
Revert^2 "Read apex-info-file.xml to distinguish vendor apex"

c7d600933296817cb4fbe611a25482567bd9cd44

Change-Id: Ic9b056b3726c6c385f9723a2fb5c5cc6609da3b3

3 years agoMake linkerconfig a static executable only on device.
Martin Stjernholm [Fri, 7 Aug 2020 18:00:55 +0000 (19:00 +0100)]
Make linkerconfig a static executable only on device.

Don't link libc statically on host, but everything else is still
static.

Test: `art/tools/buildbot-build.sh --target` on AOSP master
Test: `art/tools/buildbot-build.sh --target`
  on master-art with prebuilt linkerconfig binary.
Test: Flash & boot
Bug: 162819454
Change-Id: I78e5d2ed5f654ea7db11e227556ec29b06eb1349

3 years agoAdd :sphal, :vndksp for apex configuration
Jooyung Han [Tue, 28 Jul 2020 01:26:41 +0000 (10:26 +0900)]
Add :sphal, :vndksp for apex configuration

This removes hard-coded special-casing of com.android.media.swcodec
APEX.

swcodec APEX declares "requireNativeLibs" with ":sphal" so that
linkerconfig can add "sphal" and "vndk" namespaces for it. Note that
a link from sphal to vndk with shared_libs(VNDK-SP) is derived by
":vndksp" from "sphal" namespace.

Bug: n/a
Test: ./rundiff.sh
   => no significant changes
Test: build & device boots
Merged-In: Ib2c78cde05b745d6b1e2b06b88e40446c0ddd4f0
Change-Id: Ib2c78cde05b745d6b1e2b06b88e40446c0ddd4f0
(cherry picked from commit e70d72dda438ab1629e6df42cda917a8b69cbb01)

3 years agoMerge "Update codebase with static analysis result"
Treehugger Robot [Wed, 5 Aug 2020 05:15:47 +0000 (05:15 +0000)]
Merge "Update codebase with static analysis result"

3 years agoUpdate codebase with static analysis result
Kiyoung Kim [Mon, 3 Aug 2020 14:15:52 +0000 (23:15 +0900)]
Update codebase with static analysis result

There were some issues reported by code static analysis tool. This
change includes update from the result with applicable items.

Test: cf booted & atest passed
Change-Id: I7d8e4e6c8dc1fc5893ab1d2365eb64fce47db220
Merged-In: I7d8e4e6c8dc1fc5893ab1d2365eb64fce47db220

3 years agoRevert "Read apex-info-file.xml to distinguish vendor apex"
Jooyung Han [Tue, 4 Aug 2020 11:23:55 +0000 (20:23 +0900)]
Revert "Read apex-info-file.xml to distinguish vendor apex"

This reverts commit d32f7fa2697f38898c8c07459796bc823fa34666.

Reason: breaks master-art

Bug: 162819454
Test: m nothing
Change-Id: Ia658a473d5957f7ffef9851449559ce92961a991

3 years agoRevert "Fix "vndk" namespace for vendor apexes"
Jooyung Han [Tue, 4 Aug 2020 11:23:47 +0000 (20:23 +0900)]
Revert "Fix "vndk" namespace for vendor apexes"

This reverts commit 5e40c4c723c4582ca334d2a1e2ec2ad5dda3b078.

Reason: breaks master-art branch

Bug: n/a
Test: m nothing
Change-Id: Ic918465aa629045049ccd76b564e5e2c9cdf8761

3 years agoMerge changes from topic "vndk-apex-build"
Jooyung Han [Tue, 4 Aug 2020 03:11:49 +0000 (03:11 +0000)]
Merge changes from topic "vndk-apex-build"

* changes:
  Fix "vndk" namespace for vendor apexes
  Read apex-info-file.xml to distinguish vendor apex

3 years agoMerge "Mark vndk_in_system namespace as invisible"
Kiyoung Kim [Mon, 3 Aug 2020 03:57:46 +0000 (03:57 +0000)]
Merge "Mark vndk_in_system namespace as invisible"

3 years agoFix "vndk" namespace for vendor apexes
Jooyung Han [Wed, 29 Jul 2020 16:37:30 +0000 (01:37 +0900)]
Fix "vndk" namespace for vendor apexes

"vndk" namespace for non-system use cases (e.g. vendor section, vendor
apex, etc) should have /vndk as well as /vndk-sp to support VDNK
extensions.

In the following example, "vendor_hello" is a cc_library(vendor:true)
with dependencies to libbase/libc++/liblog, which is bundled in a vendor
apex "com.android.hello".

libbase/libc++(VNDK) are from VNDK APEX and liblog(LLNDK) are from
/system/lib.

$ adb shell ldd /apex/com.android.hello/bin/vendor_hello
        linux-gate.so.1 => [vdso] (0xea2b3000)
        libbase.so => /apex/com.android.vndk.vS/lib/libbase.so (0xe984b000)
        libc++.so => /apex/com.android.vndk.vS/lib/libc++.so (0xe9788000)
        liblog.so => /system/lib/liblog.so (0xe9f44000)
        libc++.so => /system/lib/libc++.so (0xe98c3000)
        libc.so => /apex/com.android.runtime/lib/bionic/libc.so (0xe99dd000)
        libm.so => /apex/com.android.runtime/lib/bionic/libm.so (0xe9881000)
        libdl.so => /apex/com.android.runtime/lib/bionic/libdl.so (0xe99ab000)

Bug: 159576928
Test: build a vendor apex with use_vndk_as_stable
      check the dependency of a binary in it
Change-Id: I04e9e72af34630e08d4828d4ff644b0ee2aa861b

3 years agoRead apex-info-file.xml to distinguish vendor apex
Jooyung Han [Wed, 29 Jul 2020 16:15:18 +0000 (01:15 +0900)]
Read apex-info-file.xml to distinguish vendor apex

/apex/apex-info-file.xml is the list of all apexes with preinstalled
path. By looking up original paths, we can figure out if an apex is
from /vendor or /system even if it is updated.

Bug: 159576928
Test: build & device boots
Change-Id: Ie32b10bfbdd9c1b6026c4b0fc93b57a2af6b5da5

3 years agovndk: add vendor/lib or product/lib to search_path
Jooyung Han [Fri, 31 Jul 2020 09:58:09 +0000 (18:58 +0900)]
vndk: add vendor/lib or product/lib to search_path

"vndk" namespace have vendor/lib/vndk first in search paths so that VNDK
extension libraries have higher proiorty than normal VNDK libs.
However, VNDK extensions are allowed to use vendor libraries
(/vendor/lib). This was enabled by linking "sphal" namespace.

It was a bit weird because sphal namespace links vndk and vndk links
sphal again.

Moreover, "vndk_product" namespace can't link to /product/lib. We could
have "product" namespace and link it from vndk_product.

But instead, we add /vendor/lib to the search paths of "vndk" namespace
and /product/lib to "vndk_product" namespace so that VNDK extensions use
libs from there.

Now we don't need to link sphal from vndk.

Bug: 162462078
Test: HelloActivityProduct loads libjni_product successfully.
Merged-In: I6c5d47239dae427194345e03522a726997389167
Change-Id: I6c5d47239dae427194345e03522a726997389167
(cherry picked from commit 87122ca998fdc6f6d404fbe0539221eb9d242ca2)

3 years agoMark vndk_in_system namespace as invisible
Kiyoung Kim [Fri, 31 Jul 2020 08:24:28 +0000 (17:24 +0900)]
Mark vndk_in_system namespace as invisible

vndk_in_system namespace is visible currently. However, this namespace
should be invisible as it exists within vendor section and contains
system library paths, so mark this as visible can cause disallowed
access from vendor binary to system libs. This change marks
vndk_in_system namespace as invisible.

Bug: 161076708
Test: Cuttlefish Go phone GTS test passed
Change-Id: If82cc9c1cc279125bed9977d1bcdc930e45880db

3 years agoCleanup for Android's inclusive language guidance
Luke Huang [Thu, 30 Jul 2020 06:05:33 +0000 (14:05 +0800)]
Cleanup for Android's inclusive language guidance

See https://source.android.com/setup/contribute/respectful-code
for reference.

Bug: 161896447
Test: atest

Change-Id: I3afbccdb8fee2a8aa89978c8f26ebca2d3216f05

4 years agoMake diff test as presubmit
Jooyung Han [Fri, 20 Mar 2020 09:20:23 +0000 (18:20 +0900)]
Make diff test as presubmit

so that changes to the output can be tracked.

Bug: 140599044
Test: atest --host linkerconfig_diff_test
Change-Id: I2055ae742d3f480dc1d74b95db0ee7b864794a71

4 years agoSupport ":vndk" to use vndk libs from vendor apex
Jooyung Han [Fri, 24 Jul 2020 08:20:40 +0000 (17:20 +0900)]
Support ":vndk" to use vndk libs from vendor apex

Vendor APEX can be configured to use VNDK libs from the outside of the
apex. The dependency to external VNDK is marked in apex_manifest's
"requireNativeLibs" field as ":vndk", which is a pseudo name of VNDK
libs.

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

4 years agoMerge "Add extra search path(/system_ext/lib)"
Jooyung Han [Mon, 27 Jul 2020 09:08:08 +0000 (09:08 +0000)]
Merge "Add extra search path(/system_ext/lib)"

4 years agoAdd extra search path(/system_ext/lib)
Jooyung Han [Mon, 27 Jul 2020 07:47:11 +0000 (16:47 +0900)]
Add extra search path(/system_ext/lib)

"system" namespace for apex binaries should list /system_ext/lib as well
as /system/lib because /system_ext/lib is also considered as "system".

Bug: 158435319
Test: ./rundiff.sh
Test: build & device boots
Change-Id: I6b131eb57da60eee8fb3fdbc21b0b7125758146f

4 years agoCreate isolated section under /data
Kiyoung Kim [Tue, 14 Jul 2020 06:28:55 +0000 (15:28 +0900)]
Create isolated section under /data

Some of the engineers are using /data for non-framework development, but
it is hard to use as /data shares section with /system, so many
libraries are linked with system one first. This changes creates a new
isolated section from subdirectory of /data so developers can run their
own executables with linked to their own libs first.

Bug: 160231064
Test: Checked from Cuttlefish that isolated section is created as expected
Change-Id: I047ee69b9ae7a4b01894c3a29efd4226ab47ce56

4 years agoCheck for treble devices before failing due to vndk-lite
Richard Fung [Thu, 25 Jun 2020 19:38:13 +0000 (12:38 -0700)]
Check for treble devices before failing due to vndk-lite

This fixes a bug where we fail if vndk-lite is enabled even though
treble isn't.

Bug: b/159485432
Test: m -j and manually test with bertha

Change-Id: I24f8daef20699529e0fc9573a02c83cf64f63313

4 years agoMerge "Add Vendor APEX to testdata"
Jooyung Han [Wed, 24 Jun 2020 02:28:33 +0000 (02:28 +0000)]
Merge "Add Vendor APEX to testdata"

4 years agoMerge "Fail when VNDK-Lite is enabled."
Kiyoung Kim [Wed, 24 Jun 2020 00:58:47 +0000 (00:58 +0000)]
Merge "Fail when VNDK-Lite is enabled."

4 years agoAdd Vendor APEX to testdata
Jooyung Han [Tue, 23 Jun 2020 13:15:47 +0000 (22:15 +0900)]
Add Vendor APEX to testdata

Linkerconfig doesn't care about Vendor APEXes yet.

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

4 years agoRefactor rundiff.sh to use prepare_root.sh
Jooyung Han [Tue, 23 Jun 2020 09:07:17 +0000 (18:07 +0900)]
Refactor rundiff.sh to use prepare_root.sh

prepare_root.sh activates apexes from /system, /product, etc and also
generates /apex/apex-info-list.xml

This is a preparation for linkerconfig to read /apex/apex-info-list.xml
which conveys the information about the original paths.

For example, linkerconfig will tell if an APEX is from /vendor or
/system.

Bug: 159576928
Test: ./rundiff.sh
Test: ./prepare_root.sh --in testdata/root --out testroot --all
      testroot now contains every apex and apex-info-list.xml as well
Change-Id: Ied38aa402a5aa1606318a5b139687e05fc041683

4 years agoFail when VNDK-Lite is enabled.
Kiyoung Kim [Tue, 23 Jun 2020 07:15:47 +0000 (16:15 +0900)]
Fail when VNDK-Lite is enabled.

To ensure generated linker configuration is not working with VNDK-Lite
vendor image, check if VNDK-Lite is enabled and fail if so.

Bug: 153944540
Test: m -j passed && Cuttlefish booted properly
Change-Id: I5dcee726e4d5b8fbfa6192c1e81e534b34073eb5

4 years agoDeprecate VNDK-Lite from linkerconfig
Kiyoung Kim [Tue, 23 Jun 2020 04:16:42 +0000 (13:16 +0900)]
Deprecate VNDK-Lite from linkerconfig

VNDK-Lite will no longer be supported from Android starting from S. As a
first step, remove VNDK Lite configuration from linkerconfig. This
change won't have any effect on Legacy and Treblelized devices.

Bug: 153944540
Test: Cuttlefish succeeded to boot
Test: Confirmed golden_output has changes only from VNDK-Lite.
Change-Id: I074fac0417a143b8aa25cd0056bc634c78ef7000

4 years agoUpdate test_data
Jooyung Han [Mon, 22 Jun 2020 07:37:16 +0000 (16:37 +0900)]
Update test_data

according to the change 0614dd02988b5879876c66642ecd08f6db6c95e7
"Add extra search paths from unrestricted section"

Bug: 158674810
Test: ./rundiff.sh
Change-Id: I3fad4cea4b8ea576264efb2043e131fd0f7c2b74

4 years agoMerge "Add extra search paths from unrestricted section"
Kiyoung Kim [Wed, 17 Jun 2020 02:16:29 +0000 (02:16 +0000)]
Merge "Add extra search paths from unrestricted section"

4 years agoAdd extra search paths from unrestricted section
Kiyoung Kim [Fri, 12 Jun 2020 10:15:05 +0000 (19:15 +0900)]
Add extra search paths from unrestricted section

Add extra search paths - system_ext/${LIB} and product/${LIB} - so *TS
tests can be executed with extra libraries from the partners

Bug: 158674810
Test: Cuttlefish boot succeeded
Change-Id: I37787a92df28c3713d607eaea6a031b2b9db0f3d

4 years agofix umask(022)
Jooyung Han [Thu, 11 Jun 2020 07:58:24 +0000 (16:58 +0900)]
fix umask(022)

Use octal(022) and fix the mistake.

Bug: 149914078
Test: check modes of linkerconfig-generated files
Change-Id: I7c984ab768dc1026a899534e8d21527df91575a6

4 years agoGenerate ASAN paths with certain rules
Kiyoung Kim [Thu, 4 Jun 2020 08:27:36 +0000 (17:27 +0900)]
Generate ASAN paths with certain rules

Previously each paths had to specify if it should be included in ASAN
paths, and /data/asan is valid. However, most of paths comes with ASAN
path with /data/asan except /apex, we can make this as simple so anyone
can add extra paths without understanding of ASAN. This change is the
first step to remove all ASAN path description from path definition.

Bug: 139788162
Test: m -j passed && Crosshatch HWASAN boot succeeded
Change-Id: I7e89cfd81e5b5699112b0636691a8b6007a98f33

4 years agoRevert "Remove duplicate entries in shared_libs" am: 268151bf49
Jooyung Han [Mon, 1 Jun 2020 13:38:22 +0000 (13:38 +0000)]
Revert "Remove duplicate entries in shared_libs" am: 268151bf49

Change-Id: I156a37d85c0d850582378210cab596c51a47a114

4 years agoRevert "Remove duplicate entries in shared_libs"
Jooyung Han [Mon, 1 Jun 2020 12:27:33 +0000 (12:27 +0000)]
Revert "Remove duplicate entries in shared_libs"

This reverts commit 28ea47a3102a8cfd44d3e9315a18cae3ecb15287.

Reason for revert: b/157742728 (performance regression)

Change-Id: I3d925814afa2c7a8ac86e1dc5a5c46800f3e03ee

4 years agoRemove duplicate entries in shared_libs am: 28ea47a310
Jooyung Han [Fri, 29 May 2020 09:30:06 +0000 (09:30 +0000)]
Remove duplicate entries in shared_libs am: 28ea47a310

Change-Id: If66a3408f28c47915fd929d10910ac5685e8e6c8

4 years agoRemove duplicate entries in shared_libs
Jooyung Han [Fri, 29 May 2020 03:19:33 +0000 (12:19 +0900)]
Remove duplicate entries in shared_libs

This change includes

- shared_libs list gets de-duped and printed one-by-one
- whitelisted is concated as a one line

Bug: 157481401
Test: m && device boots
      atest --host linkerconfig_modules_unittest
      ./rundiff.sh
Change-Id: Ibfa53283f9db4adb29516849691d11473467d04f

4 years agoMerge "Add system stubs as "provided" from vendor default" am: 1b926b2cc0
Jooyung Han [Fri, 29 May 2020 01:02:40 +0000 (01:02 +0000)]
Merge "Add system stubs as "provided" from vendor default" am: 1b926b2cc0

Change-Id: I1e1ce47f7c08f8411733cc117e0d495d0d15de20

4 years agoMerge "Add system stubs as "provided" from vendor default"
Jooyung Han [Fri, 29 May 2020 00:48:16 +0000 (00:48 +0000)]
Merge "Add system stubs as "provided" from vendor default"

4 years agoMerge changes Ie414fef3,Ie15838b0,Ifec60ace,I255cb0a7,I0979e702 am: fd1cd899c8
Jooyung Han [Thu, 28 May 2020 10:03:49 +0000 (10:03 +0000)]
Merge changes Ie414fef3,Ie15838b0,Ifec60ace,I255cb0a7,I0979e702 am: fd1cd899c8

Change-Id: Ic8d178f8b132e4fb570345ae40c804a22ea4b6ba

4 years agoMatch vendor requires with system from VNDK Lite am: b604764645
Kiyoung Kim [Thu, 28 May 2020 10:03:48 +0000 (10:03 +0000)]
Match vendor requires with system from VNDK Lite am: b604764645

Change-Id: I737740076214e67e0a17643348e5ab4beed751bb

4 years agoUpdate golden_output am: 73c22fcbcd
Kiyoung Kim [Thu, 28 May 2020 10:03:46 +0000 (10:03 +0000)]
Update golden_output am: 73c22fcbcd

Change-Id: Ide86863fb1ec2dd79f75d441a27b37060168e7b1

4 years agoAdd libandroidicu.so link for VNDK-Lite vendor am: 12633592f0
Kiyoung Kim [Thu, 28 May 2020 10:03:44 +0000 (10:03 +0000)]
Add libandroidicu.so link for VNDK-Lite vendor am: 12633592f0

Change-Id: Ia35b4ef62aca4f06c0b5d39e9c549fa9593e4c9c

4 years agoAdd com.android.os.statsd testdata am: e543413e4d
Jooyung Han [Thu, 28 May 2020 10:03:41 +0000 (10:03 +0000)]
Add com.android.os.statsd testdata am: e543413e4d

Change-Id: Ie272469044bc2cdea5f3fc7d337b822583704f1f

4 years agoMerge changes Ie414fef3,Ie15838b0,Ifec60ace,I255cb0a7,I0979e702
Jooyung Han [Thu, 28 May 2020 09:41:47 +0000 (09:41 +0000)]
Merge changes Ie414fef3,Ie15838b0,Ifec60ace,I255cb0a7,I0979e702

* changes:
  Update golden_output
  Match vendor requires with system from VNDK Lite
  Update golden_output
  Add libandroidicu.so link for VNDK-Lite vendor
  Add com.android.os.statsd testdata

4 years agoMerge "Add system link for libfdtrack.so" am: 464a34be4b
Josh Gao [Thu, 28 May 2020 03:28:23 +0000 (03:28 +0000)]
Merge "Add system link for libfdtrack.so" am: 464a34be4b

Change-Id: I2e696ff80dda0e653290228e1e9b3c8466cc7067

4 years agoMerge "Add system link for libfdtrack.so"
Josh Gao [Thu, 28 May 2020 03:20:48 +0000 (03:20 +0000)]
Merge "Add system link for libfdtrack.so"

4 years agoAdd system stubs as "provided" from vendor default
Jooyung Han [Wed, 27 May 2020 10:38:37 +0000 (19:38 +0900)]
Add system stubs as "provided" from vendor default

For VNDK-lite devices, the default namespace of the vendor section works
like the default namespace of the system section.

So, provides/requires should be same as the system.default NS.

Bug: 153412158
Test: rundiff.sh
      check if vendor.com_android_os_statsd namespace has access to
      libbinder_ndk.so from vendor.default namespace
Change-Id: I1d68e12b34e360eb34edeb5155982b545c89c2f4

4 years agoUpdate golden_output
Kiyoung Kim [Tue, 14 Apr 2020 08:39:13 +0000 (17:39 +0900)]
Update golden_output

for the change: Ie15838b0506b3fcd617f624572f1a560eda07987

Bug: 153412158
Test: ./rundiff.sh
Change-Id: Ie414fef3ab4cd2921073513b9e35f34f9b28060c

4 years agoMatch vendor requires with system from VNDK Lite
Kiyoung Kim [Tue, 14 Apr 2020 08:39:13 +0000 (17:39 +0900)]
Match vendor requires with system from VNDK Lite

Vendor section of VNDK Lite device has search path for /system/lib, so
in general VNDK Lite's vendor section's default namespace should have same
scope of requires with system section's default namespace. This change
updates vendor's default namespace to require libraries same from
system's default namespace.

Bug: 153412158
Test: m -j passed
Merged-In: Ie15838b0506b3fcd617f624572f1a560eda07987
Change-Id: Ie15838b0506b3fcd617f624572f1a560eda07987
(cherry picked from commit fde439ab4555a047bea49081c88218571e4bf2d9)

4 years agoUpdate golden_output
Kiyoung Kim [Wed, 8 Apr 2020 06:47:59 +0000 (15:47 +0900)]
Update golden_output

for the change: I255cb0a74cd996b1ce9c30c488edac063ab72ea8

Bug: 153412158
Test: ./rundiff.sh
Change-Id: Ifec60acedaa064479aa9c93a68fe2cf277694260

4 years agoAdd libandroidicu.so link for VNDK-Lite vendor
Kiyoung Kim [Wed, 8 Apr 2020 06:47:59 +0000 (15:47 +0900)]
Add libandroidicu.so link for VNDK-Lite vendor

libandroidicu.so is required from vendor default namespace which should
be linked to ART APEX, but it was missed. This change adds required
library which can be linked from ART APEX.

Bug: 153412158
Test: m -j passed
Merged-In: I255cb0a74cd996b1ce9c30c488edac063ab72ea8
Change-Id: I255cb0a74cd996b1ce9c30c488edac063ab72ea8
(cherry picked from commit 9811370003c4d88ed6a3a396a21ad1306c57add8)

4 years agoAdd com.android.os.statsd testdata
Jooyung Han [Wed, 27 May 2020 10:09:49 +0000 (19:09 +0900)]
Add com.android.os.statsd testdata

The default namespace of the system section "requires" some libraries
which are provided by com.andorid.os.statsd.

Test: ./rundiff.sh
Change-Id: I0979e7025daea2b1d87d9ad9dd4149cc62257073

4 years agoDo not isolate sphal and vndk from unrestricted am: 2d44cfc444
Kiyoung Kim [Wed, 27 May 2020 08:18:34 +0000 (08:18 +0000)]
Do not isolate sphal and vndk from unrestricted am: 2d44cfc444

Change-Id: Ieef083c35c4d6e672a7795d123f215a3b0760d0f

4 years agoDo not isolate sphal and vndk from unrestricted
Kiyoung Kim [Wed, 27 May 2020 03:49:46 +0000 (12:49 +0900)]
Do not isolate sphal and vndk from unrestricted

After introducing sphal and vndk namespaces, some tests fails due to
existance of sphal namespace in unrestricted section. This change
updates sphal and vndk not to be isolated from unrestricted namespaces
so test can dlopen libraries from custom path (such as /data/local) as required.
In addition, include rs namespace in unrestricted section so
Renderscript test can use rs libraries from unrestricted section.

Bug: 156449540
Test: RenderscriptHidlTest passed with aosp_crosshatch-userdebug
Change-Id: Ib1526e225971312f126d75f26d7aa5c523011922
Merged-In: Ib1526e225971312f126d75f26d7aa5c523011922

4 years agoAdd system link for libfdtrack.so
Josh Gao [Fri, 15 May 2020 23:04:23 +0000 (16:04 -0700)]
Add system link for libfdtrack.so

libfdtrack.so is currently a library on the system image that's used via
dlopen to debug file descriptor leaks. We may want to move this into the
runtime module, but for now, add it as a system link.

Bug: http://b/151688751
Bug: http://b/156571476
Test: added dlopen to adbd
Change-Id: I21ebfe04d7ad85149e4df8a40911efd94ce5cf94

4 years agoDo not link stub libraries from all namespaces am: fd8cf9340b
Kiyoung Kim [Tue, 19 May 2020 07:32:38 +0000 (07:32 +0000)]
Do not link stub libraries from all namespaces am: fd8cf9340b

Change-Id: I6061c4a459d206bf6b2161dd0e23a69d64be254d

4 years agoDo not link VNDK libraries to system from vendor/product default am: ba00a9897f
Kiyoung Kim [Tue, 19 May 2020 07:32:36 +0000 (07:32 +0000)]
Do not link VNDK libraries to system from vendor/product default am: ba00a9897f

Change-Id: If2f6516c7b5d38c8acbdbabfce4e828777ce0a3b

4 years agoDo not link stub libraries from all namespaces
Kiyoung Kim [Fri, 15 May 2020 05:26:23 +0000 (14:26 +0900)]
Do not link stub libraries from all namespaces

In current linkerconfig from all namespaces stub libraries are linked to
system namespace, which was required for APEX namespaces. However, as
linkerconfig checks dependencies from APEX namespaces now, this link is
excessive and can create unexpected interface from system. This change
removes redundant stub library link so namespaces can link to system
image with minimum set of libraries.

Bug: 156563692
Test: m -j passed && crosshatch_hwasasn booted
Change-Id: If43c954f376ede65bd2c3f682be6ae5d6866d3df
Merged-In: If43c954f376ede65bd2c3f682be6ae5d6866d3df

4 years agoDo not link VNDK libraries to system from vendor/product default
Kiyoung Kim [Thu, 14 May 2020 07:25:15 +0000 (16:25 +0900)]
Do not link VNDK libraries to system from vendor/product default

There was an issue that P vendor fails with Wifi because ubsan
libclangrt was linked to system even the library was in VNDK. This
change removes vndk libraries from sanitizer library list when linking
from vendor/product default so we can stick on partition's own VNDK
library.

Bug: 155907604
Test: Tested with cuttlefish
Change-Id: I7c23c6ba5f263a716b44778c9441dde68943259b
Merged-In: I7c23c6ba5f263a716b44778c9441dde68943259b

4 years agoUpdate test data with latest codebase am: 829bc09525
Kiyoung Kim [Mon, 11 May 2020 09:33:46 +0000 (09:33 +0000)]
Update test data with latest codebase am: 829bc09525

Change-Id: I2a702abd469dca36f4b21db313577bcbb2932711

4 years agoUpdate test data with latest codebase
Kiyoung Kim [Mon, 11 May 2020 05:24:52 +0000 (14:24 +0900)]
Update test data with latest codebase

Some of the changes are not reflected to the test code output. This
change updates testdata using the latest codebase.

Bug: 156099573
Test: generated with rundiff.sh --update
Change-Id: I4dcc73058f827ac363cd555a073ef0f30848059e

4 years agoMerge "Add sphal and vndk namespaces to unrestricted" am: 7769450af6
Treehugger Robot [Mon, 11 May 2020 04:54:14 +0000 (04:54 +0000)]
Merge "Add sphal and vndk namespaces to unrestricted" am: 7769450af6

Change-Id: I62561019cb4e59f6d747b6ec1835fd4a90c8de16

4 years agoMerge "Add sphal and vndk namespaces to unrestricted"
Treehugger Robot [Mon, 11 May 2020 04:37:25 +0000 (04:37 +0000)]
Merge "Add sphal and vndk namespaces to unrestricted"

4 years agoAdd sphal and vndk namespaces to unrestricted
Yiwei Zhang [Fri, 8 May 2020 18:21:33 +0000 (11:21 -0700)]
Add sphal and vndk namespaces to unrestricted

Binary executables compiled against libvulkan or libEGL/libGLES*
fundamentally depend on sphal libraries for their functionality. On
production builds, instead of building APKs, devs are always allowed to
use NDK toolchain to build binaries and push to /data/local/tmp to run.

Devs are doing such as to avoid issues with bundling resources,
extracting output, slower build times and flakier perf numbers. It's
also the preferred way for test factory which have cross-platform
devices, because they can automate the process using the same script if
using binary executables.

This change adds the sphal and vndk namespaces to unrestricted
configuration. This change also makes rs an optional namespace for sphal
namespace as it's only needed in system configuration. In addition, this
change has updated vndk namespace generation accordingly.

Bug: 156099573
Test: atest --test-mapping system/linkerconfig
Test: push a Vulkan binary to /data/local/tmp and run
Merged-In: Id09dbcf2ab33a599960f471cbc1b142b6d3eaa1a
Change-Id: Id09dbcf2ab33a599960f471cbc1b142b6d3eaa1a

4 years ago"Make com_android_i18n namespace visible" Attempt 2 am: 6fb8b5b1a9
Victor Chang [Thu, 7 May 2020 09:51:23 +0000 (09:51 +0000)]
"Make com_android_i18n namespace visible" Attempt 2 am: 6fb8b5b1a9

Change-Id: I317f172db8608baf98fe19ef737cfd3dbb490395

4 years ago"Make com_android_i18n namespace visible" Attempt 2
Victor Chang [Tue, 5 May 2020 15:17:35 +0000 (16:17 +0100)]
"Make com_android_i18n namespace visible" Attempt 2

This reverts commit 6c8203f28990363fc0bdb125f13138b2d5f7d544.
Reland https://r.android.com/1288092

Bug: 138994281
Test: CtsJniTestCases
Change-Id: Iba05e69926916aff32a60144fd05448c03b9c088

4 years agoRevert "Make com_android_i18n namespace visible" am: 6c8203f289
vichang [Tue, 5 May 2020 12:00:52 +0000 (12:00 +0000)]
Revert "Make com_android_i18n namespace visible" am: 6c8203f289

Change-Id: I4f3ac76ab74935fdeda985245f50013b5abb6d2d

4 years agoRevert "Make com_android_i18n namespace visible"
vichang [Tue, 5 May 2020 11:11:30 +0000 (11:11 +0000)]
Revert "Make com_android_i18n namespace visible"

Revert submission 1299494-i18nApex

Reason for revert: Breaking aosp_x86-eng on aosp-master
Reverted Changes:
I30fc3735b:Move ICU from ART APEX to i18n APEX
Icb7e98b5c:Calling @IntraCoreApi from core-icu4j should not c...
Ic7de63fe3:Move core-icu4j into I18n APEX
I65b97bdba:Make com_android_i18n namespace visible
Ia4c83bc15:Move v8 and libpac into i18n APEX
I10e6d4948:Move core-icu4j into i18n APEX
I8d989cad7:Move ICU from ART APEX into i18n APEX
I72216ca12:Move ICU into i18n APEX
Ief9dace85:Add shared library into i18n APEX and add the requ...
I7d97a10ba:Move libpac into i18n APEX
I90fff9c55:Move ICU from ART APEX into i18n APEX

Change-Id: I8e170a25fb334c12af5c2fe4a1fb4afafd56d096

4 years agoMake com_android_i18n namespace visible am: 84d3247b54
Victor Chang [Tue, 5 May 2020 09:03:58 +0000 (09:03 +0000)]
Make com_android_i18n namespace visible am: 84d3247b54

Change-Id: I34bae003711e039983536baafa3166e09db97652

4 years agoMake com_android_i18n namespace visible
Victor Chang [Thu, 16 Apr 2020 18:50:13 +0000 (19:50 +0100)]
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

4 years agoDO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp into stag-aosp-master
Xin Li [Fri, 10 Apr 2020 00:51:28 +0000 (17:51 -0700)]
DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp into stag-aosp-master

Bug: 151763422
Change-Id: Ide5d6cedcd1bade47ea7ed391062bf915c10b2a8

4 years agoMerge changes from topic "lc_sphal" am: e89356e8e7 am: 2bf8ba3027
Kiyoung Kim [Thu, 2 Apr 2020 08:58:43 +0000 (08:58 +0000)]
Merge changes from topic "lc_sphal" am: e89356e8e7 am: 2bf8ba3027

Change-Id: I8706e17d211ec40f6e1caf2267ae2be31a6e1453

4 years agoMove libz from VNDKSP to LLNDK in case of VNDK Lite am: 14530493f6 am: 7f89917084
Kiyoung Kim [Thu, 2 Apr 2020 08:58:42 +0000 (08:58 +0000)]
Move libz from VNDKSP to LLNDK in case of VNDK Lite am: 14530493f6 am: 7f89917084

Change-Id: I37baf74d8fd74bcfd81025356c01f6b844888998

4 years agoAdd legacy test configuration am: 71b4bf30cf am: b4104c6db4
Jooyung Han [Thu, 2 Apr 2020 08:58:34 +0000 (08:58 +0000)]
Add legacy test configuration am: 71b4bf30cf am: b4104c6db4

Change-Id: Id9727da7feb49704e9557711fa03ff9dec68dfd6

4 years agoMerge changes from topic "lc_sphal" am: e89356e8e7
Kiyoung Kim [Thu, 2 Apr 2020 08:34:22 +0000 (08:34 +0000)]
Merge changes from topic "lc_sphal" am: e89356e8e7

Change-Id: If9a1ad45570daf231a927b5493d33555f6667e26

4 years agoMove libz from VNDKSP to LLNDK in case of VNDK Lite am: 14530493f6
Kiyoung Kim [Thu, 2 Apr 2020 08:34:19 +0000 (08:34 +0000)]
Move libz from VNDKSP to LLNDK in case of VNDK Lite am: 14530493f6

Change-Id: Iaad65474633d1cb054638fb1def5d42fa466e3b0

4 years agoAdd legacy test configuration am: 71b4bf30cf
Jooyung Han [Thu, 2 Apr 2020 08:34:04 +0000 (08:34 +0000)]
Add legacy test configuration am: 71b4bf30cf

Change-Id: I621252a9071bf6189b760b63415b0cc29c570a12

4 years agoMerge changes from topic "lc_sphal"
Kiyoung Kim [Thu, 2 Apr 2020 08:24:56 +0000 (08:24 +0000)]
Merge changes from topic "lc_sphal"

* changes:
  Allow SPHAL namespace to access system in case of legacy
  Move libz from VNDKSP to LLNDK in case of VNDK Lite

4 years agoAdd legacy test configuration
Jooyung Han [Thu, 2 Apr 2020 06:40:41 +0000 (15:40 +0900)]
Add legacy test configuration

And deprecated --legacy option.

Instead, to run linkerconfig with legacy mode, run it without -v option.
(-v is for setting vndk version).
For example,
  $ linkerconfig -r <root> -t <target>

Legacy mode:
  ro.vndk.version is not set and VNDK is not available.
  but other apexes are available.

Bug: 140599044
Test: ./rundiff.sh
Change-Id: I81cba2d6c6466737fcb4dd33407837b016c42b78

4 years agoAllow SPHAL namespace to access system in case of legacy
Kiyoung Kim [Wed, 1 Apr 2020 08:03:30 +0000 (17:03 +0900)]
Allow SPHAL namespace to access system in case of legacy

In current there is limited link from sphal to platform in case of
legacy device due to absence of VNDK related library list. Anyway, SPHAL
namespace requires access to libraries under /system/lib which is
VNDK-SP in treblelized device. This change adds extra access to system
libs from SPHAL namespace in case of legacy device.

Bug: 152932503
Test: m -j passed
Change-Id: I93fc82a36cf3c2ee33c9bd1f2bb8371bb2d6d700

4 years agoMove libz from VNDKSP to LLNDK in case of VNDK Lite
Kiyoung Kim [Tue, 31 Mar 2020 05:47:32 +0000 (14:47 +0900)]
Move libz from VNDKSP to LLNDK in case of VNDK Lite

In case of VNDK Lite libz should be listed in LLNDK rather than VNDKSP.
This process has been missed while we move the logic to linkerconfig.
This change updates library list based on the library file name in case
of VNDK lite device.

Bug: 141908078
Test: m -j passed
Change-Id: I22eb76619c1242ab26c1d611a08b98177b08285c
Merged-In: I22eb76619c1242ab26c1d611a08b98177b08285c

4 years agoAdd more configurations for rundiff tests am: 0441fd330b am: 16f9afef28
Jooyung Han [Tue, 31 Mar 2020 15:27:25 +0000 (15:27 +0000)]
Add more configurations for rundiff tests am: 0441fd330b am: 16f9afef28

Change-Id: I701d6bbd4bb19bd1bf66547f7ba8ea28a4293c21

4 years agoAdd more configurations for rundiff tests am: 0441fd330b
Jooyung Han [Tue, 31 Mar 2020 15:12:16 +0000 (15:12 +0000)]
Add more configurations for rundiff tests am: 0441fd330b

Change-Id: I7b046d2378f0ea002418369b857d2c48585f8bbd

4 years agoRefactor rundiff.sh am: 77d84bdee3 am: 488d457650
Jooyung Han [Tue, 31 Mar 2020 14:58:57 +0000 (14:58 +0000)]
Refactor rundiff.sh am: 77d84bdee3 am: 488d457650

Change-Id: I5f49094d25a2144d36cba594dbce6fbdd95c9bd6

4 years agoRefactor rundiff.sh am: 77d84bdee3
Jooyung Han [Tue, 31 Mar 2020 14:44:17 +0000 (14:44 +0000)]
Refactor rundiff.sh am: 77d84bdee3

Change-Id: I1798f74bedb3b4f4dc9e8b611ac4e8466cded23c

4 years agoAdd more configurations for rundiff tests
Jooyung Han [Tue, 31 Mar 2020 07:14:56 +0000 (16:14 +0900)]
Add more configurations for rundiff tests

stage0:
  no apexes. this configuration corresponds to the one for
  apexd-bootstrap process.

stage1:
  with bootstrap apexes. this corresponds to the one right after
  apexd-bootstrap finishes

stage2:
  with all apexes. this corresponds to the one for every other
  processes.

product-enabled:
  ro.product.vndk.version is set.

vndk-lite:
  ro.vndk.lite is set to true.

Bug: 140599044
Test: ./rundiff.sh
Change-Id: If7dc6aedf05e2078643e52559c580de425693dc5

4 years agoRefactor rundiff.sh
Jooyung Han [Tue, 31 Mar 2020 06:44:53 +0000 (15:44 +0900)]
Refactor rundiff.sh

(copied from reverted d283fb913db051ef0653c9ea1af5d2d865dbbbf0)

. Add --update to update golden_output
. Do not rely on ANDROID_BUILD_TOP (required to be run on cloud)

Bug: n/a
Test: ./rundiff.sh # no changes
Change-Id: I098dabd2c5cd06f18a806cf66f593ea930f02945

4 years agoRevert "Make diff test as presubmit" am: 9750b6cffc am: eb90db8630
Jooyung Han [Tue, 24 Mar 2020 09:33:30 +0000 (09:33 +0000)]
Revert "Make diff test as presubmit" am: 9750b6cffc am: eb90db8630

Change-Id: Ic08e50df5877f5bcd7ae846c1dee594a3f45e16d

4 years agoRevert "Make diff test as presubmit" am: 9750b6cffc
Jooyung Han [Tue, 24 Mar 2020 09:17:14 +0000 (09:17 +0000)]
Revert "Make diff test as presubmit" am: 9750b6cffc

Change-Id: I8e68b2d58a3152633eb7e0e43fe09c0d36a2ce2f

4 years agoRevert "Make diff test as presubmit"
Jooyung Han [Tue, 24 Mar 2020 07:33:00 +0000 (07:33 +0000)]
Revert "Make diff test as presubmit"

This reverts commit d283fb913db051ef0653c9ea1af5d2d865dbbbf0.

Reason for revert: flaky (b/152265282)

Change-Id: Ie73fd1967384281f3e727b2482bf1ee7ffec38d5

4 years agoMake diff test as presubmit am: d283fb913d am: 0f6363490b
Jooyung Han [Mon, 23 Mar 2020 07:55:38 +0000 (07:55 +0000)]
Make diff test as presubmit am: d283fb913d am: 0f6363490b

Change-Id: Ie0a1c334cda46c784cd04c19807aa50c268320bf

4 years agoMake diff test as presubmit am: d283fb913d
Jooyung Han [Mon, 23 Mar 2020 07:35:14 +0000 (07:35 +0000)]
Make diff test as presubmit am: d283fb913d

Change-Id: Idec7b43a759745bd5d30d37c7dd3f2b3c9f95089

4 years agoMake diff test as presubmit
Jooyung Han [Fri, 20 Mar 2020 09:20:23 +0000 (18:20 +0900)]
Make diff test as presubmit

so that changes to the output can be tracked.

Bug: 140599044
Test: atest --host linkerconfig_diff_test
Change-Id: Ib7a026ca5cb794a614279ce2eee53c6ef8219d1f

4 years agoUpdate testdata/golden_output am: e4f6ccdc08 am: 372c60ddd2
Jooyung Han [Fri, 20 Mar 2020 11:48:43 +0000 (11:48 +0000)]
Update testdata/golden_output am: e4f6ccdc08 am: 372c60ddd2

Change-Id: I0db5bb07cfb60722d8fe62dfc8740e4cf9af6c39

4 years agoUpdate testdata/golden_output am: e4f6ccdc08
Jooyung Han [Fri, 20 Mar 2020 11:36:33 +0000 (11:36 +0000)]
Update testdata/golden_output am: e4f6ccdc08

Change-Id: Iac946bf2f7d295c3a384f0a34beb6c18e7fb887d

4 years agoUpdate testdata/golden_output
Jooyung Han [Fri, 20 Mar 2020 05:55:47 +0000 (14:55 +0900)]
Update testdata/golden_output

libselinux.so is added to system_stub_libraries in
74d75a773d200542ac3439fc166aa87ef40e0104

Bug: 151053366
Test: ./rundiff.sh
Change-Id: Id69eded5f144958676d2b4b72774efa4fb82211f