Merge "adbd: actually dynamically link against libadbd_auth."
diff --git a/adb/Android.bp b/adb/Android.bp
index 118531d..f6a4f39 100644
--- a/adb/Android.bp
+++ b/adb/Android.bp
@@ -29,6 +29,7 @@
"-DANDROID_BASE_UNIQUE_FD_DISABLE_IMPLICIT_CONVERSION=1",
],
cpp_std: "experimental",
+ stl: "libc++_static",
use_version_lib: true,
compile_multilib: "first",
@@ -364,8 +365,6 @@
"libz",
],
- stl: "libc++_static",
-
// Don't add anything here, we don't want additional shared dependencies
// on the host adb tool, and shared libraries that link against libc++
// will violate ODR
@@ -558,11 +557,9 @@
keep_symbols: true,
},
- stl: "libc++_static",
static_libs: [
"libadbconnection_server",
"libadbd",
- "libadbd_auth",
"libadbd_services",
"libasyncio",
"libbase",
@@ -577,6 +574,7 @@
],
shared_libs: [
+ "libadbd_auth",
"libcrypto",
],
}
@@ -585,7 +583,6 @@
name: "adbd_system_binaries",
required: [
"abb",
- "libadbd_auth",
"reboot",
"set-verity-state",
]
@@ -739,7 +736,6 @@
"libziparchive",
"libz",
],
- stl: "libc++_static",
proto: {
type: "lite",
export_proto_headers: true,
diff --git a/adb/apex/ld.config.txt b/adb/apex/ld.config.txt
index d1858a4..ca297fe 100644
--- a/adb/apex/ld.config.txt
+++ b/adb/apex/ld.config.txt
@@ -5,16 +5,24 @@
dir.adbd = /apex/com.android.adbd/bin/
[adbd]
-additional.namespaces = platform,art
+additional.namespaces = apex,platform,art
namespace.default.isolated = true
-namespace.default.search.paths = /apex/com.android.adbd/${LIB}
-namespace.default.asan.search.paths = /apex/com.android.adbd/${LIB}
namespace.default.permitted.paths = /system/${LIB}
namespace.default.asan.permitted.paths = /system/${LIB}
-namespace.default.links = art,platform
+namespace.default.links = apex,art,platform
+namespace.default.link.apex.shared_libs = libcrypto.so
namespace.default.link.art.shared_libs = libadbconnection_server.so
-namespace.default.link.platform.shared_libs = libc.so:libdl.so:libm.so:libclang_rt.hwasan-aarch64-android.so
+
+# libcrypto.so in the APEX might be a symlink to /system, for APEXes bundled with the system image.
+# The dynamic linker works off of realpath, so we need to permit loading libcrypto.so from /system.
+namespace.default.link.platform.shared_libs = libc.so:libdl.so:libm.so:libclang_rt.hwasan-aarch64-android.so:liblog.so:libadbd_auth.so:libcrypto.so
+
+namespace.apex.isolated = true
+namespace.apex.search.paths = /apex/com.android.adbd/${LIB}
+namespace.apex.asan.search.paths = /apex/com.android.adbd/${LIB}
+namespace.apex.links = platform
+namespace.apex.link.platform.allow_all_shared_libs = true
###############################################################################
# "art" APEX namespace: used for libadbdconnection_server