cisd/docs/examples/upgrade-package/standard-app/README.md

1.6 KiB

标准收发器离线升级包最小样例

本目录提供 STANDARD_APP 离线升级包的最小示例骨架,用于对齐打包方、后端和联调流程。

目录结构:

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.zipSHA-256
  4. 用实际摘要替换 manifest.json 中的 __PAYLOAD_SHA256__
  5. manifest.json 原始字节生成 signature.sig
  6. manifest.jsonsignature.sigpayload.zip 压缩成最终 upgrade-package.zip

参考命令:

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
  • 等预检、建任务、执行链路跑通后,再替换成真实升级脚本