CHT 9000,深入了解刷机原理,其它机器可参考

bbiverson

普通会员
2007-01-01
29
0
0
本文由QS【Jacky _q_w, QooQoo】原创,转帖请注明




当我们解开一个9000刷机nbh文件【官方发布的nbh而不是个人修改版】,我们可以发现以下文件:
00_IPL.nb,01_SPL.nb,02_GSM.nb,03_MainSplash.nb,04_SubSplash.nb,05_ExtROM.nb,06_OS.nb
还有两个bmp文件实际不是构成nbh的元素,而是从03_MainSplash.nb,04_SubSplash.nb这两个文件解出来的。
现在分别讲解一下这些文件都是干什么的。
**************************************************************************************************
00_IPL.nb,顾名思义,是手机的ipl,bootloader的一部分,最底层的引导区,负责机器通电和引导SPL。如果这一部分坏掉了的话,机器不能开机,就像把电池拿下来一样。我上一次刷坏就是这里坏了【当然除了os文件外,其他全刷坏了】,hoho,后果,换主板。

01_SPL.nb,SPL,bootloader的一部分,这里我们接触得比较多,但是很复杂。重点讲一下这里,因为它很重要。IPL引导系统通电之后就把任务交给了SPL,SPL来引导系统启动和加载电话模块【Radio】。但是在刷机的时候spl会在引导刷系统之前检查一个东西叫做CID【country ID或者叫做company ID,用来证明机器所属的公司或者国家】,CID也会反过来检查SPL;spl引导刷新电话模块的时候中间也检查一个东西叫做HTC_BOOT【radio bootloader后面具体讲】,他也会反过来检查spl。

QUOTE:
HTC原生的SPL有三个版本【后面我还会讲到高手制作的特殊的SPL】
104,可以任意刷rom【NBH格式,RUU直刷方式】
106,可以刷相同cid的rom【NBH格式,RUU直刷方式】
109,只可以刷相同cid并且更高版本的rom【NBH格式,RUU直刷方式】
104之所以可以刷任意rom是因为他有一个bug,只检查CID一遍,所以当出现提示CID错误的时候进入三色屏重新刷第二遍就可以了。到了106就开始检查cid了,SPL允许刷新相同cid或者SuperCID的机器。到了109的时候就不允许刷低版本和不同cid的HTC原生rom了,因为这里面牵扯到了HTC_BOOT。HTC_BOOT有三个版本106,107,108【目前没有高手自己制造HTC_BOOT】。HTC原生rom,一般SPL是109的rom,HTC_BOOT都是108,108的HTC_BOOT只允许SPL为109的机器并且HTC_BOOT大于108通过刷机【HTC_BOOT不允许降级】,所以前段时间新版日货不能解锁就是这个原因,解锁需要刷一个radio,但是那个radio的HTC_BOOT是107,因此是没有办法刷进去的。
至于CID和HTC_BOOT,我现在也不清楚他们在哪里,和耶律探讨过结果是,要么在bootloader里要么是一个单独区域,但是现在想来还是不合适,因为刷官方nbh的时候有时候会刷新这两个东西有时候却不会。xda上有人说他们和radio在一起,因为只有nbh包含radio的时候中断会破坏CID,也只有刷radio的时候才会刷新HTC_BOOT。具体在哪里期待高手给与解释。


QUOTE:
下面就到了高手们制作的SPL了。
**********1.01 MFG,这个SPL刷机的时候只能用mtty来刷,不可以用ruu直刷。1.01 MFG在刷机的时候不会检查CID,所以想怎么刷怎么刷,也就是我讲的《准安全刷机发》,参考这里:
http://bbs.pdafans.com/viewthread.php?tid=315228&extra=&page=1
**********SSPL:Soft SPL,注意,这个spl和其他spl完全不一样,因为他不存在,是一个假的spl,通过软件模拟出来的。这个spl是模拟的109,但是把检查htc boot和cid的命令都去掉了,所以,用了这个spl也是可以想耍什么都可以【NBH格式,RUU直刷方式】。参考这里:
http://bbs.pdafans.com/viewthread.php?tid=326830&highlight=9000
**********Hard SPL:前几天刚刚出来的,一个高手制作的SPL,号称是最安全和最方便的SPL【我个人感觉是在SPL 104的基础上去掉了检查cid的命令】,最安全是因为他刷rom的时候即使出错导致cid错乱【哈哈,很多人因为用ruu刷机中途死机或者其他原因导致丢失super cid】,也没有关系,因为Hard SPL不检查CID,错乱之后你仍然可以刷OS,也就是仍然可以进系统,用工程模式就能回复cid了。但是这个SPL仍然检查htc boot,所以不可以在cid错乱的时候刷radio。新版本的Hard SPL,基于SPL 109版本,正在制作过程中,这个将会使最完美的,既不检查CID还能通过htc boot的检验。【个人感觉109的HSPL就是把SSPL现实化了】【NBH格式,RUU直刷方式】,参考这里:
http://forum.xda-developers.com/showthread.php?t=296722
如果你明白了上面讲的,你就用该知道什么情况下用什么方法刷机了,而不会再问:“我是XXX机器可不可以用这种方法刷机”类似的问题。
这一部分坏掉的话应该换字库就能解决。但是我也不知道字库是个什么东西。

02_GSM.nb:Radio,电话模块,负责电话,HSDPA,UMTS,EDGE,GPRS,GSM部分,还包括GPS部分,注意,Wifi和蓝牙不属于这里管。
这一部分坏掉的话,9000还能当作纯ppc来用。

03_MainSplash.nb:开机之后我们第一眼看到的画面图片。
04_SubSplash.nb:通常和03_MainSplash.nb一样,紧跟着03_MainSplash.nb的画面。
这两部分坏掉的话没什么关系,开机画面看不全。

05_ExtROM.nb,这个不用多说了吧,Extended_ROM
这一部分似乎很少坏,即使坏了就是少一点空间而已,没什么大不了。

06_OS.nb:操作系统部分,我cook的rom就在这里,这个文件我们有能力自行编辑,所以才会有简体的9000rom。至于如何编辑这个文件不在讨论之列。
这一部分坏掉的话,可以看见第一和第二开机画面,可以进入三色屏,但是不能进系统。
**************************************************************************************************
耍一个完整的NBH文件大概需要30分钟,这个刷入顺序应该就是
00_IPL.nb
01_SPL.nb
02_GSM.nb
03_MainSplash.nb
04_SubSplash.nb
05_ExtROM.nb
06_OS.nb
ipl和spl通常不到1秒就完成了,这两个部分刷坏的情况很小。最慢的是radio部分,如果刷机30分钟的话他会持续25分钟左右,仅仅10M左右的文件,不知道为什么会持续这么长时间。通常刷机过程出现死机都是正在刷radio的时候,所以会导致CID错乱。03_MainSplash.nb,04_SubSplash.nb,05_ExtROM.nb这3个也很快,通常几秒就完了。06_OS.nb大概持续5分钟左右。
 

钟浩生

普通会员
2007-06-11
9
0
0
嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿