platform_bootable_recovery/minadbd
Tao Bao 2223e6a9f8 minadbd sends heartbeat to rescue service for getprop command.
We start minadbd and rescue services in two processes. In particular,
minadbd handles the requests from host, then communicates with rescue
service to do install/wipe works. When resuce service doesn't see any
request in a pre-defined timeout (currently 300s), rescue service will
exit to avoid endless waiting.

This CL changes minadbd to additionally send a no-op command to rescue
service as a heartbeat signal, so that host side can finish
time-consuming operations (e.g. downloading over network) while keeping
rescue service alive.

Bug: 136457446
Test: Enter resuce mode on blueline. Send `adb rescue getprop
      ro.build.fingerprint` and check that rescue service doesn't exit.
Test: Stop sending the getprop command. Check that rescue service exits
      after 300s.
Change-Id: Ib9d5ed710cfa94ecfe6cf393a71a0b67b2539531
2019-07-09 11:09:34 -07:00
..
Android.bp Implement FuseBlockDataProvider 2019-05-01 12:09:38 -07:00
AndroidTest.xml Add test config to minadbd_test 2017-03-28 22:13:38 -07: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 Allow entering rescue mode via recovery UI. 2019-04-17 14:07:23 -07:00
minadbd_services.cpp minadbd sends heartbeat to rescue service for getprop command. 2019-07-09 11:09:34 -07:00
minadbd_services.h Add test for minadbd 2019-04-23 11:33:57 -07:00
minadbd_services_test.cpp Support wipe command in rescue mode 2019-04-26 10:36:48 -07:00
minadbd_types.h minadbd sends heartbeat to rescue service for getprop command. 2019-07-09 11:09:34 -07:00
README.md Address review comment. 2017-01-09 14:28:42 -08:00

minadbd is now mostly built from libadbd. The fuse features are unique to minadbd, and services.c has been modified as follows:

  • all services removed
  • all host mode support removed
  • sideload_service() added; this is the only service supported. It receives a single blob of data, writes it to a fixed filename, and makes the process exit.