内部机制:OTA/A-B 运作原理
kernel/ota/ota_ab.{c,h} + ota_update.{c,h}。
槽位状态机
每个槽位包含:内核镜像、grub.cfg 配置段、状态(启动中 / 成功 / 失败)。启动标志位选择活动槽位;GRUB 菜单会读取该标志位(ISO 入口会查询它,强制入口会覆盖它)。
安装到非活动槽位
update install <slot> 将已验证包的内核写入非活动槽位并设置启动标志位。您将继续在当前槽位上运行直到重启 - 写入失败绝不会触及您的运行系统。
切换后的首次启动
新槽位以"启动中"状态启动;成功的用户空间启动会将其标记为"成功"(E2E 测试会验证此过程);如果它从未确认,标志位将回退 - 这加上手动强制入口,就是回滚机制。
验证链
清单(update.json)-> 包 SHA256 -> 签名。三者都必须通过,安装才会触及槽位;失败时会明确指出失败阶段。
内核内的 GRUB 有效载荷
tools/embed_grub.py 将 boot.img + grub-mkimage 构建的 core.img(磁盘上 grub.cfg 所需的模块集)作为生成的 C 数据嵌入内核中 - 这就是 install/abdisk/grub-install 能在不依赖外部文件的情况下写入可启动磁盘的方式(即"规则-9 自托管"接口面)。