# 标准收发器离线升级包最小样例 本目录提供 `STANDARD_APP` 离线升级包的最小示例骨架,用于对齐打包方、后端和联调流程。 目录结构: ```text standard-app/ ├── manifest.json └── payload/ └── scripts/ └── orchestrator.sh ``` 说明: - 本目录中的 `manifest.json` 使用了占位符 `__PAYLOAD_SHA256__` - 真正打包前,需要先对 `payload.zip` 计算 `SHA-256`,再替换该字段 - `signature.sig` 不放在仓库示例里,必须由打包方使用“固件完整性密钥”私钥在打包阶段生成 推荐打包步骤: 1. 进入当前示例目录 2. 将 `payload/` 压缩为 `payload.zip` 3. 计算 `payload.zip` 的 `SHA-256` 4. 用实际摘要替换 `manifest.json` 中的 `__PAYLOAD_SHA256__` 5. 对 `manifest.json` 原始字节生成 `signature.sig` 6. 将 `manifest.json`、`signature.sig`、`payload.zip` 压缩成最终 `upgrade-package.zip` 参考命令: ```bash cd docs/examples/upgrade-package/standard-app zip -rq payload.zip payload PAYLOAD_SHA256="$(shasum -a 256 payload.zip | awk '{print $1}')" sed "s/__PAYLOAD_SHA256__/${PAYLOAD_SHA256}/g" manifest.json > manifest.generated.json # 这里改为公司正式签名工具,生成 manifest.generated.json 对应的 signature.sig # sign-manifest manifest.generated.json > signature.sig zip -j upgrade-package.zip manifest.generated.json signature.sig payload.zip ``` 联调时建议: - 先用这个目录骨架做一个 `STANDARD_APP` 预检样包 - `orchestrator.sh` 可以先只输出日志并返回 `0` - 等预检、建任务、执行链路跑通后,再替换成真实升级脚本