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