Build and use minadbd as a shared library.
The former `minadbd` module is now built as a shared library
(`libminadbd_services.so`) that serves sideloading under recovery, with
a dynamic dependency on `libadbd.so`.
This allows sharing and reusing libadbd code on device (both of `adbd`
and `recovery` now uses `libadbd.so`). As a result, it reduces the size
of `recovery` binary from 1407360-byte to (1272880 + 33032)-byte
(aosp_marlin-userdebug).
Bug: 78793464
Test: `m -j bootimage` with aosp_marlin-userdebug
Test: Run minadbd_test on marlin.
Test: Boot into recovery and verify that sideloading still works.
Change-Id: I6c2bc3d351d5af71220a9b9f956c8c039e52c781
diff --git a/Android.mk b/Android.mk
index 9542080..9d6a00f 100644
--- a/Android.mk
+++ b/Android.mk
@@ -114,7 +114,6 @@
librecovery_static_libraries := \
libbootloader_message \
libfusesideload \
- libminadbd \
libminui \
libverifier \
libotautil \
@@ -157,6 +156,9 @@
LOCAL_MODULE := librecovery
+LOCAL_SHARED_LIBRARIES := \
+ libminadbd_services \
+
LOCAL_STATIC_LIBRARIES := \
$(librecovery_static_libraries)
@@ -186,6 +188,7 @@
$(librecovery_static_libraries)
LOCAL_SHARED_LIBRARIES := \
+ libminadbd_services \
librecovery_ui \
LOCAL_HAL_STATIC_LIBRARIES := libhealthd
@@ -223,7 +226,9 @@
# module is built with Soong (with `recovery: true` flag).
LOCAL_REQUIRED_MODULES += \
libbase.recovery \
+ libcrypto.recovery \
liblog.recovery \
+ libminadbd_services.recovery \
libpng.recovery \
libz.recovery \
diff --git a/fuse_sideload/Android.bp b/fuse_sideload/Android.bp
index 76bc16d..29404ce 100644
--- a/fuse_sideload/Android.bp
+++ b/fuse_sideload/Android.bp
@@ -14,6 +14,7 @@
cc_library_static {
name: "libfusesideload",
+ recovery_available: true,
cflags: [
"-D_XOPEN_SOURCE",
@@ -30,7 +31,7 @@
"include",
],
- static_libs: [
+ shared_libs: [
"libbase",
"libcrypto",
],
diff --git a/minadbd/Android.bp b/minadbd/Android.bp
index 432b2f0..8ccce4f 100644
--- a/minadbd/Android.bp
+++ b/minadbd/Android.bp
@@ -26,8 +26,9 @@
],
}
-cc_library_static {
- name: "libminadbd",
+cc_library {
+ name: "libminadbd_services",
+ recovery_available: true,
defaults: [
"minadbd_defaults",
@@ -39,14 +40,14 @@
"minadbd_services.cpp",
],
- static_libs: [
- "libfusesideload",
+ shared_libs: [
+ "libadbd",
"libbase",
"libcrypto",
],
- whole_static_libs: [
- "libadbd",
+ static_libs: [
+ "libfusesideload",
],
}
@@ -62,8 +63,9 @@
],
static_libs: [
+ "libminadbd_services",
+ "libadbd",
"libBionicGtestMain",
- "libminadbd",
],
shared_libs: [
diff --git a/tests/Android.mk b/tests/Android.mk
index 58ef3a2..8dd4549 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -157,7 +157,7 @@
librecovery \
libbootloader_message \
libfusesideload \
- libminadbd \
+ libminadbd_services \
librecovery_ui_default \
librecovery_ui \
libminui \