Android Debugging Bridge
Android Debugging Bridge
HISTORY
The Android Debug Bridge (commonly abbreviated as adb) is a programming tool used for
the debugging of Android-based devices. The daemon on the Android device connects with the
server on the host PC over USB or TCP, which connects to the client that is used by the end-user over
TCP. Made available as open-source software under the Apache License by Google since 2007,
features include a shell and the possibility to make backups. The adb software is compatible with
Windows, Linux and macOS. It has been misused by botnets and other malicious software, for which
mitigations were developed such as RSA authentication and device whitelisting.
In 2015, Microsoft released an Android emulator that can connect to the adb client. In 2016
for Android Studio 2.0 a 5x performance improvement was made for installing apps and pushing files
through adb. For easier usage of Android Things, a wrapper was made in 2017 around manual adb
commands. For Android 11 in 2020, Google added adb incremental installations. In 2020, Wi-Fi adb
was integrated into Android Studio for macOS. In 2021 for Android 12, the adb backup command
was limited so that backing up user data from apps is opt-in using a per-app manifesto
configuration.Fuchsia will be backwards-compatible with adb. It will be replaced with fx and ffx.
The adb command facilitates a variety of device actions, such as installing and debugging
apps, and it provides access to a Unix shell that you can use to run a variety of commands on a
device. It is a client-server program that includes three components:
1. A client, which sends commands. The client runs on your development machine. You can
invoke a client from a command-line terminal by issuing an adb command.
2. A daemon (adbd), which runs commands on a device. The daemon runs as a background
process on each device.
3. A server, which manages communication between the client and the daemon. The
server runs as a background process on your development machine.
1. PROVIDING TRANSPORT
- Communication path between host and target device
- USB or TCP but clients don’t have to aware.
2. PROVIDING SERVICES
- Executing something on the target devices through the transport.
BENEFITS AND LIMITATIONS OF ADB
Android Debug Bridge (adb) is a versatile command-line tool that lets you communicate with
a device. The adb command facilitates a variety of device actions, such as installing and debugging
apps, and it provides access to a Unix shell that you can use to run a variety of commands on a
device.
ADB can install and uninstall applications. adb can connect to multiple devices at the same time. You
must specify the target device when issuing adb commands when multiple devices are connected. So
far, we’ve only assumed that adb connects to a device over USB, but you can also configure adb to
work over Wi-Fi. You can now use adb commands remotely. Having a wireless adb connection is nice
for decreasing your dependence on wires. The underlying TCP/IP transport is also super useful for
building more advanced use cases. For example, you can tunnel adb connections on your CI server to
your remote computer.