从零开始- Android刷机指南
2011年07月27日
第一章:开篇
版权说明:
以下各篇内容部分为原创,部分取材、编改于网络,其内容、包括后续操作提及的程序之版权,均归原作者所有,如有不妥之处,望知悉。改之。
鉴于网上相关教程零散杂乱之现状,结合笔者自己的刷机体会,成文于下,与各位机油共勉之。笔者才疏学浅,错漏之处,尚希纠正。谨序。
什么是刷机?
刷机,简单的说,就是通过一系列步骤,把手机里面的一些固有的程序替换掉的一个过程。
通过刷机,我们可以提升权限,可以得到更新版的操作系统,或者是改良后的系统驱动,等等。这样,我们可以让手机运行在更好的一个状态下。
通过官方提供的升级包,自己手动来给手机升级的,也是一种刷机,只不过这是在官方授权允许的情况下进行的就是了。
后面即将要讲到的rooting,也是一种简单的刷机,我们往手机里面放进了两个程序,然后我们就取得了系统的最高权限。
再后面我们要讲到的,怎么去替换系统程序,怎么把第三方、甚至是自己修改的刷机包刷进我们的手机,同样都是刷机。
你需要刷机吗?
这是每个要继续下去的朋友,该问自己的一个问题。
我们的电脑,从dos,win3.1,win98
,winxp,到今天的win7,一直都在不停的升级。
除了官方的系统,我们有时还会去安装一些经过精简和定制的系统,这么做的目的,无非是想更好的使用我们的电脑罢了。
也许你会说,我家的老爷电脑,到现在都还在用win98呢,是的,确实有很多朋友,并不需要去做系统升级,因为现有的功能就够用了,再多的功能也用不到。
对于手机用户来讲,一样的道理,如果你只是用手机打打电话,收发短信,那么一个稳定的官方系统对你来说就够用了,也许到你换手机的那天,你都不用对它做任何的升级。因为你不需要这么去做。但你的手机要是频繁死机,运行不稳定呢?也许你会说,送去修呗,没错,这也是一个办法。
但对于痴迷电子产品的爱好者来说,刷机,恰恰是我们的乐趣所在,通过刷机,我们可以学到很多相关的知识,把自己的手机,弄成自己想要的样子,同样是很有成就感的。不是吗?
有的朋友会说,手机,不就是个工具吗?用着就是了,折腾他干嘛呢?
非也!!
大家都知道,我们的电脑,可以完成很多任务,工作、学习、读书、看报、听歌、看碟、上网、聊天,等等,现代人的生活几乎离不开网络,离不开电脑。
但是,问题来了,假如,给你一台电脑,却没有给你管理员账号,也就是说,给你装好了操作系统,但是只给你设置了一个普通用户账号,用它,你只能运行装机时候设定的一些程序,比如,只让你用系统自带的播放器看碟听歌,那你下载回来的电影,有可能会因为系统没有相应的解码包而无法播放,而没有系统管理员的权限,你是没有办法自己去装其他解码包的,类似的例子太多了,碰到这种问题,你会有什么想法?
是的,你会觉得难以接受!不过在电脑世界里,这种情况是不可想象的,通常软件厂商都会给予我们操作系统的最高管理权限,因为这是我们的权利,不是吗?
同样的,在没有智能手机之前,手机就是手机,就是用来打电话的,也只能打打电话,发发短信,系统也都是固化的,并不允许我们去做修改。
当智能手机出现后,这一状况改变了,我们可以用手机来完成很多以前只能在电脑上才能完成的工作。但是,不像我们自己组装的电脑,手机出厂的时候,都是已经装好了系统的,并且也不像电脑,可以允许我们随意的去格式化系统再重新装过,为什么?这要问手机厂商了。也许他们会说,为了安全啊,折腾坏了,我们还不是要给你们修?
但是,就因此因噎废食吗?这不是个合适的理由。没听说哪个电脑厂商这么去做的。我们既然买的是智能手机,我们就应该让他尽可能的为我们提供服务,要不然,我买个200元的手机打电话就够了啊。
虽然手机厂商给我们装好的系统,对于一般用户来说已经够了,他们并不需要刷机,但是,为什么官方还要提供升级程序呢(也是刷机啊)?不还是想让我们更好的使用手机嘛!
但对于玩家用户呢?他们需要更高级别的管理权限,去修改自己的系统,添加、删除一些程序,有些特别的程序,也需要在管理员权限下才能够运行,怎么办?通过刷机,提升权限,把官方拿走的东西再拿回来。
官方的系统好不好?见仁见智,要我说,官方系统的稳定性,还是有所保证的,但厂商有时为了这种稳定,却把系统调试的很保守,有时候甚至可以说是浪费硬件资源。这点却做的很不地道。
再者,官方的系统,通常会带一些垃圾程序,看看移动和联通的定制手机吧,他们真的在为用户着想吗?他们的那些程序,有多少人需要呢?要说是好心,那么,当我不需要他的时候,你应该允许我删除吧?不行!凭什么啊?我们买的是手机,不是你们提供的那些所谓的霸王服务。
通过刷机,我们可以得到一个更干净的系统;
通过刷机,我们可以定制我们的专属系统;
通过刷机,我们可以提升系统性能;
通过刷机,我们可以提前享受到新版本系统带来的好处;
通过刷机,我们可以提高我们自身的水平;
通过刷机,我们可以、、、、、、
一言以蔽之,需不需要刷机,在于各位想要得到些什么。一切由你决定。
第二章:基本概念
如果看完了开篇,决定要继续的话,那么往下看吧。在捣鼓你的手机之前,让我们先来了解一些最基本的概念。
1、
什么是android
android的英文意思是“机器人”,在这里指的是谷歌公司于
2007年11月5日宣布的,一种基于linux平台的开源操作系统。
2、android操作系统的历史
Android 1.0,发布于2009年2月
代表机型:T-Mobile G1
Android 1.5,发布于2009年5月
代表机型:摩托罗拉Backflip(MOTO ME600)
Android 1.6,发布于2009年9月
代表机型:索尼爱立信
X10,摩托罗拉A1680
Android 2.0发布于2009年10月
代表机型:摩托罗拉XT800
Android 2.1,发布于2009年12月
代表机型:摩托罗拉MILESTONE(里程碑)系列
Android 2.2,发布于2010年5月
代表机型:摩托罗拉ME722
里程碑2
Android 2.3,发布于2010年12月7日
代表机型:google Nexus S
Android 3.0,发布于2011年2月3日
代表机型:摩托罗拉XOOM(平板电脑)
3、
android操作系统的分区
对电脑系统了解的朋友都知道,简单来说,电脑分硬件和软件两大块,软件装在硬盘上,比如操作系统windows,使用者通过windows来控制机器硬件,达到使用电脑的目的。
手机也分为硬件和软件两块,软件则是装在闪存(即flash memory,一种存储器)上的,闪存有大小的区别,就像硬盘有大小一样,看手机硬件配置的时候,通常会看到如下介绍:ROM 512M,RAM 512M,ROM就是指的闪存了,相当于电脑上的硬盘,用来存放操作系统和用户数据等信息。相应的,RAM就是指的内存了。
手机出厂时都是装好系统的,这点类似于电脑世界里面的品牌电脑,通过分析手机闪存上的内容可以知道,android操作系统主要有以下几个重要的分区(包括但不限于):
hboot分区----------负责启动。
radio分区----------负责驱动。
recovery分区-------负责恢复。
boot分区-----------系统内核。
system分区---------系统文件。
cache分区----------系统缓存。
userdata分区-------用户数据。
这里不做太详细的介绍了,一是因为笔者所知有限,二是因为对于初学刷机的朋友来说,灌输太多概念,反而会适得其反,我们在这里只要简单的知道一些基本概念,对后面的刷机有所帮助就可以了。对此感兴趣的朋友,可以通过网络继续加深学习。
第三章:名词详解
前面我们提到了android系统的分区概念,下面我们来讲一下后面将要遇到的一些名词,以便在后续操作的时候不会出现太多的问号!
1、hboot(SPL):这里指的是手机上的启动模块,通俗的说,就是负责手机启动引导的一段程序,类似于电脑主板上的BIOS,都是负责底层操作的。和在电脑上刷新BIOS一样,刷错了,电脑就会开不了机,对手机来说也一样,这部分的内容刷错了,手机就会变砖!
2、radio:这里指的是手机上的通讯模块,又叫做基带。负责手机的无线信号,蓝牙,WIFI等设备的管理,也就是说,相当于电脑系统里面的硬件驱动部分。这样说或许也不是特别的准确,大家明白大概的意思就可以了。通常我们所说的刷radio,刷基带,就是指的刷写这一部分,以便解决通话质量、网络连接质量、蓝牙连接等等问题。
3、recovery:字面意思是恢复,手机上的一个功能分区,有点类似于笔记本电脑上的恢复分区。一般大厂出的笔记本,都会自带一个特殊分区,里面保存着系统的镜像文件,当系统出问题的时候,我们可以通过它来一键恢复系统。这里的recovery功能有些类似。其实,他更像是电脑上的小型winPE系统,可以允许我们通过启动到winPE系统上,去做一些备份、恢复的工作。当然,系统自带的recovery基本没用,所以我们通常会刷入一个第三方的recovery,以便实现更多的功能,例如:备份系统,恢复系统,刷新系统等。但官方自带的recovery也不是一无是处,在使用OTA方式升级系统时候,会检查此分区内容,如果不是原厂自带的,OTA升级就会失败。
4、fastboot:字面意思是快速启动,在这里,其实是一个特殊的工程模式,通过fastboot界面,连接电脑后,我们可以在电脑端通过特殊的指令来操作手机,例如更新radio,就可以通过fastboot来完成。fastboot的级别又要比recovery来的要高一些,可以完成更底层的一些操作。后面我们会结合实际,来讲解一些fastboot的用法,更详细的资料,大家可以通过网络来学习,这里不再赘述。
5、ADB:android debug bridge,字面意思就是安卓调试桥接,简单点说,它是android系统提供的一套工具,通过它,我们可以在电脑上建立一个连接到手机的通道,然后可以在电脑上向手机发送一些指令,完成一些我们需要做的工作。ADB的用法我们后面也会作相应的介绍。
6、ROM:read only memory,只读存储器。上面我们讲过的,android系统都是安装在闪存里面的,这个闪存,就是一种只读存储器,断电情况下里面的内容不会消失。刷机,就是刷的ROM。有点类似电脑里的硬盘,ROM里面有很多分区,hboot、boot、system等等,前文介绍过的,还记得吗?说到这里,想到一个好笑的事情,某人问老婆,知道什么是ROM吗?答曰:room?不就是房子吗?晕倒,我说的是R O M
,不是R O O M!!奥,那就是小房子了!狂晕!!
7、OTA:Over The Air,意思是空中升级,当手机系统有更新出现的时候,通常我们会收到官方发送的一条信息,告诉我们,手机系统有更新了,是否需要下载。其优点是点对面,属于广播的形式,有需求的时候可以自由下载。
8、CID:Customer IDentity的简称,即客户身份。销往不同地区的手机,会有不同的CID,以DHD为例,香港的CID为622,台*湾的为621,大*陆的为701,等等。这个信息,我们可以在hboot界面下(必须是S-OFF),进入SYSTEM INFO选项来查看,类似于:CID_622这样的字段。正常状态下的CID,有两个限制,一个是不允许交叉升级,意思是,你是港版的CID,那么你只能选择官方港版的升级包进行升级,你选择欧版的官方升级包,是无法升级的。第二个是不允许降级,即从高版本降低到低版本,也是不被允许的。
9、SuperCID:即超级用户身份,通过一些手段XX,我们可以让手机的CID变成SuperCID,以DHD为例,XX后,CID字段变为:CID_11111111,这样我们就可以跳过官方的验证机制,从而可以刷不同版本的官方包,或者是给系统降级。
10、金卡:很多朋友不明白什么是金卡,这里的卡,是指的你手机里面的TF卡,普通的卡经过特殊的处理,就会变身为金卡,做好的金卡,和平时的TF卡一样来使用,并不会对用户造成什么影响。之所以叫金卡,是因为他可以达到和上面SuperCID一样的目的,即让你跳过验证机制,从而进行刷机。那我们有了SuperCID了还需要金卡吗?不需要。那什么时候需要金卡?当我们没法通过XX得到SuperCID的时候,我们就需要制作金卡了。后面会介绍如何制作金卡。
11、APK:APK是Android Package的缩写,是一种文件格式,类似于windows系统里的EXE可执行文件。在android上,各种程序软件都是通过打包成APK的形式来发布的。他其实就是ZIP格式的文件包,可以用winRAR之类的压缩软件来打开。通过将APK文件直接传到android模拟器或android手机中运行即可安装相应软件。我们从网上还有电子市场下载的android系统的程序文件,都是APK格式的。
第四章:了解你的手机信息
看完前面的文章,大家应该对android系统有个初步的概念了吧。在刷机之前,让我们继续学习一些基础知识。
android系统只有一个,但手机厂商却有很多,各家的手机,即使都采用android系统,不同品牌之间,同品牌不同型号之间,也可能因为硬件的不同,或者厂商的原因,导致没有一个所谓的通用XX和固定模式的刷机流程,都是有针对性的来操作的。
我们这个系列教程叫做从零开始-Desire DHD刷机指南,当然都是以HTC
出品的Desire HD手机为例来做说明,并不完全适用于其他机器,对于HTC其他型号,以及其他品牌采用android系统的手机用户,仅作为学习相关知识的一个参考。
后续章节里面出现的手机,如无特别说明,均指的是HTC Desire HD。其他手机用户,不要完全照搬操作,责任自负哦。
国内水货满天飞,各种版本的手机让普通用户难以分辨。作为一个中国人,不能不说这是一个悲哀。都说中国人精明,那可不是,整天提心吊胆的要防着被骗,整天演练攻防战,日子久了,人能不精吗?
有点跑题了,鉴于以上原因,以HTC Desire HD(以下简称DHD)手机为例,拿到新买的手机后,我们首先应该拨打一下HTC的官方电话:400-821-8998,人工咨询下,报上你的IEMI串码,即可知道你的手机是什么时候出厂、销往何处的。省的被JS忽悠。
接着我们需要知道,我们手机里面运行的是哪个版本的系统,这对我们来说很重要,后续操作都要基于这个,不同版本的系统,对应不同的处理方法。
要了解机器的相关信息,跟着我来操作:
打开手机,进入设置--关于手机--软件信息,得到如下信息:
android
版本--------------------------操作系统的版本
2.2
baseband
版本-------------------------radio的版本
12.28b.60.140eU_26.03.02.26_M
kernel
版本---------------------------内核的版本
2.6.32.21-gf3f553d
内部版本号
1.32.832.6 CL278359 release-keys
软件版本
1.32.832.6
浏览器版本
webkit 3.1
上面是笔者手机未刷机前的内容(港版),可能和你的不同,没关系,很正常,你只要知道他们代表的意思就行了。
进一步了解机器信息,方法如下:
打开手机,进入设置--应用程序--快速启动,不要打勾,然后关机,按住音量-键的同时按住开机键,屏幕点亮后,进入HBOOT。会看到屏幕最上面有如下一些信息:
ACE PVT SHIP S-ON
HBOOT-0.85.0007
MI CROP-0438
RADIO-26.03.02.26_M
eMMC-boot
OCT 11 2010,12:47:02
这里提供的几条信息很重要,下面逐一讲解。
先来看第一行:
ACE:
这个是DHD的内部开发代号。
PVT(或者是EVT,DVT,CVT):
手机的版本类型。
一台手机从研发到上市,可能会经历多次版本上的调试和改动,版本类型标志着机器是什么时候的产物。
EVT:工程机,研发阶段机器的型号。
DVT:开发机,特殊开发用途机器的型号。
CVT:商用机,交付运营商的机器的型号。
PVT:量产机,最终上市的零售版机器的型号。
SHIP(或者是ENG):
手机hboot(SPL)的版本。
SHIP:shippment的缩写,出货的意思,零售版的hboot版本。
ENG:Engineer的缩写,工程的意思,修改版的hboot版本。
S-ON(或者是S-OFF):
S代表Security Lock,即安全锁。HTC在手机内部设置了一个安全锁,用来控制系统分区的读写状态。
S-ON:安全锁开;
S-OFF:安全锁关。
这里我们只是简单说一下,后面的章节再来做详细的说明。接着看第二行:
HBOOT-0.85.0007
这里显示了hboot的版本号,hboot是一个很特殊的部分,刷坏了这里,手机就会变砖,类似于升级电脑的BIOS,刷错了BIOS,你只能返厂用特殊的擦写工具来恢复了。所以后面对hboot的操作要特别的注意,如非必要,不要去轻易刷写此分区。
第四行:
RADIO-26.03.02.26_M
这里显示了radio的版本号,同样的,radio会随着官方系统的升级而跟着升级,前面讲过,radio是负责信号和硬件驱动的,理论上讲,应该是越高版本越好,但也不是绝对,也是要看情况的,就像电脑上的驱动,最新的并不一定是最好的。
上面讲述了怎样查看手机的详细信息,这些资料都很有用,后面的刷机,和这些东西息息相关,希望大家都能先搞清楚,然后再去看后面的章节。
这里再介绍一个系统自带的测试机器的小程序,拨号键盘上,按“*#*#3424#*#*”,根据上面的说明进行测试吧。
第五章:什么是ROOT
刚开始接触刷机的朋友碰到最多的一个词,恐怕就是root了,到底什么是root,下面我们就会讲到。
Windows系统大家应该都比较熟悉,其中,管理员用户叫做administrator,在操作系统里,这个用户具备最高的权限,有了它,你可以对操作系统进行各种操作。
那么,谷歌的android系统呢?android系统是基于linux的,而linux又是基于unix的,linux和unix都是操作系统的名字,和windows操作系统工作原理不同而已。在unix系统里面,管理员用户就叫做root,只有root才具备最高级别的管理权限。类似于windows里面的administrator。
unix系统提供一个命令,名字叫:su,什么是su呢?
再说下我们熟悉的windows吧,在windows里面,如果你使用一个非管理员用户登陆系统,有时候我们又需要在管理员用户下才能完成一些工作,比如,有些程序就需要用管理员的身份来运行,怎么办?一个是注销该用户,然后用管理员用户登陆,还有一种方法,在windows7里面,我们可以通过右键,选择“以管理员身份运行”来完成我们要做的工作,这样就不用来回切换用户了。
那么在linux下面,su就是用来完成这样的工作的。当我们需要用管理员的身份来运行程序的时候,我们可以通过su来切换到root用户下。但官方的手机系统里面,为了安全起见,是不带有这个命令文件的,使得我们无法得到系统管理员的高级权限。
既然官方没有给我们提供这样的便利条件,我们可以自己来创造。前面的文章介绍过,手机的ROM就相当于电脑的硬盘,也有自己的目录和各种文件,而我们把su放进rom的相关目录下(比如system/xbin/)的这个过程就叫做rooting,大家经常在论坛里看到的,说要把手机root,其实就是说的这个过程,我们称之为rooting似乎更为恰当些。把su放进手机里面的同时,我们也就具备了通过su来切换到root用户的条件。
为了防止不良软件也取得root用户的权限,当我们在rooting的过程中,还会给系统装一个程序,用来作为运行提示,由用户来决定,是否给予最高权限。这个程序的名字通常叫做superuser。
当某些程序执行su指令想取得系统最高权限的时候,superuser就会自动启动,拦截该动作并作出询问,当用户认为该程序可以安全使用的时候,那么我们就选择允许,否则,可以禁止该程序继续取得最高权限。
所以,rooting的过程,其实就是往系统里拷贝su和superuser两个程序的过程。当然,卸载掉这两个程序,手机也就失去了切换到管理员用户root的条件。
讲到这里,你应该已经清楚什么是root了吧。root只是一个用户账号,它具备在linux世界里最高的权限,我们平时所谓的root,其实应该叫rooting,他是一个过程,是把su和superuser这两个程序放到手机相应目录的这样一个过程。而通常,厂商是不会允许我们随便这么去做的,我们就需要利用操作系统的各种漏洞,来完成这个过程。由于手机型号不同,品牌不同,对应的漏洞自然也会不同,那么,rooting的过程也就会有所不同,所以前面说,没有一个固定的rooting操作流程就是这个原因了。做完这个工作了,也就可以说:你的手机已经root了。
取得手机的管理员权限可以帮助我们更好的使用手机,但同时,使用不当的话也是有一定风险的,这也就是为什么手机厂商不开放此功能的原因了。
第六章:要刷机 先ROOT
特别提示:
刷机是个危险动作,笔者不保证下面的各步骤都能在你的手机上安全、成功的运行,且不对造成的相应后果承担责任。如果你同意上面的说法,有了心理准备,并且知道自己在做什么,请继续往下看,谢谢!
刷机的前提条件,就是取得机器的root权限,后续章节里面介绍的一切操作,都是在取得root权限的基础上来完成的。
如何取得root权限,我们以DHD为例来介绍。
目前DHD机型还没有一个能在各个软件版本下完美取得root权限的方法,原因很简单,提升root权限,都是通过利用系统漏洞来完成的,新版本都还没有找到相关的漏洞,目前的提权工具只能在特定的条件下运行,比如下面介绍的工具VISIONary+。它只能正常工作在软件版本为1.72以下的系统上。
这也是为什么有些朋友通过官方包升级到国行1.75版本后,无法再用这个工具取得root权限的原因。
VISIONary+软件由国外的Paul开发,最早用在T-Mobile G2/Desire Z上面,当然也可以用在我们的DHD上。
先做些准备工作:
1、去官方网站下载HTC Sync同步工具,下载链接:
http://www.htc.com/cn/SupportDownload.aspx?p_id=387&cat=3&dl_id=982
或者到笔者的网盘下载:
http://u.115.com/file/f57f28a0c4#
HTC_Sync_setup_3.0.5481.exe
下载回来在电脑上安装好。这样,你的电脑上就有了手机的驱动程序。
2、到笔者的网盘下载ADB工具,后面会需要用到,下载链接:
http://u.115.com/file/f56e68414b#
android-sdk-windows.zip
下载回来后,把它解压缩到C盘的根目录,也可同时将tools目录下的三个文件复制到windows/system32/文件夹下,便于操作。
3、到笔者的网盘下载VISIONary+,下载链接:
http://u.115.com/file/f572207fdd#
visionaryplus.r14.apk
下面我们介绍用软件VISIONary+来取得root权限的方法:
1、大家都准备好了TF卡吧,把它在电脑上格式化成FAT32格式,然后放到手机里。
2、新机器开机,官方系统并没有给我们提供查看TF卡的软件工具,先保证机器可以上网(最好是WIFI,GPRS也可),打开机器内置的电子市场,去搜索“文件大师”,或者别的什么文件管理器之类的都行,下载后安装。
3、
手机正常开机,进入设置--应用程序--开发--usb调试,打勾。(后面不要我特别再提醒了,这个打勾的状态就让它一直保持好了。)
4、手机用数据线连接电脑,根据屏幕提示,选择“磁盘驱动器”方式连接,把下载的visionaryplus.r14.apk文件拷贝到TF卡的任意位置,打开文件大师,找到你刚才放置visionaryplus.r14.apk的地方,点击安装它(如果提示不能安装,看看手机的设置―应用程序―未知源,确保打勾了)。
5、
手机在进行同步工作的时候,即最上面的状态栏出现此符号: ,请尽量不要运行该软件,并且,尽可能的用任务管理器结束内存中正在运行的程序,这样可以避免出现很多不必要的问题。
6、断开手机和电脑的连接,然后运行该软件,以下是运行后的软件界面:
7、要取得临时root权限,直接点击Temproot now就可以了。
8、要取得永久root权限,点击Temproot now后,稍等片刻,等屏幕返回首次打开界面,再点击Attempt Permroot now,superuser会自动启动,询问你是否允许给予通行,点击允许,即可得到手机的永久root权限(手机会自动重启)。
下面介绍下各个选项的含义:
第一个可选项,勾选后,手机每次开机后都会自动启动该软件,然后取得临时root权限。不建议使用该功能,需要临时root权限的时候,我们手动打开它照上面第7步做就行了。
第二个可选项,勾选后,会在取得root权限后,运行visionary.sh脚本。
第三个可选项,勾选后,会在取得root权限后,将system分区的状态改为可读写。
第四行,Temproot now,取得临时root权限。下面的说明大意是,点击这里,会尝试得到临时root权限,重启手机后,该权限消失。
第五行,Attempt Permroot now,尝试取得永久root权限。下面的说明大意是,会尝试得到永久root权限,重启手机后root权限会被保留。运行此选项后,你的手机将会重启。
第六行,Uroot now,解除root权限。下面的说明大意是,会尝试在你的手机上解除root权限。运行此选项后,你的手机将会重启。
作者在主页上有个软件的相关说明,大意如下:
首先,使用该软件会有一定风险。
取得临时root权限是比较安全的,因为它的原理是安装一个superuser程序,然后建立一个虚拟磁盘,一切操作都是在虚拟磁盘上完成的,并没有改变system分区的只读状态。
取得永久root权限有一定的危险,虽然只是往system/xbin/下面拷贝了一个小文件,但是,对系统的任何操作,都存在不可预知的风险,有可能会使你的手机变得无法启动。
所以,你在取得永久root权限之前,应该有一个自己手机的官方系统升级文件。(什么意思呢,假如,你的手机和笔者一样,是港版的,而且你也知道了软件版本号,那么在进行永久root权限操作前,你要先把不低于该版本的官方升级EXE文件准备好,以备不时之需。)
这里特别说下,很多论坛转载的root教程,都会让大家下载一个superuser程序,但在作者的软件说明里,VISIONary+软件本身就带了superuser这个程序,当你点击临时root权限的时候,该软件就会被自动安装到手机里。
取得永久root权限后,VISIONary+就用不到了,大家可以选择是否把它卸载,但superuser程序必须保留。
如何确认手机已经取得了root权限呢?
不管是临时的,还是永久的,验证方法都一样,这里要用到前面下载的ADB工具了。
ADB命令要正常工作,需要三个前提条件:
1、
电脑上要安装手机的驱动程序,我们上面安装了HTC Sync就是这个用处了。
2、
进入手机的设置--应用程序--开发--usb调试,打勾。
3、手机用数据线连接电脑,选择“仅充电”模式。
做好上面的工作了,请继续:
1、打开电脑的命令提示符,win7下是:开始―所有程序―附件―命令提示符。其他windows系统大家自己去找吧。
2、回到C盘根目录下,然后进入到ADB程序所在目录(如果你复制了ADB的文件到windows/system32/目录下,此步可省略),类似下图:
3、输入命令:“adb devices”回车,查看手机是否正确连接。如图所示:
以HT开头的,就是你的手机序列号了(也可能是SH开头,代表上海工厂生产的产品),说明手机已经正确连接。如果没有出现,请检查前面的步骤。
4、正确连接手机后,输入:“adb shell”,进入到手机的命令行方式下,接着在提示符$后面,输入:“su”,然后回车,如图所示:
如果出现了#号,说明取得root权限成功。
接着输入:“exit”回车,“exit”回车,两次。就会退出adb shell模式,关闭窗口即可。
第七章:详解SHIP ENG S-ON S-OFF
在教程的第四章里,曾经教大家如何查看手机信息,当中简单介绍了几个名词,由于这几个名词对刷机来说比较重要,所以这里详细讲解一下。
ACE PVT SHIP S-ON
这一行的后两个字段,我们介绍过了分别有二种情况,那么放在一起就会产生四种组合。
SHIP S-ON
------这种是最原始的状态,手机出厂的时候,是零售版的hboot,所以显示为SHIP,安全锁也是打开的,所以显示S-ON。
此时手机的system和recovery分区是只读的。典型的表现是,即使我们按照第六章的教程取得了root权限,可以通过安装RE管理器来删除系统自带的程序,但是,只要重启机器,一切将会恢复原样。
SHIP S-OFF
-----这种是关闭安全锁后的状态。这种关闭安全锁的方法并没有对hboot做修改,所以还是显示为SHIP,由于安全锁被关闭了,所以显示S-OFF。
此时手机的system和recovery分区是可写的。也就是说,可以允许我们进行刷机操作。
ENG S-ON
------这种组合不会出现,下面会说原因。
ENG S-OFF
------这种是通过刷入修改版的hboot,达到关闭安全锁目的后的状态。因为刷入了修改版的hboot,所以SHIP显示为ENG,这时候安全锁其实还是打开的,就是说实际上你的机器还是S-ON的,但为什么会显示成S-OFF呢?
前面说过,手机是由hboot来负责引导启动的,这里简单讲一下流程,hboot启动后,会检查安全锁的状态:
如果检查后发现是S-ON,说明安全锁是打开的,那么hboot在完成引导启动的同时,会将system和recovery分区做写保护。
如果检查后发现是S-OFF,说明安全锁是关闭的,那么hboot在完成引导启动的同时,会将system和recovery分区的写保护打开。
那这个经过修改后的hboot在这里起到什么作用呢?
当手机通过hboot启动,hboot在检查安全锁是什么状态的时候,无论检查结果是什么,这个修改过的hboot都会认为安全锁是关闭的,即让hboot自己欺骗自己,认为安全锁处于S-OFF状态。实际上此时的安全锁还是S-ON,只不过显示出来是S-OFF罢了。
这也就为下面这种情况找到了合理的解释:
机器状态为ENG S-OFF的朋友刷了官方包,然后ENG变回SHIP,S-OFF变回S-ON。但机器状态为SHIP S-OFF的朋友进行同样的操作,却不会失去S-OFF。
因为官方包是一个完整的刷机包,在更新过程中,会把hboot覆盖掉,那么,当这个被修改的hboot被替换成官方原版的hboot后,我们的机器也就回复到了原始的SHIP状态。此时,因为ENG S-OFF是一种假象,所以,S-OFF就变回了S-ON,但是因为SHIP S-OFF是真的把安全锁关了,所以,S-OFF还是保持不变。
既然你刷了ENG的hboot,那么他就会一直都显示S-OFF,所以不会有ENG S-ON的情况出现。
上面两种使机器变为S-OFF的方法原理不同,效果也不同,各有优缺点。
ENG S-OFF:
优点是,允许你执行大部分的指令,例如fastboot,可以让我们更彻底的操作手机;
缺点是,刷官方包会失去S-OFF。而且刷写修改版的hboot有使手机变砖的危险。
SHIP S-OFF:
优点是:刷官方包不会失去S-OFF。而且刷写方法较安全。
缺点是:无法使用fastboot命令。
外加一点,此方法可以让你的CID,变为superCID。这点是ENG S-OFF所不具备的。
哪种更适合你呢??
笔者认为,对于初学者来说,如果只是要刷机,那么SHIP S-OFF对你来说就够了,有的教程讲到,这种方式下,无法用fastboot来刷第三方的recovery程序,那怎么能刷机呢?不用担心这点,我们还可以用其他方法来完成这个任务。
另外,相对ENG S-OFF来说,把机器变成SHIP S-OFF的过程,要安全的多。原因很简单,这个过程不涉及对hboot进行操作。前面说过了,hboot相当于电脑的BIOS,是一个重要的区域,刷坏了,手机就会无法启动,所以,尽可能的,我们都不要去刷hboot。
当然,如果你想要得到更多的功能,那么也可以把机器的hboot刷成修改版的,也就是把机器变成ENG S-OFF。这样就会开放fastboot命令,对手机的操作也会更加灵活。
那是不是两种可以同时拥有呢,当然也是可以的。
选择SHIP S-OFF,还是ENG S-OFF,还是两者皆有,在于读者自己去做选择了。
特别说明一下:网络上所谓的白卡解锁,其实就是SHIP S-OFF,有人说,这种关闭安全锁的方法没用。实在是以讹传讹了。说他没用,只是因为在这种状态下,我们无法使用fastboot命令罢了。笔者在此声明,对于普通用户来说,SHIP S-OFF不但有用,而且还很安全。
第八章:把手机由S-ON 变为S-OFF
为什么要把手机由S-ON
变为S-OFF?
前面介绍过,通过官方提供的刷机包进行刷机,有诸多的限制,比如,只允许你从低版本往高版本升级,而且升级前,还要校验CID,不同地区的不允许你刷,比如你是港版的系统,就不允许你去升级国行的刷机包。
重要的是,即使你按照前面的教程取得了永久root权限,升级后,官方刷机包也会把它干掉,让你失去原有的root权限。同时会把低版本原来所具备的取得root权限的漏洞给补起来,VISIONary+软件也就无法再使用。也就是说,你无法在升级后的新系统上再次通过VISIONary+来取得root权限。目前,针对新版本的XX方法还没有找到。没有了权限,还能干什么呢?
所以在这里,笔者强烈建议:不要在原版SHIP S-ON状态或者ENG S-OFF状态下,运行官方刷机包(或者通过OTA的方式)来进行系统升级。
进入主题:
把手机由SHIP S-ON变为SHIP S-OFF
这里需要介绍一个方便的小工具,由XDA论坛上的jkoljo同学编写,程序名称叫:Easy Radio tool,目前最新版本是2.2,可以从笔者的网盘下载:
http://u.115.com/file/f579386717#
Easy_Radio_tool_v2_2.rar
笔者把原作者的软件介绍,翻译整理如下:
这个工具可以使你的手机变为S-OFF,前提是你下载并安装了VISIONary+。因为运行这个工具,至少需要临时的root权限。使用这个工具后,你可以通过ClockworkMod recovery来刷新你的定制ROM,ENG S-OFF就不是必须的了。
和ENG S-OFF相比,有什么不同?
首先,步骤很简单,你不需要输入任何复杂的命令。Radio S-OFF(SHIP S-OFF)是一种安全的方式。如果你使用这个方法,要变回官方系统是很容易的。
不过,它不具备EMG S-OFF的一些功能,例如运行fastboot命令,从而不能使用我的内核升级工具。
这个工具谁都可以使用,包括SHIP S-ON的用户和已经是ENG S-OFF的用户。
我推荐你使用SHIP S-OFF取代传统的ENG S-OFF,因为SHIP S-OFF更容易被移除,还原到系统原始状态,并且不需要刷新hboot分区,这是非常非常安全的。
下面是软件的运行环境:
1、windows XP SP2或更高版本的系统
2、.n et Framework 4.0
3、HTC Sync(或者ADB驱动)
4、一台运行官方内核版本的DHD手机(或者内核是
Apache14's 1.0.7 / 1.1.4 Sense)
5、
该软件不能运行在1.72.405.3或更高的软件版本之上,以及相对应的新版radio也不行。
具体操作流程如下:
1、首先确定你的手机取得了永久root权限。
2、手机开机后,进入设置--应用程序--开发--usb调试,打勾。
3、手机用数据线连接电脑,根据屏幕提示,选择“仅充电”模式。
4、在电脑上,下载上面的工具,解压,然后运行Desire HD easy radio tool.exe。如图所示:
5、选择第一个选项,然后点击“Do it!”,这时候看下手机,会有superuser程序弹出,询问你是否允许给予最高权限,点击允许。
6、进度条跑完,完成工作!
7、与此同时,会在TF卡根目录自动建立一个备份文件,名字为:part7backup-xxxxxxxxxx.bin,这是你的手机分区7(放置radio
配置的地方)的一个备份,请把这个备份妥善保存在安全的地方。
细心的朋友可能注意到了,选择第一项,不单是把手机S-OFF了,同时也把我们的CID修改为superCID,而且解除了sim lock(手机sim卡锁)。
顺便提下,刚才第7步那里产生的备份,有什么作用呢?
进阶用户可以通过手机里面的超级终端程序,在具备root权限的条件下,直接运行指令而把手机恢复到S-ON的状态,命令格式如下:
dd if=/sdcard/part7backup-xxxxxxxxxx.bin of=/dev/block/mmcblk0p7
如何能够知道,我的手机已经S-OFF了呢?
如果你是在机器是SHIP S-ON的状态下来操作的,完全关闭手机,然后按音量-键的同时按开机键,进入HBOOT,查看第一行,如果SHIP S-ON变成了SHIP S-OFF。那么就说明你成功了。
如果你是在机器是ENG S-OFF的状态下来操作的,那做完后,会保持ENG S-OFF状态不变,但我们可以通过查看CID是否变为11111111,来确认该操作是否成功。
完全关机,按音量-键的同时按开机键,进入HBOOT,按音量+-键来移动光标,选定SYSTEM INFO,按电源键确定,你会看到类似的如下信息:
SN-HT0C8RX0****
LCD-SHARP
TOUCH PANEL-SYN3KW_020b
Commit-7eafc656
OS VER.-1.32.832.6
IMEI-35266804933****
CID-11111111
RAM-768MB
eMMC-SANDISK 2223MB
看到了吗,CID那里,是11111111
而在这之前,我的机器是这样的:
SN-HT0C8RX0****
LCD-SHARP
TOUCH PANEL-SYN3KW_020b
Commit-7eafc656
OS VER.-1.32.832.6
IMEI-35266804933****
CID-HTC_622
RAM-768MB
eMMC-SANDISK 2223MB
说明:SYSTEM INFO选项,只在ENG S-OFF模式下才会出现。
已经按照其他教程做了ENG S-OFF解除安全锁的朋友,还有没有必要进行这一章的内容呢?笔者觉得还是很有必要的。
第一,可以让你不受限制的刷官方包,不用担心再失去S-OFF。
第二,让你的CID变为superCID,不用再去做金卡。
怎么还原成S-ON呢?
1、首先要找到一个官方提供的刷机包,开头是RUU的EXE可执行文件并运行它刷新手机。(一定要是一个尽可能低的版本,因为下面要用到VISIONary+)
2、运行VISIONary+,点击取得临时权限。
3、手机开机后,进入设置--应用程序--开发--usb调试,打勾。
4、手机用数据线连接电脑,根据屏幕提示,选择“仅充电”模式。
5、运行Desire HD easy radio tool.exe。
6、选中最后一项,Stock CID,并在后面填入你自己的CID(还记得在哪里查看吗?前面有介绍过的),例如如果你是港版的机器,你就填入HTC_622,然后点Do it!
7、选中倒数第二项,Radio S-ON,D0 it!
8、完成。
享受你的原装系统吧。
说明:关于查看CID,如果你的机器是SHIP S-ON的,那你是看不到SYSTEM INFO选项的,这时候我们可以通过ADB命令来查看:
打开命令行提示符,输入:“adb shell getprop ro.cid”,如图所示:
HTC_621即代表你的手机是销往台*湾地区的。