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 \