
Security News
Ruby's Bundler 4.0.18 Extends Cooldown to bundle lock and bundle cache
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.
鸿蒙 HAP 签名部署 CLI + MCP:面向鸿蒙应用开发者,真机调试一键签装,也走华为邀测 / AppGallery 上架。agent 可驱动,harness-agnostic。
鸿蒙 HAP 一键签名 · 调试 · 部署 —— CLI + MCP,agent 可驱动。 封装华为官方工具链(
hvigorw/hap-sign-tool/hdc),把散在文档里的命令拼成一条可脚本、可--dry-run、可让 AI 调用的链。零运行时依赖(纯 Node stdlib)。开源 MIT · 不破解 · 不逆向 · 签名走你自己的 AGC 凭据。
haplane · Gitee:https://gitee.com/LeonTing1010/hap-deploy · GitHub:https://github.com/LeonTing1010/hap-deploy-clinpm i -g haplane # 已上 npm,国内把 registry 设成 npmmirror 更快
# 或从 Gitee Release 直连下单文件(网络拉不动 npm 时):
# https://gitee.com/LeonTing1010/haplane/releases
HapLane 是标准 stdio MCP server(JSON-RPC 2.0,协议 2024-11-05)。粘一段配置就接上,支持 Claude Code / Cursor / Cline / DevEco Code 等任意 MCP 客户端。
{
"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 权限自动降级重装,装完验签。
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 绑定所需) |
sign | hap-sign-tool sign-app 签名 |
install | hdc install -r 装到设备 |
verify | hap-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。
haplane setup # 首次:自动探测 SDK + 生成配置与 .env 模板
haplane doctor # 体检工具链与签名材料
haplane device # 列设备 + 打印 UDID
haplane 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 路径 + 签名材料路径。密码只从环境变量读,绝不入配置 / 日志:
# 写进 .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,与签名无关。关键坑:请求头
client_id必须匹配 token 的sub,否则 401。
不做
前提
hdc / hap-sign-tool / java(各平台官方版都有,几 G,华为官网装)OpenHarmony.p12 公开密码 123456)——但只对模拟器 / OpenHarmony 有效,纯血真机拒(9568332 sign info inconsistent)。verify 成功不等于真机能装。9568332 → 先 hdc uninstall 再装(deploy_to_device 已自动处理)。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 即走真机路。
MIT
FAQs
鸿蒙 HAP 签名部署 CLI + MCP:面向鸿蒙应用开发者,真机调试一键签装,也走华为邀测 / AppGallery 上架。agent 可驱动,harness-agnostic。
The npm package haplane receives a total of 265 weekly downloads. As such, haplane popularity was classified as not popular.
We found that haplane demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.

Company News
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.