【www.shanpow.com--简历下载】
第一篇安卓开机升级:安卓手机升级刷机通用教程
注意,刷机前最好把名片,备忘录,短信,等等一些重要的东西备份一下!
先将下载好的rom包(就是系统包)命名为update.zip传到sd卡的根目录下,然后关机。
G1,G2,G3等有Home房子键机型,请按住Home键+开机键开机
N1,G7等Home键为触摸的机型,请按住音量键下键+开机键开机
稍等即可进入recovery模式,即恢复模式
1. 在recovery模式下,选择第四项Flash zip from sdcard
2. 然后会看到你卡中的全部zip文件,刚才命名为update.zip主要就是为了方便找到rom包,找到你放到SD卡中的rom,确认。
3. 点击你要刷的新rom后,会进入如下页面,然后按Home房子键就开始自动刷机了
4. 刷机过程中不要动,稍等片刻就好。
5. 当屏幕最下方的英文出现 complete,并回到recovery主页时,就说明刷机成功了!
6. 此时你便可以选择recovery菜单第一项Reboot system now来重启手机了。
Ps: 完成以后 ,最好是重置一下手机,需要进入recovery菜单中的第五项wipe
其中第一项是恢复手机出厂值,第二项是清除缓存,第三项是清除SD卡的第二分区内容,第四项是清除电池使用记录,第五项是清除重力感应设置
点击每一项后,会弹出提示,按Home房子键
第二篇安卓开机升级:Android系统升级那些事情
Android系统升级那些事儿摘要
本文首先介绍了Android系统更新要用到的一些概念:硬件、三种模式及相互之间的通信。然后介绍了Android系统的启动和升级流程。
概述
通常,Android系统的升级包名称为update.zip。Android系统内部自带了烧写升级包的工具,我们可以手动烧写,也可以通过某些机制自动更新系统。同时,我们可以手动修改和制作升级包。本文主要阐述在Android系统升级中用到的一些概念,本文只是作为索引,并不涉及到具体的烧写工作。本文基于Android系统的版本:4.0.4。
硬件
Android系统的烧写,是非常贴近硬件的。一是,烧写是在实实在在的硬件上操作的。二则,有时在翻阅源码的时候,需要知道硬件的类型,以便找到和硬件相对应的源码。
烧写相关的硬件主要有三部分:CPU、内存和nand flash。当然,只是相对本文而言。CPU用来执行程序中的指令。内存只是在运行中,将需要运行的程序加载其中并运行,关机后即消失。nand flash用来存储程序的数据,它会一直存在。系统启动时,会将nand flash上的操作系统加载到内存,然后运行在CPU中,对于非系统程序,按需加载到内存中运行。了解这些,有助于了解整个烧写的过程。
在板子上,可以通过下面的命令,查看CPU的信息:
cat /proc/cpuinfo
通过如下命令查看内存的信息:
cat /proc/meminfo
nand flash是需要分区的,每个分区中对应了Android系统烧写包中不同的image,比如:boot、system分区等。可以通过如下命令来查看nand flash的分区情况:
cat /proc/mtd # 查看分区状况
通常,nand flash包含了以下分区:
开机动画:用于在开机或者升级过程中显示在屏幕上的内容。
boot:用于Android系统的正常启动
recovery:用于Android系统进入recovery模式下,参见本文后续介绍。
misc:用于保存BCB的内容,参见本文后续介绍。
system:对应于Android系统的正常模式下的/system目录。
cache:用于不同模式之间的通信,参见本文后续介绍。
user-data:用于Android应用数据的存放。
nand flash上的分区可以按需要增减,这取决于不同的Android系统配置。不过它有可能在Android不同的模块中都有定义。同时,这些分区的可能在Android不同的模块中都有配置,比如:内核、bootloader。
通过下面的命令查看nand flash的总大小:
dmesg | grep NAND
三种模式
烧写的过程中,需要在三种模式下互相切换。确切的说,应该是三个操作环境:bootloader、recovery和main system。
bootloader主要用来屏蔽硬件的差异,类似于PC中的BIOS,它的功能相对比较简单,内部提供了一些命令,比如:可以将nand flash分区加载到内存、运行内存中的程序、操作SD卡等。Android中的booloader是uboot,位于源码的uboot目录下。
main system就是正常运行的Android操作系统,而recovery则是一个mini的Android系统,顾名思义,就是用来进行系统恢复相关的操作的,它的运行规则和main system一样,只是,它在启动时只加载recovery服务,此服务用于烧写Android系统。
三者之间的关系如下图所示:
系统先启动到bootloader模式下,然后根据情况,启动到recovery或者main system模式下。
bootloader
板子启动时,在Putty控制台中按回车,可以进入uboot,输入help可以查看其可用的命令。uboot的命令是可以自定义的,需要在uboot源码中进行设置。uboot下可以使用fastboot命令,进入fastboot模式下,可以使用PC与之连接(此时,使用fastboot协议通信),进行Android系统的烧写工作。
在uboot中,你可以更新uboot在内的所有系统模块。
recovery
recovery系统包含了内核和类似于根文件系统两部分,启动时仍采用init进程和init.rc配置脚本,不同的是init.rc脚本比较简单,system目录中只存放了一些必备的工具。
recovery系统下,你能更新除uboot之外的所有Android系统模块。
recovery模式下,只有一个recovery服务,该服务对应于recovery进程,源码位置:bootable\recovery。
main system
main system是正常运行的Android系统。
通信
Android板子每个时刻只可以处于bootloader、recovery、main system其中的一个模式中,烧写过程中,三个模式之间需要通信,比如:main system通知recovery烧写那个升级包。大致有三种方式可以用来通信:BCB、寄存器和cache分区。
BCB
BCB (bootloader control block)可以用于main system传递数据给bootloader和recovery模式。BCB的内容存在于nand flash的一个独立的分区,可以在nand flash分区表中看到,分区的名称为misc。
通过BCB,main system可以通知bootloader启动到recovery模式下,同时也可以传递命令给recovery,比如烧写哪个文件。
recovery在烧写的过程中,会设置BCB,以确保烧写成功前,一直会开机启动到recovery模式下,这样可以防止烧写过程中断电的情况。
寄存器
main system模式下,运行如下命令会重启,并进入recovery模式:(也可调用android_reboot函数)
reboot recovery
reboot命令实际上是系统调用,最终会调用到内核的kernel_restart函数,该函数最终会设置某个寄存器的位置,然后执行重启操作。
重启后,bootloader会检测到该寄存器的值,并根据其值,启动到recovery模式下。
cache分区
recovery和main system模式下,都会将nand flash的cache分区挂载到cache目录从而实现这两种模式下的通信。比如:main system模式下,下载升级包update.zip,并将其路径设置到文件/cache/recovery/command中,然后重启到recovery模式下,recovery进程会读取到文件/cache/recovery/command中的值,并执行系统升级工作。
升级包
通常升级包的名称为update.zip,它包含了要升级的内容和升级脚本,也就是说,整个升级的过程都由升级包本省控制。
升级脚本解析对应的源码:META-INF\com\google\android\updater-script。可用的命令列表可以参见bootable\recovery\updater\install.c的函数RegisterInstallFunctions()。
解析升级脚本采用语言Edify,源码位置:bootable\recovery\updater和bootable\recovery\edify。
若想自己制作update.zip包,需要使用的一下三个文件:
out/host/linux-x86/framework/signapk.jar
build/target/product/security/testkey.pk8
build/target/product/security/testkey.x509.pem
制作的过程:
解压从源码中编译出来的update.zip。
修改解压后的文件。
重新压成包update.zip
使用命令处理update.zip,该命令主要是最zip执行签名操作:java -Xmx1024m -jar signapk.jar -w testkey.x509.pem testkey.pk8 update.zip update_unsigned.zip
update_unsigned.zip就是最终的升级包。
启动流程
启动流程大致路下:
1.开机后,启动到bootloader下,bootloader会作一些初始化的操作,然后会从三个地方确定后面的动作:
查找SD卡上指定的文件:此种情况,主要用于,通过SD卡,升级系统。只要在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到/cache目录。
2.设置/cache/recovery/command目录的内容为:--update_package=/cache/update.zip。
3.调用函数android_reboot,并设置进入recovery模式的代码。
4.系统重启,进入recovery模式,并启动recovery进程,该进程会检测/cache/recovery/command的内容,然后升级update.zip。
参考资料
Fastboot
09年初写的Android Recovery 09年初写的Android Recovery
android recovery 模式启动进入流程
U-Boot启动过程完全分析
Edify scripts in CWM recovery
第三篇安卓开机升级:Android手机ROM刷机升级
新手们泡够了论坛看过了 新手买GPHONE前需要知道的一些事情——GPHONE值得拥有!想必也坚定了下手GPHONE的信息,这次我再来介绍一些买完手机之后需要了解的内容,希望可以帮助新手朋友更好更快的使用GPHONE手机。
先说一下这几个东东的关联,刷SPL一定要刷最新RADIO
RADIO可以随便刷
G1想刷中文系统一定要提取ROOT
ROOT权限与SPL 和 RADIO无关
刷机不一定非要刷SPL
好了可以继续看了
一、有关于ROOT
什么是ROOT?
首先ROOT权限跟我们在windows系统下的administrator权限可以理解成一个概念 。root是android系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权利,所有对象他都可以操作。只有拥有了这个权限我们才可以将原版系统刷新为改版的各种系统,比如简体中文系统。
ROOT的作用?
G1手机有了ROOT权限才可以安装中文的操作系统,有些软件比如蓝牙传输软件需要ROOT权限才可以运行。G2和G3无需得到ROOT即可刷机,安装中文系统。
怎样得到ROOT权限?
如果你是G1用户的话如果你买到的手机已经是中文操作系统了,你就已经取得了ROOT权限了,可以使用需要ROOT权限的软件,或者刷机。但是如果你拿到的G1还是英文操作系统,并且在设置——区域和文本选择区域中也没有找到我们伟大祖国的身影的话你就需要ROOT权限了,这样你才可以刷机,如果你不需要中文操作系统的话可以略过。提取ROOT权限的方法请点击查看
G3用户提取ROOT权限的方法请看 G3 Hero中文破解获取Root教程
二、有关于RADIO
什么是RADIO?
这个Radio指代的是通讯模块,就是手机里面负责信号部分的模块,PDA类型的手机,基本都强调这么个概念。一个是PDA,一个是手机(貌似是句废话- -),举个很简单的例子,以三星的PPC手机为例,比如i718.比如i908,他们在刷机的时候(所谓刷机就是重装系统)一般都是分两部分,第一部分刷手机部分,第二部分刷PDA部分,而且两部分基本不相干。 大家也可以这么去理解G1,Radio负责信号部分,固件包呢,是负责电话(包括电话功能跟PDA功能)。
最简单的你可以把它理解为无线(包括蓝牙 通话 WIFI)的驱动程序。
RADIO有什么用?
刷新新版的RADIO可以解决通话或者WIFI以及蓝牙的一些问题,比如正在听音乐,来电话了,接完电话歌曲不播放了,这种常见问题。
怎样刷新RADIO?
RADIO的刷新方法很简单,你得到的是一个压缩包,刷新方法和G1的刷机方法一样,把RADIO包重命名为update.zip,然后放进SD卡根目录,HOME+POWER开机,然后ALT+S,开始升级,大家记得一定要刷新最新版本的RADIO文件,这与后边会提到的刷新SPL文件有关。
在手机设置——关于——基频版本中显示的就是RADIO版本。看后几位即可,“2.22.19.26I”,下载此版本RADIO 请点击
三、有关于SPL(针对G1用户)
什么是SPL?
SPL英文全称是SecondProgramLoader,“第二次装系统”,就是负责装载操作系统到RAM中。另外SPL还包括许多系统命令,如mtty中使用的命令等。SPL损坏了还可以用烧录器重写。
SPL一般提供这几部分功能:检测手机硬件、寻找系统启动分区、启动操作系统为系统的基本维护提供操作界面,可以通过数据线与操作终端(如PC)建立连接,并接受和执行相应命令。它里面包含许多命令,像r2sd,l,doctest(危险命令,他会擦除gsmdata)等。我们常说的三色屏就是由SPL驱动的。检测SD卡,当你把一些特殊制作的SD卡插入后,SPL可以在启动时校验并根据SD卡内容刷机或执行一些命令。这有点类似于PC的从软驱启动。简单点说,SPL就相当于PC的BIOS。
SPL有什么用?
刷了SPL之后你可以得到更大的可用空间,G1用户在刷新完SPL文件之后内存可用空间达到87MB,有了大存储空间可以安装更多的程序,同时也可以刷新HTC HERO上的ROM到自己的G1里(相关信息可见ROM区)
如何刷新SPL?
1、之前准备
刷新SPL之前要确定你的RADIO是最新的,刚才已经在有关RADIO的部分说过这个问题了。
进bootloader模式:【相机+电源键】。看到的DREA100 后面的字符是PVT。
注意!刷机前是Radio 为RC33或者刷了SPL后刷再Radio RC33,机子必砖掉
刷SPL有一定风险,请谨记!
2、刷机方法
刷机方法和G1刷机没有区别。
⑴ 重命名下载的刷机包名称为 update.zip ,复制 update.zip 文件到你的SD根目录。
⑵ 先关机,然后长按 Home(小房子)+ 关机键,当看见三角形的警告且屏幕不再刷新时,同时按下 ALT + W 组合键清空内存。
⑶当进度条走完后同时按下 ALT+S 组合键开始升级。
⑷ 当进度条走完后——按下 Home+Back键 重新启动你的 G1 手机。
3.SPL下载SPL 1.33.2005
如果你还是对SPL有所疑问 请看以下帖子
如何刷RADIO,SPL,ROM,APP2SD,SWAP,让刷机变简单!
绝对零风险 不用wipe 不用拔电池 新SPL刷机教程 (可靠性已亲自验证)
四、有关于刷机
G1
G1刷机需要取得ROOT权限才可以,建议刷机前也一并把SPL刷了,增大一下可用内存空间,刷机方法简单得很,得到刷机包。
⑴ 重命名下载的刷机包名称为 update.zip ,复制 update.zip 文件到你的SD根目录。
⑵ 先关机,然后长按 Home(小房子)+ 关机键,当看见三角形的警告且屏幕不再刷新时,同时按下 ALT + W 组合键清空内存。
⑶当进度条走完后同时按下 ALT+S 组合键开始升级。
⑷ 当进度条走完后——按下 Home+Back键 重新启动你的 G1 手机。
G2
G2刷机之前不用取得ROOT权限,直接就可以刷新ROM。
G2有两个硬件版本沃达丰版(RAM为192MB)和HTC版本(RAM为288MB)所以刷机使用的工具有所不同,大家一定要注意区分。
刷机方法请看 沃达丰版G2 和 HTC版 G2破解教程!只需四步 简单刷机!
G3
G3的刷机方法很简单:(基本类似于G2)
⑴ 重命名下载的刷机包名称为 update.zip ,复制 update.zip 文件到你的SD根目录。
⑵ 先关机,然后长按 Home(小房子)+ 关机键,进入刷机界面。
⑶选择升级update.zip文件,建议刷新之前选择恢复出厂状态。
⑷ 当进度条走完后,选择重启系统即可。
五、有关于APP TO SD
什么是APP TO SD?
APP TO SD(也有叫APP2SD)就是把程序的数据也就是APP数据拷贝到SD卡上。
为什么要使用APP TO SD?
大家都知道系统默认程序只能安装到内存,可是内存容量毕竟有限,尤其是G1用户比较痛苦,所以就采用APP TO SD的方法把软件数据移动到SD卡上,这样就可以安装更多的程序了。
怎样实现APP TO SD?
首先要确定你的系统支持APP TO SD这一功能,现在论坛上刷新的中文操作系统基本都支持此功能。
实现方法具体见

