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,.appApp Pack 自动解包依次安装;hdc uninstall卸载。 - 端口转发:
fport/rport支持tcp:、localabstract:、localreserved:、localfilesystem:、dev:、jdwp:pid、ark:pid@package(DevEco Studio 的 ArkTS 调试)。 - 设备控制:
target mount、target boot、target reconnect、smode。 - 诊断:
hilog、bugreport、jpid/track-jpid(JDWP)。 - Flashd:
update、flash、erase、format主机侧协议。 - 多设备:
-t <key>按 USB 序列号或ip:port选择目标,仅一台设备时自动选择。 - DevEco Studio 兼容:
hdc -m在127.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