🌱 AOSP OTA 移植实战 30 章 · 从入门到移植

📘 风格 · 清新活力
01
什么是OTA升级 · 三种模式 (AB/非AB/虚拟AB) · Android系统中的位置
02
Ubuntu配置 · Repo工具 · 源码下载同步 · 编译初始化
03
Boot/System/Vendor/Super · DTBO · VBMeta 镜像生成
04
AB Slot机制 · active/unactive切换 · boot_control HAL
05
Recovery模式 · cache分区 · 传统升级流程
06
SnapshotManager · Cow写时复制 · 与传统AB区别
07
ota_from_target_files · brillo_update_payload · payload生成
08
payload.bin结构 · manifest.json · metadata文件
09
Binder接口 · 内部状态机 · update_engine_client交互
10
下载 · 验证 · 写入 · 切换slot阶段
11
payload签名 · metadata签名 · 公钥嵌入 · 完整性校验
12
Recovery内核 · recovery.img · 菜单 · sideload模式
13
super.img · lpdump · lpmake · 分区表管理
14
压缩算法 · Cow压缩 · 空间节省原理
15
回滚机制 · bootctrl markBootSuccessful · crash recovery
16
update_engine日志 · recovery日志 · logcat · 错误码解读
17
BoardConfig.mk · device.mk · selinux策略 · init.rc
18
OTA server搭建 · checkForUpdate · fota XML配置
19
ota_from_target_files --incremental · 增量原理 · base/target匹配
20
全量参数 · payload大小控制 · 分发策略
21
压缩算法 · bloat分析 · 无用文件剔除 · 差分优化
22
设备型号识别 · ro.product.device · 匹配规则 · 灰度发布
23
模拟升级 · adb sideload · ota验证脚本 · 压力测试
24
AVB · vbmeta校验 · dm-verity · 启动链信任
25
persist分区 · userdata保护 · 升级后数据迁移
26
swap分区 · 流式升级 · 分块下载 · 内存占用控制
27
多语言recovery界面 · 字符编码 · 时区处理
28
无法开机 · 校验失败 · slot切换失败 · 空间不足
29
BoardConfig配置 · selinux策略 · 升级测试全流程
30
分区表调整 · recovery适配 · 升级包制作与验证