11# adb-go
22
33` adb-go ` is a pure-Go implementation of the Android Debug Bridge (ADB)
4- protocol. It is primarily a Go library for embedding ADB behavior in
5- applications, with an experimental CLI wrapper for supported workflows.
4+ protocol.
65
7- > ** Status:** v0 is not a full replacement for the official ` adb ` binary yet.
8- > It currently implements explicit TCP connections, initial Linux USB support,
9- > explicit-key authentication, service opening, shell execution/streaming,
10- > Android property lookup, logcat streaming/dump, screenshot capture, reboot,
11- > foreground local TCP forwarding, single-file push/pull, and one-APK
12- > installation.
13-
14- [ ` CHANELOG.md ` ] ( CHANELOG.md ) .
6+ > [ !NOTE]
7+ > Current adb-go implementation is not a full replacement for the official ` adb ` binary yet.
158
169## Contents
1710
@@ -27,9 +20,11 @@ applications, with an experimental CLI wrapper for supported workflows.
2720- [ Current limitations] ( #current-limitations )
2821- [ Testing] ( #testing )
2922
23+ History of changes is available in [ ` CHANELOG.md ` ] ( CHANELOG.md ) .
24+
3025## Overview
3126
32- adb-go is layered from low-level ADB protocol primitives up to high-level
27+ ` adb-go ` is layered from low-level ADB protocol primitives up to high-level
3328library workflows, with the CLI and daemon built on top.
3429
3530``` mermaid
@@ -53,24 +48,23 @@ block-beta
5348
5449| Feature | Notes |
5550| --- | --- |
56- | Explicit TCP connections | Connect to a known ADB TCP endpoint. |
57- | Linux USB connections | Only on Linux; uses ` /dev/bus/usb ` directly. |
58- | USB device exploration | Only on Linux; lists locally visible ADB-capable USB interfaces. |
59- | Explicit-key authentication | Uses caller-supplied existing ADB RSA private keys. |
60- | Service opening | Opens raw ADB services for advanced callers. |
61- | Shell execution | Runs one command and returns its output. |
62- | Shell streaming | Streams command output to an ` io.Writer ` . |
63- | Android properties | Wraps and parses ` getprop ` . |
64- | Logcat | Supports streaming and dump-and-exit modes. |
65- | Screencap | Captures one PNG screenshot. |
66- | Reboot | Supports normal, bootloader, and recovery modes. |
67- | Local TCP forwarding | Foreground process-scoped forwarding to device TCP ports. |
68- | Daemon-owned TCP forwarding | In-memory background forwarding through ` adb-god ` ; TCP targets only. |
69- | File push | Pushes one local file to the device. |
70- | File pull | Pulls one remote file to a new local destination. |
71- | APK installation | Installs one local APK via ` /data/local/tmp ` ; supports replace option. |
72- | Experimental CLI | Thin wrapper around supported library workflows. |
73- | adb-god daemon foundation | Unix-socket daemon with ping, status, shutdown, diagnostics, and forwarding. |
51+ | TCP connections | |
52+ | USB connections | Linux only |
53+ | USB device exploration | Linux only |
54+ | Key authentication | |
55+ | Shell execution | |
56+ | Shell streaming | |
57+ | Service opening | |
58+ | Android properties | |
59+ | Logcat | Supports streaming and dump-and-exit modes |
60+ | Screencap | |
61+ | Reboot | Supports normal, bootloader, and recovery modes |
62+ | Local TCP forwarding | Device TCP targets only |
63+ | Daemon-owned TCP forwarding | Device TCP targets only |
64+ | File push/pull | |
65+ | APK installation | Supports replace option |
66+ | Sample CLI | Showcasing library |
67+ | adb-god daemon foundation | Unix-socket daemon |
7468
7569## Install
7670
0 commit comments