Android A/B System概述


A/B system是工作后接收的第一个模块,接近一年的时间,才算有所了解,被PL/PM催过无数次,也被客户的各种奇葩问题虐过。A/B system作为Android新推出的一个功能,网上资料很少,不然就是长篇大论扔代码的。所以想尽量写出易读易懂的文章,来快速的了解A/B system如何运作的。

Overview

A/B update又叫无缝升级,是Android提出的一种新的升级方式。可以简单理解为,内存中有两套系统(假设为A和B),你正在使用A,B在更新,你仍然可以使用,等B升级好了,再切换为B。

优点:

  1. 更新系统的时候不会影响用户的操作,不需要长时间的等待(因为有两套系统)
  2. 更新系统的时候不会刷成砖头(失败了可以回到原来的系统,系统中总是有一套可用的系统)

缺点:

  1. 因为有两套系统,所以占用更多的内存
  2. bootloader变复杂(在启动的时候要做A or B的判断等操作)

与传统OTA方式相比,A/B的变换:

  • Partition(系统分区)
    • A/B:两套分区(slot A slot B
    • Non-A/B:一套分区
  • Bootloader
    • A/B:由boot control HAL控制
    • Non-A/B:读取misc分区的信息,决定启动Android系统还是Recovery系统
  • Build
    • A/B:只有boot.img,没有recovery.img
    • Non-A/B:boot.img和recovery.img
  • Packages
    • A/B与Non-A/B生成OTA包的工具和命令跟传统方式一样,但是生成内容的格式不一样了

Partition selection (slots)

Non-A/B System Partition

  • bootloader
  • boot
  • system
  • vendor
  • userdata
  • cache
  • recovery
  • misc

A/B System Partition

  • bootloader
  • boot_a boot_b
  • system_a system_b
  • vendor_a vendor_b
  • userdata
  • misc

Common example scenarios

Ps:这一节参考Android A/B System OTA分析

slot A或slot B都有三个属性:

  • active bootloader选择active属性的运行,排他属性,slot A或slot B有且仅有一个为active
  • bootable 表示该分区是一个完整可以启动的系统
  • successful 表明该分区在当前或上一次启动中可以正确运行

Common example scenarios

  • Normal case 系统当前运行在slot B,slot B当前具有active bootable successful三个属性
  • Update in progress 系统当前运行在slot B, slot B检测到slot A要升级,将slot A设为unbootable,准备升级
  • Update applied, reboot pending slot A升级完成后,具有bootable(此时还不知道是否升级成功),而且此时reboot后从slot A启动,所以slot A具有active,slot B没有active
  • System rebooted into new update 成功启动后,当前运行系统为slot A,具有active bootable successful三个属性,slot B仍然具有bootable successful
    在这里插入图片描述

Implementing A/B Updates

Implementing the boot control HAL</

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值