Muka Rust ADB 是本站 Muka Rust 系列工具之一:可替代官方实现的 Rust 版 Android Debug Bridge(ADB) 主机端程序。编译产出单一 adb 可执行文件,wire format、smart-socket 协议、CLI 参数解析与错误文案均对齐 AOSP packages/modules/adb——已连接官方 adb server 时可直接复用其设备能力,否则自动启动内置 server,对现有脚本和 IDE 完全透明。
核心特性
- 无缝替换官方
adb:smart-socket 长度前缀协议、OKAY/FAIL状态解析、apacket 头部编解码(magic 校验、checksum 兼容)均按 AOSP 实现。 - CLI 行为对齐 AOSP:全局参数、usage 与错误文案、错误退出码与官方一致;错误前缀使用当前可执行文件名(Windows
adb.exe:、Unixadb:)。 - 单文件发行:libusb、AWS-LC、Brotli/LZ4/Zstd 等第三方 C 依赖全部以 vendored 源码静态编入,不依赖
AdbWinApi.dll、libusb-1.0.dll、VCRUNTIME140.dll等私有/运行库。 - 跨平台:Windows(x86_64 MSVC)、Linux(musl/gnu)、macOS;平台相关逻辑以
#[cfg(...)]隔离。
功能概览
设备连接与认证
- TCP transport:
host:connectCNXN/AUTH 握手,A_STLSTLS 1.3 升级。 - USB transport:vendored libusb 枚举注册,支持插拔重扫、
attach/detach生命周期、Windows 睡眠恢复后重扫。 - Emulator 自动扫描:本机
5555..5585奇数端口,ADB_EMU=0可禁用。 - mDNS 发现:
mdns check/services、known-host 过滤、断线退避自动恢复。 - 认证:自动生成
~/.android/adbkey、keygen/pubkey、ADB_VENDOR_KEYS扫描、RSA TOKEN 签名。 - 无线配对
pair:TLS 1.3 双向证书、SPAKE2、HKDF-SHA256、AES-128-GCM PeerInfo 交换,写入adb_known_hosts.pb。
Shell 与进程服务
shell:shell v2 stdout/stderr/exit code 解帧,交互模式支持 pty/raw、stdin packet、窗口尺寸变化和-e/-n/-T/-t/-x选项,旧设备回退 legacy。exec-in/exec-out、abb、logcat、bugreport(含--stream)、jdwp/track-jdwp、track-app。
文件传输(sync: v1/v2)
ls、push、pull、sync [PARTITION],按设备 feature 自动选择 v2LST2/LIS2/SND2/RCV2或 v1 协议。- 目录递归、空目录保留、符号链接处理、目录 mode/mtime best-effort 恢复。
- Brotli/LZ4/Zstd 压缩(
-z any|none|brotli|lz4|zstd)。
应用安装
install(streamed/legacy)、install-multiple、install-multi-package、uninstall;包管理 service 按官方优先级选择abb_exec:package/exec:cmd package/exec:pm。- fastdeploy:二进制 AndroidManifest 解析、
APKDumpprotobuf、ZIP central-directory MD5 边界FASTDEPLOYpatch、内嵌 deployagent 三种更新策略。 - incremental(
--incremental):.idsig解析、fs-verity 块按需传输、优先级块与 LZ4 压缩;不满足条件时按官方规则降级。
转发与网络
forward:hosttcp:/Unixlocalfilesystem:/Linuxlocalabstract:/vsock:监听,--list/--remove/--remove-all/--no-rebind,tcp:0动态端口回显。reverse:设备端reverse:*service,host 侧 per-transport allowlist 连接 TCP/Unix/vsock 目标。
设备控制与其他
reboot [TARGET]、reboot-bootloader、reboot-fastboot、tcpip、usb、root/unroot、remount、disable-verity/enable-verity。sideload、rescue、backup/restore、emu。devices [-l]、track-devices、wait-for-*、features、get-state/get-serialno、connect/disconnect、reconnect、server-status等完整 host 命令集。
构建
cargo build --release
产出单一 adb 可执行文件,直接放入 PATH 替换官方 adb 即可。
开源协议
MIT License