获取发布版:发布了什么,以及如何校验
Mica OS 通过 micaoss/mica-build 的 GitHub Release 发布。全部可匿名获取:
不需要 token,也不需要登录镜像仓库。一个发布就是一个产品:
| 发布 | 标签 | 携带 |
|---|---|---|
| 产品发布 | <board>.<variant>.<YYYYMMDD-HHMM> |
mica-<board>.<variant>-<stamp>.img.gz、它的 .micaupd 归档、mica-build.lock、SHA256SUMS |
每个产品各自发布,所以没有可以作为入口的索引:一个产品的最新发布,就是以
<board>.<variant>. 开头的最新标签。
**同样的文件也在资源服务上。**发布流程会把每个发布推送过去(mica-build:README.md):
文件在 https://dl.res.micaos.dev/mica/<board>.<variant>/<stamp>/<asset>,旁边是这个发布
自己的 index.json,列出每个文件的大小与摘要;
更新根 https://res.micaos.dev/update/ 下的清单给出每个产品的当前发布。官网下载页和设备
读的就是这些;被管理员在那里删除的发布,两边都不再有。
status: shipped — evidence:
docs/reference/release-lock.md,mica-build:README.md,mica-build:boards/products.md
1. 有哪些东西可下载
Section titled “1. 有哪些东西可下载”每块板都是发布目标。它的产品有:uefi-x64、uefi-arm64、cx3576、s905x5m、
mini-x64 与 qemu-armhf 上默认的 <board>.basic;uefi-x64、uefi-arm64 与 cx3576 上带容器引擎的 <board>.full;以 Docker 为引擎的 uefi-x64.docker;以及
s905x5m.emmc-full 与 s905x5m.sd-full,该板分别用于 eMMC 和 SD 卡的带容器产品。其中哪些有发布,见
下载页;没有发布的产品没有可下载的东西,需要从源码构建
(构建指南)。dev 产品只在本地
构建、从不发布;没有 minimal 产品。
2026-10-21 这一轮发布了下列产品,全部带 core 0.0.3(core 集
core.general.20261021-2254):
| 产品 | 时间戳 | 内容 |
|---|---|---|
cx3576.full |
20261021-2257 |
systemd、容器、WiFi 与蓝牙:出厂接入点、BLE 配网 |
s905x5m.sd-full |
20261021-2318 |
同上,用于 SD 卡 |
s905x5m.emmc-full |
20261021-2335 |
同上,用于 eMMC |
uefi-x64.full |
20261021-2316 |
systemd、Podman,无无线电 |
uefi-x64.docker |
20261021-2338 |
systemd、Docker,无无线电 |
mini-x64.basic |
20261021-2317 |
OpenRC、管理平面与 SSH,无控制台 |
qemu-armhf.basic |
20261021-2319 |
OpenRC、管理平面与 SSH,无控制台 |
status: shipped — evidence:
mica-build:boards/products.md,mica-core:docs/mica-core.md
发布了的镜像不等于被启动过的镜像。cx3576 与 s905x5m 的产品没有任何自动流程会
启动它们,因为没有任何套件会启动产品的 FIT 镜像(板卡状态)。
每个 amd64
产品(uefi-x64.*、mini-x64.basic)都会在它的发布流程里被启动,uefi-arm64 的
产品有手工跑的 QEMU 记录(构建门第 4 节)。是发布
目标只意味着镜像被构建并发布,不是对硬件的断言
(支持层级)。
一个发布携带:
mica-<board>.<variant>-<stamp>.img.gz——出厂磁盘镜像,gzip 压缩。不上传裸.img。mica-<board>.<variant>-<stamp>.micaupd——完整更新归档,总是有。.root.micaupd与.kernel.micaupd——部分更新归档,当它们省略的组件自该产品上一个 发布以来没有变化时才有(更新包)。mica-build.lock与列出它的SHA256SUMS。
status: shipped — evidence:
mica-build:boards/products.md,docs/operate/updates.md,docs/hardware/README.md
2. 找到一个产品的最新发布
Section titled “2. 找到一个产品的最新发布”PRODUCT=uefi-x64.fullTAG=$(curl -fsSL "https://api.github.com/repos/micaoss/mica-build/releases?per_page=100" \ | jq -r --arg p "$PRODUCT." '[.[] | select(.draft == false and (.tag_name | startswith($p)))][0].tag_name')echo "$TAG" # uefi-x64.full.<YYYYMMDD-HHMM>GitHub API 按从新到旧列出发布。gh release list -R micaoss/mica-build 给出同一份列表。
status: shipped — evidence:
mica-build:README.md
3. 下载与校验
Section titled “3. 下载与校验”REL=https://github.com/micaoss/mica-build/releases/download/$TAGSTAMP=${TAG##*.}curl -fsSLO "$REL/SHA256SUMS"curl -fsSLO "$REL/mica-build.lock"curl -fsSLO "$REL/mica-$PRODUCT-$STAMP.img.gz"sha256sum -c SHA256SUMS # 列出的是 lockawk -F'\t' '$1 == "asset" && $5 == "mica-'"$PRODUCT-$STAMP"'.img.gz" {print $6 " " $5}' mica-build.lock \ | sha256sum -c - # lock 写明了镜像的 sha256校验链是 SHA256SUMS → lock → asset 行的 sha256 → 文件
(发布锁 1.2.2)。
status: shipped — evidence:
mica-build:src/release/scoped.ts,docs/reference/release-lock.md
4. 哪一步该核对哪个摘要
Section titled “4. 哪一步该核对哪个摘要”一份镜像有三处相互独立的陈述,在不同的地方核对:
SHA256SUMS只列出 lock;sha256sum SHA256SUMS是这个发布的信任哈希, 消费这个发布的 lock 引用的就是它。- lock 的
asset行写明压缩文件的摘要:终端窗口 awk -F'\t' '$1 == "asset" && $2 == "'"$PRODUCT"'"' mica-build.lock - OCI 层携带同一个文件,可匿名读取:层摘要等于
asset行的 sha256,它的mica.uncompressed-sha256与mica.uncompressed-size注解就是gzip -dc的产物:终端窗口 REF=$(awk -F'\t' '$1 == "bundle" && $2 == "'"$PRODUCT"'" && $3 == "image" {print $4}' mica-build.lock)T=$(curl -fsS "https://ghcr.io/token?scope=repository:micaoss/mica-build:pull&service=ghcr.io" | jq -r .token)curl -fsSL -H "Authorization: Bearer $T" \-H 'Accept: application/vnd.oci.image.manifest.v1+json' \"https://ghcr.io/v2/micaoss/mica-build/manifests/${REF##*@}" | jq '.layers'gzip -dc "mica-$PRODUCT-$STAMP.img.gz" | sha256sum
status: shipped — evidence:
mica-build:src/release/scoped.ts,docs/reference/release-lock.md
5. lock 讲了这个发布的什么
Section titled “5. lock 讲了这个发布的什么”lock 是一份 mica-lock v1 文件,写明发布的提交,以及进入它的每一项输入:板卡的池、
软件包与组件,mica-build-env、mica-system-base、mica-core、mica-pkgs、mica-podman 与 mica-docker 的
输入发布及其信任哈希,以及产品的签名部署、bundle 与资产
(发布锁 1.2.2)。
文件旁边的校验和只证明文件完整到达。让一份镜像可信的,是它里面的签名链 (发布签名)以及平台信任那个签名者;上面的哈希 是完整性的一半,不是真实性的一半。
status: shipped — evidence:
docs/reference/release-lock.md,docs/security/signing.md
6. 下一步
Section titled “6. 下一步”status: shipped — evidence:
docs/start/flashing.md,docs/operate/updates.md,docs/start/build.md,docs/releases/how-releases-work.md