adbd

The adbd module manages command-line adb and IDE debugging sessions. This module is updatable, meaning it can receive updates to functionality outside of the normal Android release cycle.

Modularizing adbd enables faster delivery of performance improvements (those made in previous years and new improvements yet to come), bug fixes (such as several power-drain bugs, including adbd continuing at 100% of a CPU until the battery depletes), and features that haven't been backported to older versions of Android. Such improvements contribute to adbd reliability, which is critical for automated testing where failures can force app developers and OEMs to manually replug/restart offline devices. Reliability issues also affect factory setup (OEMs) and board bringup (SoC vendors).

Module boundary

For Android 12 and higher, the adbd module code is packages/modules/adbd.

For Android 11 and lower, the adbd module boundaries are /system/core/adb and /system/bin/adbd.

Module format

The adbd module (com.android.adbd) is in APEX format and is available for devices running Android 11 or higher.

Module dependences

The adbd module depends on the following.

  • Java Debug Wire Protocol (JDWP) debugging protocol with Android runtime. adbd dynamically links against libadbconnection_server.

  • Authentication with system_server. adbd dynamically links against libadbd_auth.

Customization

The adbd module doesn't support customization.