Recovery 流程简介

Recovery 流程简介
Adroid 系统中的 Recovery 模式主要为用户提供了 OTA 升级和恢复出厂设置两大功能,用户可以通过 setting 中的系统软件更新和恢复出厂设置来进入到 recovery 模式。下面分别介绍一下 recovery 模式中的这两个主要功能。
 
一、OTA 升级
  在 android 系统中〃可以通过以下两种方式进行系统升级:
    1. 在线升级:通过在线下载升级包的方式实现升级
    2. 离线升级:通过把 update.zip 文件放到 SD 卡的根目录下〃执行 Setting--->About phone---->System software update 来实现升级。通常升级采用的都是这种方式。
二、OTA 升级流程
  下面介绍一下 OTA 的升级流程。
    1. 用户选择系统软件更新时〃setting app 会先向/cache/recovery/command 文件写入“--update_package=/sdcard/update.zip",接着执行PowerMananger.reboot("recovery");这样系统会重新启动并进入到 recovery 模式。
    2. ui->Init();在 recovery 中有自己的一套 UI 显示〃主要是一个 menu〃用户可以根自己的需要来执行相应的操作〃包括 wipe data/cache〃reboot 等。
    3. install_package正开始升级的部分〃 
      流程如下:
          1.ensure_path_mount():先判断所传的 update.zip 包路径所在的分区是否已经挂如果没有则先挂载。
          2.load_keys():加载密钥文件
          3.verify_file():对升级包 update.zip 包进行签名验证。
          4.mzOpenZipArchive():打开升级包.
          5.try_update_binary():先根据我们上一步获得的 zip 包信息〃以及升级包的绝对路径将 update_binary 文件拷贝到内存文件系统的/tmp/update_binary 中。以便后面使用。
          6.pipe():创建管道〃用于下面的子进程和父进程之间的通信。
          7.fork():创建子进程〃在这个子进程中〃通过解析 update-script 中的脚本来实现升级过程。在升级过程中〃父子进程进行通信〃父进程主要显示升级的进度。
posted @ 2017-04-13 13:41  奔跑的蚂蚁aa  阅读(285)  评论(0编辑  收藏  举报