AB 系统OTA升级介绍

本文介绍了Android 7.0引入的A/B系统更新方式,该方式允许系统在运行期间进行OTA升级,减少对用户的干扰。A/B系统包含两套工作系统分区,更新过程中,错误只影响未使用的分区,保证设备稳定运行。文章详细阐述了A/B系统分区结构与非A/B系统的区别,并详细解析了A/B系统OTA升级的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A/B System 概述

Android从7.0开始,引入了新的OTA升级方式 A/B System Updates

A/B系统是指设备上有A和B两套可以工作的系统(用户数据只有一份,为两套系统共用),我们可以理解为一套系统分区,另外一套为备份分区.其系统版本可能一样,也可能不一样;通过升级,可以将旧版本也更新为新版本.当然,设备出厂时这两套系统肯定是一样的.

Android 7.0上传统OTA方式和新的A/B系统方式都存在,编译时只能选择其中的一种OTA方式.由于A/B系统在分区上与传统OTA的分区设计不一样,二者无法兼容,所以7.0以前的系统无法通过OTA方式升级为A/B系统.

7.0以前传统的OTA方式:
设备上有一个Android主系统和一个Recovery系统,Android主系统运行时检测是否需要升级,如果需要升级,
则将升级的数据包下载并存放到cache分区,重启系统后进入Recovery系统,并用cache分区下载好的数据更新Android主系统,
更新完成后重新启动进入Android主系统。如果更新失败,设备重启后就不能正常使用了,唯一的办法就是重新升级,直到成功为止。

而A/B系统主要由运行在Android后台的update_engine和两套分区‘slot A’和‘slot B’组成。
Android系统从其中一套分区启动,在后台运行update_engine监测升级信息并下载升级数据,
然后将数据更新到另外一套分区,写入数据完成后从更新的分区启动

与传统OTA方式相比,A/B系统的变化主要有:

1、系统的分区设置 
    传统方式只有一套分区
    A/B系统有两套分区,称为slot A和slot B
2、跟bootloader沟通的方式 
    传统方式bootloader通过读取misc分区信息来决定是进入Android主系统还是Recovery系统
    A/B系统的bootloader通过特定的分区信息来决定从slot A还是slot B启动
3、系统的编译过程 
    传统方式在编译时会生成boot.img和recovery.img分别用于Android主系统和Recovery系统的ramdisk
    A/B系统只有boot.img,而不再
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值