鸿蒙PC上hdc不可用?我们的修复方案与二进制分发
·
鸿蒙 PC 上 HDC 不可用?我们的修复方案与二进制分发
省流:npm i -g hdcc (仅限aarch64)
官方 HDC 二进制在鸿蒙 PC 上无法正常运行。我们对其做了四处关键修改,编译出可在 PC 端稳定工作的版本,并通过 npm 包 hdcc 分发。
问题
官方 HDC 直接拿到鸿蒙 PC 上运行,会遇到:沙箱路径无权限、与 IDE 内置 HDC 服务争抢 PID / 密钥、依赖企业管理服务等问题,导致 server 起不来或设备连不上。
四处修改
1. UDS 套接字移到沙箱 cache 目录
HDC client 与 server 通过 Unix Domain Socket 通信。默认路径在鸿蒙 PC 沙箱下不可写,我们将其重定向到应用沙箱的 cache 目录,确保两端都能正常访问。
2. 密钥与 PID 文件改名,规避 IDE 竞争
| 项目 | 官方路径 | 我们的路径 |
|---|---|---|
| 密钥目录 | ~/.harmony | ~/.android |
| PID 文件 | ~/.HDCServer.pid | ~/.ADCServer.pid |
DevEco Studio 内置的 HDC 会使用官方路径。如果我们的实例也写同一份 PID 文件和密钥目录,两个 server 会互相覆盖、反复重启。改用独立路径后,两者完全隔离,互不干扰。
3. 不编译 huks,stub 掉企业管理相关调用
官方 HDC 依赖 huks(鸿蒙统一密钥库服务)做密钥操作,鸿蒙 PC 不提供该服务,运行时直接加载失败。我们在编译时排除 huks 模块,并对企业管理(MDM)相关的调用做 stub 处理,消除这部分运行时依赖。
4. USB 连接完整可用
以上修改不影响 USB 通路。适配后 hdc list targets 可正常枚举通过 USB 连接的设备,安装、调试、文件传输全部正常。
分发
修改后的二进制通过 npm 包 hdcc 发布,按平台用 optionalDependencies 分发,postinstall 建立符号链接,执行时无 Node.js 中间层。
npm install -g hdcc
hdc list targets
包地址:https://www.npmjs.com/package/hdcc
更多推荐

所有评论(0)