什么是OTA升级?

OTA是Over-the-Air的简称,OTA升级可以理解为用户正常使用过程中进行升级,OTA 升级旨在升级基础操作系统、系统分区上安装的只读应用和/或时区规则。

什么是Android AB系统更新

A/B 系统升级,也叫做无缝更新,A/B系统升级,顾名思义是有两个系统,在磁盘上开辟两个存储空间A/B存储空间,在升级过程中保证有一个可以正常运行的系统,采用这种方式可以大大提升更新的成功性,使用这种更新后,在ota 更新过程中,即使用户手机掉电,也能保证系统再次上电后可以正常运行。

A/B系统更新的好处

  • OTA 更新(往存储空间写入升级包时)可以在系统运行期间进行,而不会打断用户。

  • 如果 OTA 失败,设备会启动到 OTA 之前的磁盘分区,并且仍然可以使用。

  • 更新包可以流式传输到 A/B 设备,因此在安装之前不需要先下载更新包。

  • 缓存分区不再用于存储 OTA 更新包,因此无需调整缓存分区的大小。

A/B OTA系统和普通系统分区

普通系统只需要一个boot存储空间和一个system存储空间,但是A/BOTA系统需要开辟两个boot存储空间和两个system存储空间。这是为了保证升级分区不对运行分区产生影响,保证系统OTA不宕机的一个保障。

OTA升级流程

差分包升级和全包升级

全包升级是升级boot.img和system.img两个分区的所有内容,差分包升级的话,只升级增量部分,就是在基础版本上做差分升级。

因为只有修改部分的版本。所以差分包OTA升级文件会比全包OTA升级文件小很多,这样可以节省云端存储空间和下载流量。

但是因为差分包维护版本的需要特别小心,如果0.0.1版本想升级到0.0.3版本,中间有一个0.0.2版本没有升级,直接升级到0.0.3版本,在差分升级的情况下是会出错的,所以在每次出版本时需要专人维护。

基于以上原因,我们原来公司在选择上,选择了全包升级方式,一个升级包在500M左右,实际速度还满足要求。

升级包的制作

这部分google有自己的机制,在此基础上,rockchip和mtk也有自己相对应的文档,我们需要基于厂商的文档来制作升级包。

如何判断开机运行的分区地址

正常开机的时候,会出现每个分区的执行地址,可以在串口日志先观察开机时候运行的地址。##Booting Android Image at 0x0207f800 ...

参考资料

google-ota介绍

https://source.android.google.cn/devices/tech/ota/dynamic_partitions/implement#partitioning-changes"%3Ehttps://source.android.google.cn/devices/tech/ota/dynamic_partitions/implement#partitioning-changes

android-ota-系统启动

https://blog.csdn.net/guyongqiangx/article/details/72604355"%3Ehttps://blog.csdn.net/guyongqiangx/article/details/72604355


扫码或长按关注

回复「 篮球的大肚子」进入技术群聊

Android-AB系统OTA升级介绍相关推荐

  1. AB 系统OTA升级介绍

    A/B System 概述 Android从7.0开始,引入了新的OTA升级方式 A/B System Updates A/B系统是指设备上有A和B两套可以工作的系统(用户数据只有一份,为两套系统共用 ...

  2. Android9 ab系统OTA升级总结

    Android9 ab系统OTA升级总结 OTA升级介绍 官方介绍 https://source.android.google.cn/devices/tech/ota/tools#multiple-s ...

  3. linux ab双分区升级,AB 系统OTA升级

    A/B System 概述 Android从7.0开始,引入了新的OTA升级方式 A/B System Updates A/B系统是指设备上有A和B两套可以工作的系统(用户数据只有一份,为两套系统共用 ...

  4. Android AB系统ota更新

    差分包制作步骤,以高通sdm660_64平台userdebug为例: 步骤一: . build/envsetup.sh && lunch sdm660_64-userdebug mkd ...

  5. 解决高通 Android 12/13 ota升级失败问题

    1. Android adb push ota全量包 如下图所示 2.当前设备是a分区 如下图所示 3.adb root ->adb enable-verity->adb reboot  ...

  6. Android 系统OTA升级

    一.升级包制作流程 整包:是可以直接用于OTA升级使用,相当于整个替换机器image.优点是操作简单,不容易出问题.缺点是内存很大. 基础包:是用于制作差分包.里面包含所有支持升级的image文件.将 ...

  7. Android系统OTA升级

    OTA英文全称是Over-the-Air Technology,即空间下载技术的意思. OTA升级是Android系统提供的标准软件升级方式.它功能强大,可以无损失升级系统,主要通过网络[例如WIFI ...

  8. Android 7.0 OTA升级(高通)

    文章目录 1. Full OTA 方式升级介绍 1.1 Full OTA 制作第一步:生成 msm89xx-target_files-eng.XXX.zip 1.2 Full OTA 制作第二步:Mo ...

  9. android 代码 升级rom,ROM之家简析:Android手机系统怎么升级

    Android系统现在基本上每年都会有一次大的升级,以及很多次小的升级,对于手机用户来说,当然希望自己能用上最新版本的系统.除了手机厂商也会在适当时间发布官方版本系统升级,也可以自己在网上下载安装第三 ...

最新文章

  1. 文件处理命令:sed
  2. mysql8解压版安装没有密码_MySQL8解压版安装
  3. Android——设置布局的背景颜色
  4. 只会linux和sql能维护mes系统么,MES系统软件架构介绍
  5. wyh 的 Code Style
  6. linux安装python3.6以后报错处理
  7. IP多播技术及其应用
  8. 四位七段数码管pcb_BlockPi入门教程——数码管
  9. flutter实战1:完成一个有侧边栏的主界面
  10. python 大智慧自定义数据_大智慧扩展数据、自定义数据.doc
  11. maya导入abc动画_大佬养成宝典:教你四十二招玩转MAYA(三)
  12. 动态路由 华三nat 静态路由_H3C MSR系列路由器典型配置举例(V5)-6W100
  13. 【转】新世纪研究生公共英语教材阅读A 答案
  14. spring-boot mybadis多数据源配置
  15. PDF文件太大了怎么办,如何压缩PDF且不改变清晰度
  16. 软件测试/测试开发丨Docker 容器技术与常用命令
  17. Mysql数据库备份——数据库备份和表备份
  18. 关于sentinel LDK加密war包实现应用加密的使用方法
  19. Flaash大气纠正 ENVI
  20. 新春限定:新红包封面项目

热门文章

  1. 函数的二义性与函数对象的传递问题(通过实现vector的to_string示例)
  2. android3.2以上切屏禁止onCreate()
  3. linux 每日学一点《明明白白配置lilo启动引导器》
  4. 网管日志-06.07.25
  5. JVM中安全点safePoint有哪些?
  6. 学成在线--21.课程信息修改
  7. web服务器文件管理,web文件管理服务器
  8. jedispool redis哨兵_通过java哨兵JedisSentinelPool代码示例连接对配置的redis哨兵主从模式进行测试验证...
  9. 阿里云rds升级mysql8_为更强大而生的开源关系型数据库来了!阿里云RDS for MySQL 8.0 正式上线!...
  10. Linux进程全解5——父子进程对文件的操作