android recovery升级过程中掉电处理
一般在升级过程,都会提示用户,请勿断电,不管是android的STB,TV还是PHONE,或者是其他的终端设备,升级过程,基本上都可以看到“正在升级,请勿断电”,然后有个进度条,显示升级的进度。
但是从系统安全的角度考虑,如果用户真断电了,我们仍然需要能够从异常掉电的情况中,恢复系统或者继续升级。
我们先理解下recovery的过程,我们升级过程,其实分为两个阶段,升级包校验过程,以及升级包更新过程:
2.1 校验过程掉电
在升级包校验过程,是recovery对升级包zip的完整性以及合法性进行校验,不会写入任何数据,此时掉电,系统不受任何影响
2.2 更新升级包过程掉电
更新过程,会从升级包zip中提取数据,写入到flash的分区中,此时如果掉电,可能系统就被写坏了,在第一节中,我们了解了,其实我们是有两个系统的:
Android启动: uboot -> boot -> system
Recovery启动:uboot -> recovery
也就是我们在recovery中,可以更新android系统需要所有的分区,但是发现有个问题,recovery本身依赖uboot以及recovery分区,那么recovery如果在更新uboot或者recovery分区过程掉电,那么掉电之后recovery是无法正常启动的。
我们分为三种情况讨论:
更新掉电区间
2.2.1 更新logo boot system等分区过程掉电
此过程,recovery系统仍然OK,我们重新上电之后,可以继续进入recovery系统升级即可。
2.2.2 更新recovery分区掉电。
Google原生的recovery分区升级是在android中完成的,recovery更新android,android更新recovery,无论何时,都有一个系统正常,保证了系统不会变砖,recovery更新android的流程。
Recovery通过update.zip更新除recovery分区外的所有分区。
Android通过/system/etc/install-recovery.sh 把/system/etc/recovery-resource.dat更新到recovery分区
2.2.3更新uboot掉电
Uboot是我们系统的启动分区。如果损坏就无法启动,目前国内,基本上厂商都是使用的是emmc flash,emmc包含有BOOT0 BOOT1 USER部分的,一般我们会存储三份uboot镜像,这样其实我们,在emmc上面是存储了三份uboot,如果升级掉电,损坏了其中一个,还有两个uboot是可以启动的,所以不用担心,更新uboot掉电导致的无法启动问题。
有些人就有疑问了,如果是nand flash那么就没有BOOT0 BOOT1了,怎么来保证呢,其实道理是相同的,我们可以在nand flash上面存储两份uboot,这样如果损坏了其中一个,还有一个uboot是好的。
目前来看,国内做android设备的厂商,基本上都是使用的emmc,emmc等同于nand +坏块管理模块,所以emmc比nand的价格高一些,但是少了坏块的处理,并且最终都是由消费者买单,所以普遍上厂商都乐于使用emmc存储。
2.3 总结
升级校验过程掉电,不影响系统本身。
升级更新过程掉电,可以保证重新上电之后进入recovery继续升级。对于特殊分区,像uboot分区,我们需要特殊进行备份处理。
2.4 备注
上面讲到的是整包升级掉电,还有一个特殊的升级,就是差分包升级,如果是差分包升级过程掉电呢,还可以继续升级吗?我们在下一节中详解。
android recovery升级过程中掉电处理的更多相关文章
- Android Recovery升级原理
摘要 Recovery模式指的是一种可以对安卓机内部的数据或系统进行修改的模式(类似于windows PE或DOS).也可以称之为安卓的恢复模式,在这个所谓的恢复模式下,我们可以刷入新的安卓系统,或者 ...
- android recovery 升级之USB设备挂载
Recovery升级过程,通常会从两个地方获取升级包update.zip升级,一般在线升级,会把升级包下载到cache分区,本地升级会从usb或者tf卡中升级.本文讨论下,本地USB升级时,无法挂载U ...
- Android Studio使用过程中常见问题及解决方案
熟悉Android的童鞋应该对Android Studio都不陌生.Android编程有两个常用的开发环境,分别是Android Studio和Eclipse,之前使用比较多的是Eclipse,而现在 ...
- Android ListView滑动过程中图片显示重复错乱闪烁问题解决
最新内容建议直接访问原文:Android ListView滑动过程中图片显示重复错乱闪烁问题解决 主要分析Android ListView滚动过程中图片显示重复.错乱.闪烁的原因及解决方法,顺带提及L ...
- WDCP从php5.2升级到5.3的办法,以及升级过程中iconv错误的处理
从wdcp官方论坛我们可以找到一个询问升级的帖子,然后管理员在回复中也提供了升级方法: cd /tmp wget -c http://dl.wdlinux.cn:5180/soft/php-5.3.1 ...
- Android APP 调试过程中遇到的问题。
调试过过程中APP安装完启动后有的时候会异常退出,报这个错误.有的时候可以直接启动.查找不到原因.网上说把commit方法替换成commitAllowingStateLoss() 也无效. Andro ...
- recovery 升级过程LED灯闪烁
Android设备在进入recovery升级的过程,我们在屏幕上面可以看到升级的机器人动画,以及升级的进度显示.这仅限于有屏幕的设备,比如平板PAD,电视TV等,对与没有屏幕的盒子BOX,那么在不接入 ...
- 编译recovery及过程中的部分错误解决
你必须使用32位或64位Ubuntu系统,关于如何建立编译环境和同步源码的指导,请自己查找有关指导的文章. 1, 安装所需要的包 2, 建立编译的环境,并同步CWM所需的源码,CyanogenMod源 ...
- recovery 升级过程执行自定义shell命令
有时候我们需要,在升级的过程中,执行一些shell命令,来完成我们的一些需求,利用升级过程,进行一些特殊化的操作,思路如下: 第一: 把我们需要执行的命令,写成一个test.sh脚本,然后在recov ...
随机推荐
- Linux 环境下使用g++编译C++
单个源文件生成可执行程序 下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码: /* helloworld.cpp */ #include <iostream& ...
- Liferay7 BPM门户开发之16: Liferay中用户\站点\组织架构\角色\用户组以及关联关系
用户 . 站点 . 组织架构 . 角色 . 用户组分别是:Users. Site. Organization. Role. UserGroups Users 用户是Liferay portal中的关键 ...
- Python函数——列表推导式、生成器与迭代器
列表推导式 产生背景 现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把列表里的每个值加1,你怎么实现? 第一种方法: a = [1,3,4,6,7,7,8,9 ...
- windows中的常用Dos命令
# __切换盘符目录__ E/D: # 从C盘切换到E盘或者D盘# __切换到指定文件夹下__cd folder_name(指定文件夹名--相对/绝对路径)cd .. # 返回上一级目录cd / # ...
- PID file /run/zabbix/zabbix_server.pid not readable (yet?) after start. 报错解决
报错如下: [root@localhost zabbix]# systemctl start zabbix-server Job for zabbix-server.service failed be ...
- IdentityServer Token验证
查看源码:https://github.com/IdentityServer/IdentityServer4/tree/release API使用Client Credentials的token验证是 ...
- Android_support_v4和V7
google提供了Android Support Library package 系列的包来保证来高版本sdk开发的向下兼容性,即我们用4.x开发时,在1.6等版本上,可以使用高版本的有些特性,如Fr ...
- thinkphp的自动生成
第一,在index.php里定义 define('BIND_MODULE','Admin'); //自动生成Admin目录下的结构(默认生成IndexController) define('BUILD ...
- 记一次升级Tomcat
总述 JDK都要出12了,而我们项目使用的jdk却仍然还停留在JDK1.6.为了追寻技术的发展的脚步,我这边准备将项目升级到JDK1.8.而作为一个web项目,我们的容器使用的是Tomcat. ...
- libtorch初体验
环境 Ubuntu -18.04.1, opencv3.4.0 , python 3.6, cmake 3.5.0, pytorch 1.0. pytorch官网下载对应版本:https://py ...