您的位置:首页 > 移动开发

How to apply Android 2.3 to my HTC

2011-01-27 02:00 302 查看
      相亲们哪,刷过Android2.3.1系统之后的手机被我已把玩半周了,仿佛新机到手一般那么吸引人;又好似体验最新版实验品,优点或不足的发现都让人觉得像品味着糕点。分享下攻略吧,效仿者可步步紧跟,围观者可一同品头论足一番。

 

Android刷机原理

      俗话说“理论指导实践”,咱得搞清楚原理,再动手时才有方向性,也可触类旁通了。若埋着头一步一步扣操作步骤走,只会战战兢兢,稍有不慎时便不知所措慌了手脚。

 

1. 刷机刷的是什么

      Android刷机刷的是固件系统,是手机系统所在的ROM存储器。ROM是“Read-only memory“的缩写,任何嵌入式系统都选择将系统程序烧制在这样的存储器上,每次开机时加载启动,只读的特性保证了系统稳定加载且不被篡改。Android手机当然用的是可擦写ROM(EEPROM),只不过用root权限隔离了用户的文件操作。这里顺便提下,Android作为基于linux-2.6内核的正儿八经的操作系统,享受着手机硬件上的4类存储区:

系统ROM。手机非易失性存储器的一部分,可以看作是个分区,专门存放系统程序文件。

用户ROM。手机非易失性存储器的另一部分(自然是另外那块分区),供用户存放数据或安装应用程序。

SD卡。Secure Digital card作为扩展存储空间的外接存储器,Flash也是EEPROM的一种不过特殊点,容量常较大。它和使用U盘的原理相同,而且特别是可以被Android2.1之后的系统安装应用软件。

内存RAM。Random-access memory自不必解释了,强调的是它是易失性存储器,断电立即清除内容。

      那么我们就清楚了,这里所谓的刷机(或水果家族的完美越狱)是将矛头对准系统ROM,试图通过以特定内容重写系统ROM的方式,破解机器上原有系统对我们使用的限制,或应用新版本系统到机器上以取代旧系统。多说一句,很多新系统开始时之内被“非完美”越狱,其特点就是系统不能重启,其原因现在很明显了,就是在还无力直接修改ROM的时候,在系统加载后对RAM中运行着的程序做些手脚,躲过一些限制,但RAM掉电擦除后就无效了。

 

2. 刷机绕不开的几个词

     Android刷机过程中碰到的名词很多,不过每个词在现在看来都更有深意。

     * Root权限(http://www.cncn6.com/s60v3/2010/3021.html),需要指出的是,此文是Android2.3之前写的,对将程序安装到SD卡部分所言和现实有出入,在前面一篇文字中我已提到,Android2.3支持直接安装应用到SD卡,这和root权限没什么关系了。最根本获取Root权限的方法是使用金卡引导来重刷特制ROM。

     * 金卡(gold card),它是让你欺骗手机上的官方升级程序以获得批准从SD卡文件刷新ROM的一把钥匙,这需要一个将手机读出的CID值解密后写入普通SD卡引导区使之成为所谓“金卡”的过程。究其原理必须要先解释CID,下面引述一篇文章的话,其链接在后。

     * “CID(CustomerIDentity),简单来说就是手机的平台版本。刷机过程中SPL(SecondProgramLoader)需要根据CID效验ROM是否可用,并决定是否刷入,一般情况下要求一定要对应CID的ROM才可以用,CID不同的ROM是刷不上去的。对于普通的CID来说,一般有两个限制:1)不能刷入低版本的的ROM,2)不能刷入不同平台的ROM,比如:在台版机上刷欧版ROM、跨型号刷ROM等。SUPERCID有些型号手机的CID的限制是可以通过软件来破解的,但也有也些型号目前还没有有效的方法破解CID。”

    
“破解限制之后的CID成为SUPERCID,拥有SUPERCID的机器可以刷任意版本和平台的ROM。具体来说,同一个手机既可以刷台湾的ROM,
也可以刷日本的ROM,也可以刷香港的等。甚至也可以刷进一个其他型号手机的ROM。但是这也带来很大的危险性,因为没有了限制,没有了校验,刷入一个错误的ROM也是很容易的事。我们一般刷机时需要破解为SUPERCID,因为一方面现在大部分情况下刷机所用的ROM都是
通不过CID校验的;另一方面万一刷机失败,对于SuperCID的手机更容易修复。”

     可见,制作金卡和获取Root权限在Android头一次刷机过程中不可避免,而头次之后就有更方便的方式刷机了,如直接使用ROM Manager应用。

     * ADB(Android Debug Bridge)是通过电脑连接Android手机进行指令发送和调试的“桥”,包含在Android Sdk中,绝大多数刷机命令都是直接通过ADB shell发送指令到手机上执行的,甚至包括将特定文件的传输。

     更多名词解释可参见这里:http://bbs.anshouji.com/thread-507-1-1.html

 

Android刷机实战

     弄明白道理之后,就差具体怎么做了。前人写得很细很好,我不必另搭门面了。

金卡制作:http://www.iteeyan.com/2010/07/root-the-htc-legend-g6-goldcard-maker/

Root权限获得:http://www.iteeyan.com/2010/07/root-htc-legend-g6-hacker/

刷机到Android2.2:http://www.iteeyan.com/2010/08/upgrade-legend_g6_2_azure_02/

更新到Android2.3:http://www.iteeyan.com/2011/01/flash-htc-legend-g6-to-android-2_3-gingerbread/

必须要说明几点:

攻略中的机型是HTC Legend,这点上对相似的机型大同小异,只需找到合适的固件。

攻略中使用的是windows系统来帮助刷机,而用mac也完全可以做,攻略里提到R4-Legend-root是是转为Legend写的一些利用ADB的命令,它兼容Windows、Mac和Linux三种操作系统。

上面的步骤中,从“金卡制作”到“获取Root权限”再到刷某个Android版本的固件,这个过程中必须按顺序按步骤完成,不能偷懒。但可以自己决定的是:<1>Root权限获得后刷机到哪个版本,我就是直接刷到2.3的;<2>文中提到的刷Android系统后跟着刷进的Google App包不是必须的,它只安装更多的google应用(个人觉得很多是垃圾)到系统中,而且不易卸载。

最后想说,ROM Manager(这个Android应用的中文名叫“固件管家”)这玩意儿不怎么好使,不要试图在旧版本系统下安装后直接用它来刷机了,尤其是现在有很多“一键Root”的应用能够直接拿到Root权限,一位就可以跳过卡面两步了。其实道理在上文中已经不太连续地交待清楚了,只是在这儿用自己的教训再提醒下。

总结

     如果看了上一篇blog你已经被Android2.3的有点有所吸引,开始琢磨着要刷刷机试试新玩意儿了,希望看了这篇文字之后能让你放下不少心中的疑惑,迈出自己的一步。

     感谢上面链接里攻略的作者Jackeroo
,他详实的文章让我受益匪浅。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息