首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android 4.0 OTA 升格过程概述

2013-03-27 
Android 4.0 OTA 升级过程概述分析Recovery流程,可从分析升级包入手。升级包可由 make otapackage命令生成,

Android 4.0 OTA 升级过程概述
分析Recovery流程,可从分析升级包入手。
升级包可由 make otapackage命令生成,由Makefile和打包脚本(Python)配合生成。
生成规则比较复杂,其中包含了签名过程,细节不表,主要关注它的内容。
升级包解压后结构如下:

------- /system/etc/install-recovery.sh ----#!/system/bin/sh  log -t recovery "Before sha1.... Simba...."if ! applypatch -c EMMC:/dev/block/mmcblk0p2:4642816:c125924fef5a1351c9041ac9e1d6fd1f9738ff77; then  log -t recovery "Installing new recovery image__From Simba..."  applypatch EMMC:/dev/block/mmcblk0p1:3870720:aee24fadd281e9e2bd4883ee9962a86fc345dcab EMMC:/dev/block/mmcblk0p2 c125924fef5a1351c9041ac9e1d6fd1f9738ff77 4642816 aee24fadd281e9e2bd4883ee9962a86fc345dcab:/system/recovery-from-boot.pelse  log -t recovery "Recovery image already installed__From Simba..."fi-------------------------------------------

执行 make otapackage命令时,编译脚本比较boot.img和recovery.img得出patch文件recovery-from-boot.p。

recovery-from-boot.p也是在recovery模式中updater-script解压到system目录的。

install-recovery.sh脚本就是使用这个patch加上boot分区,更新recovery分区。

应用patch前,install-recovery.sh会计算当前recovery分区的sha1。

若计算结果与脚本中记录的相同(c125924fef5a1351c9041ac9e1d6fd1f9738ff77),说明已经更新过了,不再操作。
这样就完成了/system目录,boot分区(kernel + ramdisk),recovery分区(kernel + ramdisk-recovery)的升级。

以上是标准的Android升级流程,我们自己添加的分区可以参考以上几种方式实现。自定义的分区采用何种升级方式需要细细考量,关系到升级包的内容结构和签名过程。

热点排行