鸿蒙 PC 上 HDC 不可用?我们的修复方案与二进制分发

省流:npm i -g hdcc (仅限aarch64)

官方 HDC 二进制在鸿蒙 PC 上无法正常运行。我们对其做了四处关键修改,编译出可在 PC 端稳定工作的版本,并通过 npm 包 hdcc 分发。

问题

官方 HDC 直接拿到鸿蒙 PC 上运行,会遇到:沙箱路径无权限、与 IDE 内置 HDC 服务共享锁文件、依赖企业管理服务等问题,导致 server 起不来或设备连不上。

四处修改

1. UDS 套接字移到沙箱 cache 目录

HDC client 与 server 通过 Unix Domain Socket 通信。默认路径在鸿蒙 PC 沙箱下不可写(如果是hishell则可写,但最好不要用同一个),我们将其重定向到应用沙箱的 cache 目录,确保两端都能正常访问。

2. 密钥与 PID 文件改名,规避 IDE 竞争

项目官方路径我们的路径
密钥目录~/.harmony~/.android
PID 文件~/.HDCServer.pid~/.ADCServer.pid

DevEco Studio 内置的 HDC 会使用官方路径。如果我们的实例也写同一份 PID 文件和密钥目录,他们会以为自己已经启动了server,带密码的密钥会干扰连接,这种假安全纯属搞笑。

3. 不编译 huks,stub 掉企业管理相关调用

官方 HDC 依赖 huks(鸿蒙统一密钥库服务)做密钥操作,鸿蒙 PC 提供该服务但我们根本不使用。我们在编译时排除 huks 模块,并对企业管理相关的调用做 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

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐