platform_bootable_recovery/minadbd
Shaju Mathew 7a4ba1956a Adding adbd module OWNERS for minadbd compilation unit as well.
Test: N/A (applicable only for source management).

Signed-off-by: Shaju Mathew <shaju@google.com>
Change-Id: I644993fb09f1aa9b983b3eab94ed16826a1df39d
2022-06-13 23:31:09 +00:00
..
include/minadbd minadbd: Export minadbd/types.h to libinstall. 2019-09-26 00:04:11 -07:00
Android.bp GetBatteryInfo() also reads AIDL health HAL. 2021-12-06 16:53:58 -08:00
AndroidTest.xml Fix flaky tests by require root for minadbd_tests 2020-08-24 14:36:01 -04:00
fuse_adb_provider.cpp minadbd: Support rescue install and getprop commands. 2019-04-19 12:53:55 -07:00
fuse_adb_provider.h Support starting fuse from a block map 2019-06-20 13:53:40 -07:00
fuse_adb_provider_test.cpp Create a FuseDataProvider base class 2019-03-19 11:11:58 -07:00
minadbd.cpp Suppression of socket connect from minadbd (CL 2/2) 2021-12-14 18:36:13 +00:00
minadbd_services.cpp Do not call exit() immediately after serving sideload 2020-12-14 17:22:16 -05:00
minadbd_services.h Add test for minadbd 2019-04-23 11:33:57 -07:00
minadbd_services_test.cpp minadbd: Export minadbd/types.h to libinstall. 2019-09-26 00:04:11 -07:00
OWNERS Adding adbd module OWNERS for minadbd compilation unit as well. 2022-06-13 23:31:09 +00:00
README.md minadbd: Update README.md. 2019-09-27 13:17:16 -07:00

minadbd

minadbd is analogous to the regular adbd, but providing the minimal services to support recovery-specific use cases. Generally speaking, adbd = libadbd + libadbd_services, whereas minadbd = libadbd + libminadbd_services.

Although both modules may be installed into the recovery image, only one of them, or none, can be active at any given time.

  • The start / stop of adbd is managed via system property sys.usb.config, when setting to adb or none respectively. Upon starting recovery mode, adbd is started in debuggable builds by default; otherwise adbd will stay off at all times in user builds. See the triggers in bootable/recovery/etc/init.rc.

  • minadbd is started by recovery as needed.

    • When requested to start minadbd, recovery stops adbd first, if it's running; it then forks and execs minadbd in a separate process.
    • minadbd talks to host-side adb server to get user requests.
      • minadbd handles some requests directly, e.g. querying device properties for rescue service.
      • minadbd communicates with recovery to fulfill requests regarding package installation. See the comments in bootable/recovery/install/adb_install.cpp for the IPC protocol between recovery and minadbd.
    • Upon exiting minadbd, recovery restarts adbd if it was previously running.