文档

签名原理、安装流程与开发文档

知识库

为什么鸿蒙应用不能像 F-Droid 那样托管

这是整个项目最常被问到的问题。答案不是"我们不愿意托管",而是技术上做不到。

F-Droid 能分发 APK,靠的是用自己的密钥重签名——Android 不要求安装包必须由厂商证书签名,所以任何人都能替换签名。而 HarmonyOS NEXT 要求证书由华为签发,且 Profile 与设备 UDID 一一绑定,一张 Profile 只能装一台机器。

签名体系四要素

理解鸿蒙签名需要先分清这四个概念。

概念格式作用谁签发
密钥.p12非对称加密公私钥对,用于签名你自己生成
证书.cer数字证书,证明签名者身份华为 AGC
Profile.p7b声明包名、权限、允许安装的设备列表华为签发
调试证书—允许安装调试应用向 AGC 申请
两个直接后果: ① 无法预签名分发——任何人签好的包只对特定设备有效,换台机器就装不上; ② 无法集中托管——替所有人签名需要为每台设备单独签一份,既不现实也不该做。

三条实际可用的分发路径

并非无路可走,只是每条都有明确门槛。

路径一 · 用户自签本站推荐

上游提供未签名的 .hap(文件名常含 unsigned),用户用自己的华为开发者账号生成证书与 Profile,本地签名安装。

需要开发者账号;hap-installer 可手机端完成,无需 PC

路径二 · 非公开发布

通过 AGC 以"非公开发布"上架应用市场。可通过链接发现,但不出现在分类、推荐、榜单或搜索结果中,同时保留自动升级。

若应用满足此条件,其实不该进索引——请优先推广这种方案

路径三 · 企业应用严格受限

需邮件申请企业应用发布证书。仅支持鸿蒙电脑专业版/企业版擎云系列设备,每账号仅 1 个证书,仅支持 Stage 模型。

企业内部工具的合规路径,不适合作为公开索引站的分发方式

安装侧三个必备开关

无论走哪条路径,用户侧都需要完成这三步。

  1. 开启开发者模式 — 设置 → 关于本机 → 连点版本号 7 次
  2. 开启 USB 调试 — 设置 → 系统和更新 → 开发者选项
  3. 注册设备 UDID — 在 AGC 中登记,Profile 才会包含这台设备

第 3 步最常被忽略,导致"签名成功但安装失败"。完整排查表见 故障排查手册。

生态背景

这个项目不是凭空出现的。

项目定位现状
F-OH(自由开鸿) OpenHarmony 平台的 FOSS 应用中心,明确以 F-Droid 为 inspiration,client / data / server 三层架构 2024-12 停止维护
Obtainium Android 侧"从源头更新"客户端,产品哲学参考 活跃
auto-installer PC 端侧载签名工具 活跃,3000+ stars

工具在演进,聚合层缺位。本项目补的就是这个位置。

官方参考

文档结论均可回溯到华为官方说明。

  1. 申请企业应用发布证书 — 企业证书的申请条件与限制
  2. In-house 应用发布指导和常见问题 — Deeplink 与描述文件规范
  3. HAP 应用程序包开发与使用 — 多 HAP 场景的签名一致性约束