Muka Rust HDC 是本站 Muka Rust 系列工具之一:华为 HDC(HarmonyOS Device Connector) 主机工具的 Rust 重实现。HDC 的源码已在 OpenHarmony 开源(developtools_hdc 仓库),本项目基于该开源源码,以完全相同的线上协议用 Rust 重写了主机端(以及一个守护进程桩),编译产出单一 hdc 可执行文件,可直接替代官方程序连接 HarmonyOS / OpenHarmony 设备,已在 VID 0x12D1 / PID 0x1101 的真实设备上验证。协议版本对齐官方 HDC 3.2.0e

功能特性

  • 双传输方式:USB(基于 libusb,Windows 使用 WinUSB)与 TCP(hdc tconn <ip:port>),支持 UDP 设备发现(hdc discover),可选 AES-128-GCM PSK 加密通道。
  • 认证与心跳:RSA 3072 位三方握手(密钥存于 ~/.harmony/hdckey),「始终信任」签名流程,内置心跳保活。
  • Shell:单条命令 hdc shell <cmd> 与交互式 PTY(hdc shell)。
  • 文件传输hdc file send / hdc file recv,511 KB IO 缓冲。
  • 应用管理hdc install 支持 .hap.app App Pack 自动解包依次安装;hdc uninstall 卸载。
  • 端口转发fport / rport 支持 tcp:localabstract:localreserved:localfilesystem:dev:jdwp:pidark:pid@package(DevEco Studio 的 ArkTS 调试)。
  • 设备控制target mounttarget boottarget reconnectsmode
  • 诊断hilogbugreportjpid / track-jpid(JDWP)。
  • Flashdupdateflasheraseformat 主机侧协议。
  • 多设备-t <key> 按 USB 序列号或 ip:port 选择目标,仅一台设备时自动选择。
  • DevEco Studio 兼容hdc -m127.0.0.1:8710 同时提供 Rust 客户端协议与 IDE 的 48 字节 OHOS HDC 握手 + 长度前缀命令帧,可直接作为 DevEco Studio 的后端服务。

工作区结构

Crate作用
hdc主机工具:命令行客户端 + 后台服务(hdc -m
hdcd守护进程桩(面向 OpenHarmony 目标)
hdc-protocol共享协议原语(数据包帧、序列化、加密)

仓库 docs/ 目录附有基于 OpenHarmony 开源 HDC 源码整理的协议参考文档:客户端↔服务端 Socket 协议(含 DevEco Studio 握手)与 USB 传输说明(WinUSB 端点与超时参数)。

构建与使用

需要较新的 stable Rust 工具链,Windows 上使用 MSVC 工具链;libusb v1.0.27 通过 libusb1-sys 内置编译,无外部动态库依赖。

cargo build --release --bin hdc
hdc -m                          # 启动后台服务(同时为 DevEco Studio 提供服务)
hdc list targets -v             # 枚举设备
hdc shell echo hello            # 执行单条 shell 命令
hdc shell                       # 交互式 PTY shell
hdc file send test.txt /data/local/tmp/test.txt
hdc file recv /data/local/tmp/test.txt recv.txt
hdc install entry-default-signed.hap

Git Bash 路径注意事项(Windows)

Git Bash 会自动转换 Unix 风格的远程路径,需使用双斜杠禁用转换:

# 错误:/data/local/tmp 会被转换为 C:/Program Files/Git/data/local/tmp
hdc file send test.txt //data//local//tmp//test.txt

注意:请勿用本仓库构建的二进制覆盖官方的 hdc.exe

开源协议

MIT License