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)'.
Change-Id: If418cbe3abdeacb759d59052e6dca4c2067678dd
diff --git a/adb/Android.bp b/adb/Android.bp
index abd6f32..1b7a266 100644
--- a/adb/Android.bp
+++ b/adb/Android.bp
@@ -592,7 +592,6 @@
"libmdnssd",
"libminijail",
"libprotobuf-cpp-lite",
- "libselinux",
"libssl",
],
@@ -603,6 +602,7 @@
"libadbd_fs",
"libcrypto",
"liblog",
+ "libselinux",
],
target: {