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:、Unix adb:)。
  • 单文件发行:libusb、AWS-LC、Brotli/LZ4/Zstd 等第三方 C 依赖全部以 vendored 源码静态编入,不依赖 AdbWinApi.dlllibusb-1.0.dllVCRUNTIME140.dll 等私有/运行库。
  • 跨平台:Windows(x86_64 MSVC)、Linux(musl/gnu)、macOS;平台相关逻辑以 #[cfg(...)] 隔离。

功能概览

设备连接与认证

  • TCP transport:host:connect CNXN/AUTH 握手,A_STLS TLS 1.3 升级。
  • USB transport:vendored libusb 枚举注册,支持插拔重扫、attach/detach 生命周期、Windows 睡眠恢复后重扫。
  • Emulator 自动扫描:本机 5555..5585 奇数端口,ADB_EMU=0 可禁用。
  • mDNS 发现:mdns check/services、known-host 过滤、断线退避自动恢复。
  • 认证:自动生成 ~/.android/adbkeykeygen/pubkeyADB_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-outabblogcatbugreport(含 --stream)、jdwp/track-jdwptrack-app

文件传输(sync: v1/v2)

  • lspushpullsync [PARTITION],按设备 feature 自动选择 v2 LST2/LIS2/SND2/RCV2 或 v1 协议。
  • 目录递归、空目录保留、符号链接处理、目录 mode/mtime best-effort 恢复。
  • Brotli/LZ4/Zstd 压缩(-z any|none|brotli|lz4|zstd)。

应用安装

  • install(streamed/legacy)、install-multipleinstall-multi-packageuninstall;包管理 service 按官方优先级选择 abb_exec:package / exec:cmd package / exec:pm
  • fastdeploy:二进制 AndroidManifest 解析、APKDump protobuf、ZIP central-directory MD5 边界 FASTDEPLOY patch、内嵌 deployagent 三种更新策略。
  • incremental(--incremental):.idsig 解析、fs-verity 块按需传输、优先级块与 LZ4 压缩;不满足条件时按官方规则降级。

转发与网络

  • forward:host tcp:/Unix localfilesystem:/Linux localabstract:/vsock: 监听,--list/--remove/--remove-all/--no-rebindtcp:0 动态端口回显。
  • reverse:设备端 reverse:* service,host 侧 per-transport allowlist 连接 TCP/Unix/vsock 目标。

设备控制与其他

  • reboot [TARGET]reboot-bootloaderreboot-fastboottcpipusbroot/unrootremountdisable-verity/enable-verity
  • sideloadrescuebackup/restoreemu
  • devices [-l]track-deviceswait-for-*featuresget-state/get-serialnoconnect/disconnectreconnectserver-status 等完整 host 命令集。

构建

cargo build --release

产出单一 adb 可执行文件,直接放入 PATH 替换官方 adb 即可。

开源协议

MIT License