# zy_home_vibe_coding_hardware **Repository Path**: juning-code/zy_home_vibe_coding_hardware ## Basic Information - **Project Name**: zy_home_vibe_coding_hardware - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-13 - **Last Updated**: 2026-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 知言家 AI Vibe Coding 伴侣固件发布 本目录用于生成公开 OTA 发布仓库的内容。公开仓库不包含固件源代码、私钥、AES key 或明文 App 镜像。 ## 发布入口 | 文件 | 用途 | |------|------| | `ota/index..json` | 驱动端默认 OTA channel 索引,例如 `ota/index.stable.json` | | `latest.json` | legacy 自动发现入口,继续保留给旧驱动或手工检查使用 | 默认 `PublishMode=Release`:索引 URL 固定指向 Gitee Release Asset: ```text https://gitee.com/juning-code/zy_home_vibe_coding_hardware/releases/download//manifest.json ``` 脚本会同步 `latest.json`、`ota/index..json` 和归档副本到本地发布仓库,同时生成需要上传的三件套。正式发布必须把同一批 `manifest.json`、`manifest.sig` 和 `.app.enc` 上传到同名 Gitee Release。 只有显式使用 `-PublishMode RepoReleaseDir` 时,索引才指向本发布仓库的 raw release 目录: ```text https://gitee.com/juning-code/zy_home_vibe_coding_hardware/raw/master/releases//manifest.json ``` 不要混用发布方式:默认 `Release` 与显式 `GiteeReleaseAsset` 等价,都必须上传匹配的 Release Asset;`RepoReleaseDir` 只通过 git push 发布 raw 文件。 ## 更新流程 1. 驱动端读取 `ota/index..json`,旧驱动可读取 `latest.json`。 2. 驱动端下载 `manifest.json` 和 `manifest.sig`。 3. 驱动端按 manifest 原始字节校验 Ed25519 签名。 4. 驱动端下载 `*.app.enc` 并校验 hash。 5. 驱动端本地解密固件包。 6. 设备 Loader 在应用更新前校验版本、型号、回滚保护和镜像 hash。 `manifest.sig` 签的是 `manifest.json` 原始字节。重新打包同一个版本也会因为 AES-GCM nonce 变化而生成新的 manifest,所以 manifest、manifest.sig、`*.app.enc` 必须来自同一次打包输出。 ## 发布命令 日常稳定发布,默认生成 Gitee Release Asset 地址和上传三件套: ```powershell tools\package-firmware-release.cmd 1.1.0 ` -SecurityVersion 1 ``` 只有明确要改用发布仓库 raw release 目录时: ```powershell tools\package-firmware-release.cmd 1.1.0 ` -SecurityVersion 1 ` -PublishMode RepoReleaseDir ` -Channel stable ``` 默认流程必须先上传 Gitee Release Asset,再 push 发布仓库索引。两者完成后,回到固件源码仓库执行 `tools\package-firmware-release.cmd <版本> -SkipPackage -SkipPublish -RemoteVerify`,只读校验远端 hash 与 Ed25519 签名。