Haplane

io.github.LeonTing1010由 GitHub 帳號 LeonTing1010 發布v0.4.1更新於 Oct 25, 2026

鸿蒙 HAP 签名部署 MCP:面向鸿蒙应用开发者,真机调试一键签装,也走华为邀测/上架。中性工具+可订阅源,本地 stdio。

已驗證STDIO僅桌面檔案與儲存開發者工具

概覽

AI 產生的概覽

本機 stdio MCP 伺服器,讓 AI 助理為鴻蒙 HAP 套件簽章、安裝到裝置並驗簽,還能搜尋已訂閱的 HAP 來源。

可以做什麼
對 HAP 套件簽章、安裝與驗簽,並提供一鍵部署:連線裝置、讀取 UDID 與套件名稱、簽章、安裝、驗簽,遇到已知錯誤會自動解除安裝重裝或降級權限。列出已連線裝置並讀取裝置 UDID。在已訂閱的 registry 來源中搜尋 HAP 資源,並從上游下載、校驗後簽章安裝。產生 OpenHarmony 本機自簽材料,或在簽章前變更套件名稱。自我檢查工具鏈與簽章材料,並查詢 AGC 應用狀態或唯讀的設定計畫。
適用情境
適合鴻蒙應用開發者,希望由助理驅動簽章與實機偵錯安裝流程,或從訂閱來源下載並安裝 HAP,而不必手動拼湊 hvigorw、hap-sign-tool 與 hdc 指令。
執行需求
透過 npx 或 node 在本機執行,需要 Node 18 以上。需要華為 SDK 工具 hdc、hap-sign-tool、java 與 hvigorw;實機或上架簽章還需華為開發者帳號與 AGC。設定與密碼來自 HAP_DEPLOY_CONFIG 指向的設定檔及 .env 檔;存取 AGC 使用 AGC_CLIENT_ID 與 AGC_CLIENT_SECRET 或 AGC_TOKEN。安裝需裝置開啟開發者模式並啟用 USB 或無線偵錯。
安裝前請注意
會在已連線裝置上安裝、解除安裝並重新簽章應用程式,還可能移除權限或變更套件名稱以強制安裝,改名會破壞應用程式身分,僅限側載或自測使用。簽章金鑰與金鑰庫密碼從 HAP_KEY_PWD、HAP_KEYSTORE_PWD 等環境變數讀取,AGC 憑證來自 AGC_CLIENT_ID 與 AGC_CLIENT_SECRET。只應使用自己擁有或已獲授權的裝置與帳號;本機自簽僅對模擬器與 OpenHarmony 有效,純血鴻蒙實機需 AGC 材料。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Haplane,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

HapLane

鸿蒙 HAP 一键签名 · 调试 · 部署 —— CLI + MCP,agent 可驱动。 封装华为官方工具链(hvigorw / hap-sign-tool / hdc),把散在文档里的命令拼成一条可脚本、可 --dry-run、可让 AI 调用的链。零运行时依赖(纯 Node stdlib)。

开源 MIT · 不破解 · 不逆向 · 签名走你自己的 AGC 凭据。

装

bash
npm i -g haplane          # 已上 npm,国内把 registry 设成 npmmirror 更快# 或从 Gitee Release 直连下单文件(网络拉不动 npm 时):#   https://gitee.com/LeonTing1010/haplane/releases

接入 MCP(挂进你的 AI)

HapLane 是标准 stdio MCP server(JSON-RPC 2.0,协议 2024-11-05)。粘一段配置就接上,支持 Claude Code / Cursor / Cline / DevEco Code 等任意 MCP 客户端。

json
{  "mcpServers": {    "haplane": {      "command": "npx",      "args": ["-y", "-p", "haplane", "haplane-mcp"]    }  }}

国内网络拉不动 npm 时,下载 haplane-mcp.mjs 放本地,改成 "command": "node", "args": ["/你的路径/haplane-mcp.mjs"]。

接上后在 AI 里直接说:「把 ./app.hap 签名装到我手机上」——agent 自己调 deploy_to_device,撞 system 权限自动降级重装,装完验签。

13 个 MCP 工具

HapLane 是中性工具,自身不内嵌任何应用内容。 可搜可装的条目来自你订阅的源(registry index.json,apt/sources.list 模型);默认订阅官方源、可退订。工具指向上游权利人官方发布位,不托管/不转存二进制。详见 分发合规边界。

工具作用
deploy_to_device核心编排:连设备 → 取 UDID → 读包名 → 签名 → 装机 → 验签,一步到位。app:<id> 从订阅源解析→上游拉取直接装;撞 9568332 签名不一致自动卸旧重装;撞 9568289 权限被拒自动降级(逐个剥掉被拒权限重签重装,实测 3 连剥后装上)
doctor自检工具链(hvigorw/java/hap-sign-tool/hdc)与签名材料是否就位
hdc_devices列联机设备
search_hap在你订阅的源里搜 HAP 资源(可多源,结果带 registryId 标来源):非 discoveryOnly 条目可直接 deploy_to_device{app:id} 从上游拉 + sha256 校验 + 签装 + HAP Store 开放接口(只发现给源站链接,不代下不转存不绕登录)
list_sources列出当前订阅的 registry 源(只读);增删订阅走 CLI haplane source add/remove/reset
hdc_udid取设备 UDID(真机 debug 签名 / Profile 绑定所需)
signhap-sign-tool sign-app 签名
installhdc install -r 装到设备
verifyhap-sign-tool verify-app 验签
gen_signing_material生成 OpenHarmony 本地自签材料(绑包名 + UDID)
rename_bundle包名全局占用时改 HAP 的 bundleName 再签(纯 Node 重打包)
agc_status用 client_credentials 查 AGC:appId / 设备用量 / 现有 Profile
agc_provision只读计划器:自检还差哪几步一次性配置

配置与密码走 HAP_DEPLOY_CONFIG 指向的配置文件 + .env(自动加载),不入 MCP 参数;stdout 只出协议 JSON,日志走 stderr。

也能命令行直接用

bash
haplane setup                 # 首次:自动探测 SDK + 生成配置与 .env 模板haplane doctor                # 体检工具链与签名材料haplane device                # 列设备 + 打印 UDIDhaplane source list           # 看订阅了哪些源(默认官方源,可 add/remove/reset)haplane source add <url>      # 订阅一个 registry 源(index.json URL)haplane search 浏览器          # 在订阅源里搜:可装条目直接装,discoveryOnly/HAP Store 给源站链接haplane deploy --app linysbrowser   # 从订阅源解析 → 上游拉 → sha256 校验 → 签名 → 装机 → 验签haplane deploy --in app.hap   # 对现成 HAP:签名 → 装机 → 验签haplane deploy                # 从源码工程全链:hvigorw 打包 → 签名 → 装机 → 验签haplane deploy --in app.hap --target <设备>   # 多台设备时指定装哪台(设备键用 device 命令看)haplane sign|install|verify --in app.hap   # 单步执行

全局:--config <path> · --dry-run(只打印命令不真跑,无真机也能看全链)· --verbose · --in <hap> · --target <设备>

配置与密码

复制 hap-deploy.config.example.json 为 hap-deploy.config.json,填 SDK 路径 + 签名材料路径。密码只从环境变量读,绝不入配置 / 日志:

bash
# 写进 .env(自动加载,免 export)HAP_KEY_PWD=***HAP_KEYSTORE_PWD=***

认证:三条路,选最白那档

给 AGC 打交道有三种方式,推荐机器密钥:

  • 🟢 client_credentials 机器密钥(推荐):AGC 控制台铸 client_id / secret → 换 Bearer token。无交互登录、可吊销、可审计。凭据走 env AGC_CLIENT_ID + AGC_CLIENT_SECRET(或直接 AGC_TOKEN)。
  • 🟡 deveco login 的 cookie 会话:只连 DevEco AI 助手,根本不碰 AGC,与签名无关。
  • 🔴 寄生会话(抓登录 session 冒充调网页 API):不可审计,本工具不用。

关键坑:请求头 client_id 必须匹配 token 的 sub,否则 401。

老实说:它不做什么 · 前提

不做

  • 不破解、不绕过签名——只帮你把该走的流程走顺
  • 只处理你自己或已授权的设备 / 账号
  • 不碰纯血鸿蒙真机的商用根:真机走你自己的 AGC 材料

前提

  • 华为开发者账号 + AGC(真机 / 上架签名要)
  • 华为 SDK:hdc / hap-sign-tool / java(各平台官方版都有,几 G,华为官网装)
  • Node ≥ 18;macOS / Windows / Linux 都行

签名的物理约束(必须知道)

  • 纯血鸿蒙真机的信任只有 AGC 能发:证书 / Profile 须链到华为商用根。本工具是「接你 AGC 材料 + 自动化签装验」的适配器,不凭空造信任。
  • 模拟器 / OpenHarmony 设备可用 SDK 自带的 OpenHarmony 测试证书本地自签(OpenHarmony.p12 公开密码 123456)——但只对模拟器 / OpenHarmony 有效,纯血真机拒(9568332 sign info inconsistent)。verify 成功不等于真机能装。
  • debug 签名要先 hdc 连真机取 UDID(profile 绑该机 UDID);手机需开发者模式 + USB / 无线调试并弹窗授权。
  • 同包名换签名覆盖装会撞 9568332 → 先 hdc uninstall 再装(deploy_to_device 已自动处理)。
  • 包名被占(如装已上架 app 撞 205339064)→ rename_bundle 改名再签(⚠️ 改名破坏应用身份,仅侧载 / 自测用)。

已验证

DevEco HarmonyOS 模拟器上,MCP deploy_to_device 五步全绿:

hdc_devices ✓ → hdc_udid ✓ → sign ✓ → install ✓ → verify ✓   (overall ok:true / installed:true / verified:true)

签名走本地 OpenHarmony 自签;纯血真机换 AGC 材料填进同一 config.signing 即走真机路。

License

MIT

來源:README.md,提交 bf7da41

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.4.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分