Make libselinux a stub library

libselinux is currently being copied to APEXes. This is risky because
the library is not designed to be portable; part of it is tied to the
specific version of the Android that it was developed for.

This change fixes the problem by declaring that the library supports
a stub with the list of C APIs that are included in the stub. Then there
is only one copy of libselinux in /system/lib and other APEXes use the
copy by dynamically linking to it.

Also, adbd no longer statically links to it, because doing so brings
libselinux in it.

Bug: 151053366
Test: m com.android.adbd. It doesn't include libselinux in it.
Test: m com.android.adbd-deps-info. then inspect
out/soong/com.android.adbd-deps-info.txt. The dependency to libselinux
is shown as '(external)'.

Exempt-From-Owner-Approval: cherry-pick from AOSP

Merged-In: If418cbe3abdeacb759d59052e6dca4c2067678dd
(cherry picked from commit 3ffdad0cb5)
Change-Id: If418cbe3abdeacb759d59052e6dca4c2067678dd
This commit is contained in:
Jiyong Park 2020-03-11 14:00:33 +09:00
parent 01aa81cec5
commit 8ce4a3067c

View file

@ -577,7 +577,6 @@ cc_binary {
"libdiagnose_usb",
"libmdnssd",
"libminijail",
"libselinux",
"libssl",
],
@ -588,6 +587,7 @@ cc_binary {
"libadbd_fs",
"libcrypto",
"liblog",
"libselinux",
],
target: {