用于在 HarmonyOS 电脑上连接管理手机、平板和电脑,查看日志文件并签名安装任意 HAP。项目内置 hdc,支持 USB/无线设备管理、应用与沙箱操作、证书申请及命令行工具 hda。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 |
鸿蒙调试助手(HDA)
在 HarmonyOS 电脑上管理手机、平板和这台电脑本身的调试工具:连接设备、管理应用、浏览文件、看日志、截图,以及签名并安装任意 HAP 或应用包(.app)。
功能
- 设备连接:USB 直连(内置官方 hdc + libusb),或无线调试(
IP:端口);同一台设备的 USB 与无线连接自动合并,USB 在线时优先走 USB。 - 概览:型号、系统版本、存储与内存、屏幕预览,重启 / 关机。
- 应用:应用列表与详情(版本、权限说明、签名类型、运行状态),启动、停止、清缓存、卸载;调试应用可浏览、导出、导入沙箱数据。
- 文件 / 日志 / 截图:设备文件浏览与收发,hilog 实时查看与导出,截图。
- 安装应用包:双击
.hap或.app即可签名安装到本机,或安装到所选设备。.app是含多个模块的应用包:拆出各模块分别签名,按原pack.info回包后再对整个 APP 签一次,只装支持目标设备类型的模块(含应用内共享库)。带 hnp(命令行工具)的 HAP 也支持,会连同其中的工具一起安装。安装前列出权限与携带的 hnp。签名材料用华为开发者账号自动申请调试证书与 Profile,并在本地复用;签名页可管理云端证书与已登记设备。 - 托盘:显示 hdc 状态,选择双击
.hap/.app时的安装目标。
系统要求
- HarmonyOS 电脑(PC / 2in1),API 26 及以上,已开启开发者模式。
- 华为开发者账号(用于申请调试证书)。
- 管理手机 / 平板时,设备需开启开发者模式与 USB 调试或无线调试。
安装
在电脑的终端里运行:
wget -O - "https://api.gitcode.com/api/v5/repos/autoend/hdassistant/raw/install.sh?ref=dist" | sh
脚本会下载命令行工具 hda,登录华为开发者账号(自动打开浏览器),用一次性调试证书为鸿蒙调试助手签名,再用系统的 bm 安装;临时证书与工具在结束后删除。
如果这台电脑还没有登记到开发者账号,安装过程中会提示打开「设置 > 系统 > 开发者选项 > 无线调试」并输入显示的端口,登记一次即可,之后不再询问。
命令行工具 hda
hda 为任意 HAP 或 .app 签名并安装。安装鸿蒙调试助手后,hda 随应用以 hnp 形式安装到 /data/service/hnp/bin,终端里直接可用。鸿蒙调试助手在运行(包括最小化到托盘)时,hda 使用应用里的签名材料与本机 UDID,不需要再登录。
单独获取(hda 是入口脚本,hda-cli-aarch64 是它调用的程序,两者放在同一目录):
mkdir -p ~/hda && cd ~/hda
wget -O hda "https://api.gitcode.com/api/v5/repos/autoend/hdassistant/raw/hda?ref=dist"
wget -O hda-cli-aarch64 "https://api.gitcode.com/api/v5/repos/autoend/hdassistant/raw/hda-cli-aarch64?ref=dist"
chmod 755 hda hda-cli-aarch64
用法:
hda install <hap|app|url> # 签名并安装到这台电脑
hda install <hap|app> --target <ip:端口> # 经 hdc 安装到其他设备
hda install <hap|app> --account # 不用应用的签名材料,登录账号并用临时证书签名(可换账号)
hda install <hap|app> --keep-signed <path> # 只签名,签名后的包(.hap / .app)保存到 path
hda certs [--delete <id|debug>] # 列出 / 删除账号的云端证书(调试证书有数量上限)
其他选项:--udid <udid>(为指定设备签名)、--acl <权限>(额外加入 ACL)、--no-browser、-v。
.app 会拆出各模块分别签名,再按原 pack.info 回包并对整个 APP 签一次,最后只交付一个签名后的 .app(本机与远程都只推这一个包)。APP 包自身不过一次签名会报 9568448,模块没签名则报 9568320。只支持应用内共享库(HSP),应用间 HSP 不支持。
bm 只能由终端的 shell 直接调用(经自签名程序派生就会失败),所以安装由 hda 脚本调用 bm,不要直接用 hda-cli-aarch64 安装到本机。
从源码构建
需要 HarmonyOS 电脑上的 DevEco 命令行工具(含 OpenHarmony NDK、hvigor)以及 perl、make、python3。
scripts/build-openssl.sh # 一次:生成 Native/third_party/openssl 下的静态库与头文件
scripts/build-hda-cli.sh # 构建命令行工具(HAP 里的 hnp 要用到),产物在 build/hda-cli
hvigorw assembleHap --mode module -p product=default # 构建 HAP(未签名,自动注入 hnp/arm64-v8a/hda.hnp)
HDA_HAP=entry/build/default/outputs/default/entry-default-unsigned.hap scripts/build-hda-cli.sh # 整理发布文件到 build/hda-cli/dist
build-openssl.sh 会关掉 OpenSSL 的 SVE 检测:HarmonyOS 电脑上它会误判 CPU 支持 SVE,执行时非法指令崩溃。
构建出的 HAP 未签名,用 build/hda-cli/dist/hda install entry/build/default/outputs/default/entry-default-unsigned.hap 签名安装。
鸿蒙调试助手申请了几项仅对调试工具开放的受限权限(如 ohos.permission.ALLOW_USE_BM、ohos.permission.READ_WRITE_USB_DEV),hda 会自动把它们写进调试 Profile 的 ACL。
目录
| 目录 | 内容 |
|---|---|
entry/ |
应用(ArkTS 界面与服务,src/main/cpp 为 NAPI 与 hdc 子进程) |
Native/hda_core |
共享 C++ 核心:开发者账号登录、AGC 接口、HAP 解析 |
Native/hda_cli |
命令行工具 |
Native/hdc |
官方 hdc 主机端(嵌入版) |
Native/third_party |
第三方依赖,见其中的 README |
scripts/ |
安装、构建脚本 |
第三方组件
hdc(Apache-2.0)、libusb(LGPL-2.1,以独立动态库提供)、OpenSSL(Apache-2.0)、hapsigntool(Apache-2.0)、securec(MulanPSL-2.0)、LZ4(BSD-2-Clause)、bzip2。详见 Native/third_party/README.md。
许可证
Apache-2.0,见 LICENSE。第三方组件各自遵循其许可证。
项目介绍
用于在 HarmonyOS 电脑上连接管理手机、平板和电脑,查看日志文件并签名安装任意 HAP。项目内置 hdc,支持 USB/无线设备管理、应用与沙箱操作、证书申请及命令行工具 hda。
定制我的领域