系统 OTA 升级
概述
OTA :( Over-the-Air Technology,空中下载技术)是指通过无线网络实现远程软件升级的技术。最早由安卓系统引入到手机设备中, OTA 技术大幅简化了传统软件升级过程,无需通过计算机连接设备,用户可直接在设备上下载并安装更新。这一技术极大地方便了用户,提高了设备维护的效率。
- 在 OTA 的广义应用中,可以划分为云端和设备端两个主要组成部分。云端部分负责处理设备的升级请求,包括执行升级校验、下发升级包以及收集升级结果等任务。而设备端则主要依赖云端下发的升 级包,完成系统软件( FOTA, Firmware Over-the-Air)或应用程序( SOTA, Software Over-the-Air)的更新与升级。
- 本文旨在提供底层设备端 OTA 的用户手册,详细阐述 OTA 在底层系统软件和应用程序升级中的机制及其实现方法,同时提供相关的开发指导。需要特别指出的是,通过 OTA 升级的系统软件与应用程序,主要是指更新存储在外部存储器(如 eMMC )中的数据。
- OTA 的对外交付物主要为一套 API 及其相应的实现库(如 libupdate.so),该库实现了底层烧写校验等关键功能。上层的 OTA 服务架构则由客户方实现,用以对接客户的云端服务。在成功从云端下载升级包后, OTA 服务会通过调用 libupdate.so 中的接口,实现版本的升级和校验等操作,从而确保设备能够顺利、安全地完成软件更新。
缩略语
| 缩略语 | 英文全称 | 中文解释 |
|---|---|---|
| SoC | System on Chip | 片上系统 |
| BL[x] | Boot Loader Stage [x] | 启动的阶段 x |
| SPL | Secondary Program Loader | 二级程序加载器 |
| GPT | GUID Partition Table | GUID 磁盘分区表 |
| GUID | Globally Unique IDentifier | 全局唯一标识符 |
| RSA | RSA Algorithm | RSA 公开密钥密码体制 |
| eMMC | embedded MultiMedia Card | 嵌入式非易失性存储器 |
系统分区表
OTA 时,将以分区为单位对目标分区进行更新,这些分区按照不同的类型做如下区分:
| 分区类型 | 属性 |
|---|