MTK 8217平台Android Recovery运行与修改解析
需积分: 48 51 浏览量
更新于2024-09-09
收藏 137KB PDF 举报
"本文主要介绍了Android Recovery的运行流程,特别是基于MTK 8217平台的实现。"
Android Recovery是Android系统中的一个重要组件,它主要用于系统更新、数据备份和恢复出厂设置等操作。在MTK 8217平台上,Recovery的运行流程主要涉及以下几个步骤:
1. **启动流程**:Recovery程序启动始于`board.c`中的`start_armboot()`函数。这里首先会检查设备是否处于恢复模式。通过`check_recovery_mode()`函数来判断,如果是通过触摸屏(如AC83XX平台的触控芯片)按下触发恢复模式,或者特定的标志位设置,将会进入Recovery流程。
2. **触摸屏检测**:`#ifdef CONFIG_AC83XX_TOUCH` 和 `#ifdef CONFIG_AC83XX_TP` 分别针对不同的触摸屏配置进行检查,如果检测到触摸屏被按下,`check_rtouch_pressed()`或`check_ctouch_pressed()`将返回true,使得设备进入Recovery模式。
3. **环境变量设置**:如果满足进入Recovery模式的条件,`setup_recovery_env()`函数会被调用,这通常涉及到设置环境变量`Bootcmd`为`CONFIG_RECOVERY_BOOTCMD`。这个变量在系统启动时被检查,以确定是否应该进入Recovery模式。
4. **正常启动与Recovery启动的差异**:在U-Boot和内核阶段,无论是正常启动还是Recovery模式,大部分流程基本相同。区别在于传递给内核的命令行参数中,正常启动使用`ramdisk.gz`,而Recovery模式使用`recovery.gz`。这两个压缩包由`genram.sh`和`genrecovery.sh`脚本生成,它们包含不同的`root.tar`文件内容。
5. **init.rc的区别**:在Recovery环境下,`init_for_recovery.rc`(即Recovery下的`init.rc`前身)与系统的`init.rc`有所不同。在`init_for_recovery.rc`中,挂载的SD卡和USB位置不同,创建的目录较少,并且只加载了一些必要的内核模块(ko文件)。
Recovery模式的实现依赖于对这些配置和脚本的精确控制,确保在用户需要时能够正确执行系统恢复操作。通过了解这一流程,开发者可以更好地定制和优化Android设备的恢复功能。
2013-12-09 上传
2013-03-28 上传
2014-11-08 上传
2013-08-16 上传
2014-11-12 上传
2013-02-28 上传
2020-03-24 上传
点击了解资源详情
2020-06-28 上传
我前年买了个表
- 粉丝: 243
- 资源: 24
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍