下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要本文首先介绍了 Android 系统更新要用到的一些概念:硬件、三种模式及 相互之间的通信。然后介绍了 Android 系统的启动和升级流程。概述通常,An droid系统的升级包名称为update.zip。An droid系统内部自带 了烧写升级包的工具,我们可以手动烧写,也可以通过某些机制自动更新系统。同 时,我们可以手动修改和制作升级包。本文主要阐述在 Android 系统升级中用到的 一些概念,本文只是作为索引,并不涉及到具体的烧写工作。本文基于 Android 系 统的版本: 4.0.4 。硬件Android 系统的烧写,是非常贴近硬件的。一是,烧写是在实实在在的硬 件上操作的。
2、二那么,有时在翻阅源码的时候,需要知道硬件的类型,以便找到和硬 件相对应的源码。烧写相关的硬件主要有三局部:CPU内存和nand flash。当然,只是相 对本文而言。CPU用来执行程序中的指令。内存只是在运行中,将需要运行的程序 加载其中并运行,关机后即消失。 nandflash 用来存储程序的数据,它会一直存 在。系统启动时,会将 nand flash 上的操作系统加载到内存,然后运行在 CPU 中,对于非系统程序,按需加载到内存中运行。了解这些,有助于了解整个烧写的 过程。在板子上,可以通过下面的命令,查看CPU的信息:plaincat /proc/cpuinfo通过如下命令查看内存的信
3、息:plaincat /proc/meminfonand flash 是需要分区的,每个分区中对应了 Android 系统烧写包中不 同的image,比方:boot、system分区等。可以通过如下命令来查看 nand flash 的分区情况:plaincat /proc/mtd # 查看分区状况通常, nand flash 包含了以下分区:开机动画:用于在开机或者升级过程中显示在屏幕上的内容。boot :用于 Android 系统的正常启动 recovery :用于 Android 系统进入 recovery 模式下,参见本文后续介 绍。system :对应于 Android 系统的正常模式
4、下的 /system 目录。cache :用于不同模式之间的通信,参见本文后续介绍。 user-data :用于 Android 应用数据的存放。nand flash上的分区可以按需要增减,这取决于不同的 Android 系统配置。不过它有可能在 Android 不同的模块中都有定义。同时,这些分区的可能在 Android 不同的模块中都有配置,比方:内核、 bootloader 。通过下面的命令查看 nand flash 的总大小:plaindmesg | grep NAND三种模式 烧写的过程中,需要在三种模式下互相切换。确切的说,应该是三个操作 环境: bootloader 、recov
5、ery 和 main system 。bootloader主要用来屏蔽硬件的差异,类似于PC中的BIOS,它的功能相比照拟简单,内部提供了一些命令,比方:可以将 nand flash 分区加载到内存、 运行内存中的程序、操作 SD卡等。An droid中的booloader是uboot,位于源码的 uboot 目录下。main system 就是正常运行的 Android 操作系统,而 recovery 那么是一个 mini 的 Android 系统,顾名思义,就是用来进行系统恢复相关的操作的,它的运 行规那么和 main system 一样,只是,它在启动时只加载 recovery 效劳,此
6、效劳用 于烧写 Android 系统。三者之间的关系如下列图所示:系统先启动到 bootloader 模式下,然后根据情况,启动到 recovery 或者 main system 模式下。bootloader板子启动时,在Putty控制台中按回车,可以进入uboot,输入help可 以查看其可用的命令。 uboot 的命令是可以自定义的,需要在 uboot 源码中进行设 置。uboot下可以使用fastboot命令,进入fastboot模式下,可以使用PC与之 连接此时,使用 fastboot 协议通信,进行 Android 系统的烧写工作。在 uboot 中,你可以更新 uboot 在内的所
7、有系统模块。recoveryrecovery 系统包含了内核和类似于根文件系统两局部,启动时仍采用init 进程和 init.rc 配置脚本,不同的是 init.rc 脚本比拟简单, system 目录中 只存放了一些必备的工具。recovery 系统下,你能更新除 uboot 之外的所有 Android 系统模块。recovery 模式下,只有一个 recovery 效劳,该效劳对应于 recovery 进 程,源码位置: bootablerecovery 。main systemmain system 是正常运行的 Android 系统。通信Android 板子每个时刻只可以处于 boot
8、loader 、recovery 、 main system 其中的一个模式中,烧写过程中,三个模式之间需要通信,比方: main system 通 知recovery烧写那个升级包。大致有三种方式可以用来通信:BCB存放器和cache 分区。BCBBCB (bootloader control block)可以用于 main system 传递数据给bootloader和recovery模式。BCB的内容存在于nand flash 的一个独立的分区, 可以在 nand flash 分区表中看到,分区的名称为 misc。通过 BCB, main system 可以通知 bootloader 启
9、动到 recovery 模式下, 同时也可以传递命令给 recovery ,比方烧写哪个文件。recovery 在烧写的过程中,会设置 BCB以确保烧写成功前,一直会开机 启动到 recovery 模式下,这样可以防止烧写过程中断电的情况。存放器main system 模式下,运行如下命令会重启,并进入 recovery 模式:(也可调用 android_reboot 函数)plainreboot recoveryreboot 命令实际上是系统调用,最终会调用到内核的 kernel_restart 函 数,该函数最终会设置某个存放器的位置,然后执行重启操作。重启后, bootloader 会检
10、测到该存放器的值,并根据其值,启动到 recovery 模式 下。cache 分区recovery 和 main system 模式下,都会将 nand flash 的 cache 分区挂载 到 cache 目录从而实现这两种模式下的通信。比方: main system 模式下,下载升 级包 update.zip ,并将其路径设置到文件 /cache/recovery/command 中,然后重启 到 recovery 模式下, recovery 进程会读取到文件 /cache/recovery/command 中的 值,并执行系统升级工作。升级包通常升级包的名称为 update.zip ,它
11、包含了要升级的内容和升级脚本, 也就是说,整个升级的过程都由升级包本省控制。升级脚本解析对应的源码: META-INFcomgoogleandroidupdater-script 。可用的命令列表可以参见 bootablerecoveryupdaterinstall.c 的函数 RegisterInstallFunctions() 。解析升级脚本采用语言 Edify ,源码位置: bootablerecoveryupdater 和 bootablerecoveryedify 。假设想自己制作 update.zip 包,需要使用的以下三个文件: 制作的过程:解压从源码中编译出来的 update.
12、zip 。 修改解压后的文件。重新压成包 update.zip使用命令处理 update.zip ,该命令主要是最 zip 执行签名操作: java - Xmx1024m -jar signapk.jar -w testkey.x509.pem testkey.pk8 update.zip update_unsigned.zipupdate_unsigned.zip 就是最终的升级包。启动流程 启动流程大致如下:1. 开机后,启动到 bootloader 下, bootloader 会作一些初始化的操作, 然后会从三个地方确定后面的动作:查找SD卡上指定的文件:此种情况,主要用于,通过SD卡,
13、升级系统。只要在SD卡中按照规那么放置升级文件和相关的脚本,即可实现系统的升级。查找按键的状态:此种情况主要用于开机后进入 bootloader 或者 recovery 模式,按键也通常是硬件上的几个键按下的状态。获取BCB的内容:需要根据BCB的内容,来执行具体的操作,通常是进入 recovery 模式。假设没有发现上述的三种信息,那么会按照正常的启动流程,进入 main system 模式。2. 假设需要通过SD卡升级,那么会显示升级提示界面,并开始系统升级,完 成后,重启进入 main system 。3. 假设需要进入 recovery 模式,在 bootloader 模式下,会加载 recovery 分区到内存,然后进入 recovery 模式下。recovery 会启动 recovery 进程,该进程会读取 /cache/recovery 分区中 的内容,决定具体的操作。假设没有相关的配置,那么进入控制台模式。4. 假设需要进入 main system 模式,那么会加载 boot 分区中的内容,然后进 入正常的启动流程。升级流程升级的流程大致如下:1. main system 模式下,下载 update.zip 到 /c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030城市垃圾焚烧发电行业市场现状分析及投资前景规划报告
- 2025-2030城市公共设施行业供需平衡分析与发展投资策略规划分析
- 2025-2030城市供热行业市场供需分析及投资规划评估研究报告
- 2025-2030地面沉降监测设备行业市场环保需求供需研究投资风险评估规划分析研究报告
- 2025-2030地质勘探设备行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030地理信息行业市场发展分析及发展趋势与投资前景研究报告
- 2025-2030地板行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030地下坑道城市设计行业市场现状供给需求分析及投资评估规划分析研究报告
- 2025-2030博茨瓦纳钻石矿区投资分析投资回收率投资效益资源配置评估
- 2026年光建一体化科技公司项目管理人员岗位职责制度
- 镇痛药的临床应用
- 学生学情分析与个性化辅导
- 2022年全国新高考语文真题2卷《东观汉记之吴汉》详细注解及译文
- 梦龙乐队介绍
- 危货押运证安全培训内容课件
- 4A级景区综合提升及配套服务设施建设项目可行性研究报告
- 龙城红色驿站(龙城红色服务吧)建设指南
- DBJT15-60-2019 建筑地基基础检测规范
- (2025)事业单位考试(面试)试题与答案
- 污水处理厂工程监理工作总结
- 林业生态经济效益评价指标体系构建
评论
0/150
提交评论