Android Recovery运行流程主要涉及系统恢复、更新等功能的执行,它是基于Android系统的紧急恢复程序。MTK(MediaTek)是智能手机和移动设备常用的芯片解决方案提供商,而8217平台则是其产品线中的一款芯片。Recovery模式允许用户对设备进行重置、更新固件或安装刷机包等操作,它是Android系统不可或缺的部分。 在MTK 8217平台上,Recovery的运行流程从board.c开始,进而调用start_armboot(),进入check_recovery_mode()函数来检查是否需要进入Recovery模式。若检测到触摸屏被按下,就会设置Recovery环境变量,将设备引导至Recovery模式。在此模式下,会通过setenv()函数设置bootcmd环境变量,让系统在启动时执行CONFIG_RECOVERY_BOOTCMD命令。 Recovery模式与正常启动模式在uboot和kernel阶段基本相同,区别在于传入kernel的ramdisk压缩包。Recovery模式使用的是recovery.gz,而正常模式使用的是ramdisk.gz。这两个压缩包是由genram.sh和genrecovery.sh脚本生成的,它们分别打包了不同的root.tar文件,从而使得启动的root文件系统有所区别。 Recovery环境下启动的init.rc文件,即init_for_recovery.rc,与正常启动下的init.rc有所不同。它会挂载sd和usb在不同的位置,创建的目录更少,加载的内核模块更少,服务也更简化。核心服务recovery的命令仅仅是一个简单的:servicerecovery/sbin/recovery。这表明Recovery服务的启动本质上是启动了一个简单的recovery命令。 Recovery的启动服务主要代码位于/android4.2.2/bootable/recovery/*目录下的recovery.cpp文件中。这个文件定义了Recovery的主要行为,包括根据cache/recovery/command参数擦除SD卡或cache数据等。而显示UI和画面配置则是通过screen_ui.cpp文件来实现的。 进入Recovery服务的Main()函数后,会首先通过get_args()函数获取传递的启动参数。接着,会重定义log输出文件,将log输出到/cache/recovery/log目录下。这种设计可以保证Recovery过程中的日志信息被正确记录,便于问题的追踪和调试。 Recovery与Bootloader以及主系统之间的通信主要通过系统的misc分区来完成。misc分区的大小只有3页(Page)。misc分区的数据结构由bootloader_message定义,其中包含command、status和recovery三个字段。command字段存储启动命令,用于决定系统是进入Recovery模式、更新firmware模式还是正常启动模式。status字段记录更新结果,而recovery字段则存放Recovery模块的启动参数,以字符串形式存储,命令之间以换行符"\n"分隔。 获取bootloader_message的方式主要有两种:一种是读取misc分区中的命令到boot变量中,另一种是如果无法从misc分区读取,则会尝试使用其他方式来获取命令。 Recovery环境下的启动流程中,还会涉及到对Recovery环境变量的设置,包括设置启动命令、日志文件路径等,以确保Recovery能够正确地根据用户选择来执行相应的恢复或更新操作。 Android Recovery运行流程涉及到多个组件和步骤,包括启动检测、环境变量配置、内核命令设置、服务启动以及用户界面显示。理解这一流程对于开发者来说非常重要,它不仅能够帮助他们处理设备恢复和系统升级问题,也对于定制化Android系统以及开发相关的Recovery工具提供了基础。

























- 粉丝: 247
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 机械制造企业项目管理应用分析.docx
- XXXX道路整治工程施工总进度具体计划横道图、网络图、总平面图.doc
- 电子商务网站建设中数据库安全隐患与策略分析.docx
- 服务器存储网络设备巡检报告.docx
- 单片机交通灯设计方案和实现.doc
- 单片机原理及应用技术试卷.doc
- 关于高校网络和信息安全管理与技术分析.docx
- 2012落索坡小学教育信息化建设方案.doc
- 输电线路工程项目管理实施对策分析.docx
- 淘宝网站的设计与应用.doc
- 网络教学下的数学课堂教学.docx
- 探索互联网+模式下提升档案社会服务的有效提升.docx
- spring-boot-seckill-C++资源
- 大数据时代下的物联网进程-专访中国工程院院士、中国互联网协会理事长邬贺铨.docx
- 西北工业大学入学测试机考模拟题及答案专升本计算机基础.doc
- 大数据时代基于云会计的库存管理模式构建.docx


