android系统更新原理简介

本文介绍了Android系统更新的整个流程,包括升级包的生成、应用层的部署与下载、以及Recovery层的执行。升级包通过imgdiff/bsdiff工具制作,包含升级脚本和校验文件。应用层涉及服务器、OTA客户端和升级框架,负责下载与执行升级。Recovery层执行升级操作,解密升级包,验证签名,并通过update-binary执行升级脚本完成更新。
摘要由CSDN通过智能技术生成

简介:

Android系统更新简而言之就是将升级包从服务器下载到本地然后对当前系统进行升级的过程,主要包括三大块:升级包、应用层、recovery层。

主要功能流程如下如所示:

  • 升级包:

版本编译完成后会生成target_file,这里的名称是:ota_target,升级包就是使用源版本的target_file跟目标版本的target_file通过imgdiff/bsdiff工具完成两个img文件的对比差分,做出升级所需的.new.dat、.patch.dat、.transfer.list文件,目录结构如下:

升级包解压后目录结构如下:

升级脚本和升级执行文件位于META-INF\com\google\android中

其中updater-script记录了升级时候需要执行的命令

update-binary则负责具体执行脚本中的命令语句

META-INFO下的CERT.RSA  CERT.SF MANIFEST.MF三个文件用于在recovery执行代码中的校验过程

.img.p文件为特定分区的镜像升级文件

.new.dat .patch.dat .transfer.list三个文件共同负责完成一个分区的升级,比如升级system分区的文件为:system.new.dat system.patch.dat system.transfer.list

其在升级脚本中的升级命令为:

block_image_update(map_partition("system"),package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat") ||abort("E1001: Failed to update system image.");

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值