ROM
ROM的基本認識
先說一說!個人認為定制韌體 [ROM] 很好玩, 但亦是一個好很煩的工作,所以如你怕煩,就不用學了!!!哈哈
係教定制韌體 [ROM] 前, 先講講 韌體既 基礎知識 先... 咁樣大家日後係 韌體 有問題時容易解決問題.
ROM基礎知識
1. ROM,RAM,Flash Memory
ROM(Read Only Memory)的全名為只讀記憶體,是PPC上的硬盤部分用來存儲和保存數據。ROM數據不能隨意更新,但是在任何時候都可以讀取。即使是斷電,ROM也能夠保留數據。但是資料一但寫入後只能用特殊方法或根本無法更改,因此ROM常在嵌入式系統中擔任存放作業系統的用途
RAM(Random Access Memory)的全名為隨機存儲記憶體,是PPC上的移動存儲部分,用來存儲和保存數據的。它在任何時候都可以讀寫,RAM通常是作為操作系統或其他正在運行程序的臨時存儲介質(可稱作系統內存)
Flash Memory,由於ROM不易更改的特性讓更新資料變得相當麻煩,因此就有了Flash Memory的發展 ,Flash Memory具有ROM不需電力維持資料的好處,又可以在需要的時候任意更改資料,我們常見的FLASH Memory有TF卡(全名:TransFLash卡),SD卡(全名:Secure Digital Memory Card),CF卡(全名:Compact Flash卡)等。
2. XIP,IPL,SPL,RADIO
XIP(Execute In Place)中文意:立即執行。XIP 所起到的作用是讓操作系統內核直接在Flash中運行,不需要拷貝到RAM,即指操作系統或應用程序直接從非易失性存儲器中執行,這樣減少了內核從閃速存儲器拷貝到RAM的時間,其採用的非壓縮映像也減少了內核自解壓的時間,換句話說,XIP直接決定了PPC系統運行和加載程序的時間,也就是直接決定了 PPC系統的運行速度。
IPL(全稱:InitialProgramLoader)中文意:首次裝載系統,其負責主板,電源、硬件初始化程序,並把SPL裝入RAM,如果IPL損壞,由於不能加載SPL,所以機器將不能裝載任何由SPL完成裝載的OS系統。
SPL(全稱:SecondProgramLoader)中文意:第二次裝系統,就是負責裝載OS操作系統到RAM中,SPL損壞了我們可以燒錄機這樣的設備來重新寫入,或者還可以通過刷入初始的ROM版本來實現重寫SPL,我們俗稱「尋找原廠ROM救磚」
RADIO,字面理解:無線電通訊,其負責著PPC作為手機功能的通訊功能方面,包括它的電話和上網功能,事實上,RADIO硬件模塊已經在手機出廠時已經內置,我們所刷入的不過是作為軟件應用層面的東西,因為軟件層面的東西決定了RADIO硬件模塊接收和傳遞信號的頻段分配,所以硬件RADIO的稱謂已經被弱化,我們把這種RADIO軟件層面的東東一律稱為RADIO。
3. 刷ROM,刷RADIO,解鎖,永久解鎖
刷ROM,意指將新的ROM刷入PPC,ROM部分包含:IPL、SPL、OS、EXTROM、RADIO、STORAGE等,目前來說,我們刷入的ROM絕大多數只包含OS部分,OS部分包含兩個東東:XIP、 IMGFS,而這兩個正是影響系統層面的主要因素,鑒於其他部分,因為涉及到核心層面的重新寫入,可另行重寫,所以我們在此進行了拋棄,為了省事,也降低了一次性刷入的風險。
刷RADIO,簡單的說就是刷入新的RADIO模塊的應用軟件,不同的地區不同的通訊服務網絡,無線通訊基站在接收和發送無線信號上的頻段各有不同,那麼處於這個地區和這個通訊服務網絡之內的RADIO硬件模塊,在頻段調整上越接近於本地基站,手機的通訊信號就會越好,信號接收和發送就會越完整越快速,信號搜索上也會越穩定,從而使我們的PPC信號強勁又省電,運營商新的RADIO是根據其基站的新的頻段來調整的,所以隨著時間的推移,當基站有所升級其頻段有所調整的時候,新RADIO的刷入就很有必要了。
解鎖,隨便解釋一下吧,PPC機器在出廠的時候對機器內部核心的CID地址段進行了上鎖,上鎖的原理是基於微軟對於開放性的WM系統所提供的一種特權保護機制,該機制對應用程序能夠訪問的系統資源作了限制,而廠家正是利用這一點實現了對系統ROM的鎖定,鎖定的目的一方面是為了個不同機型間的區別和獨立性,更大的原因是保障廠家對WM系統推陳出新上的獨立自主權,鎖定被集中在機器CID地址段上,不同CID的ROM 相互之間不能進行交互性的替換,如果強行刷入CID不同的ROM,將無法通過CID校驗,嚴重的會出現系統無法修復的現象,由此PPC玩機的"江湖大俠" 們便做起了文章,衍生出一種通過CID地址段欺騙的手段來對上鎖的CID進行破解,破解過的CID刷入後,再刷入其他不同CID的ROM將極大可能地通過校驗(但不是100%都可行)從而將新的ROM寫入機器.
永久解鎖,江湖又稱SuperCID,此種新破解的CID和上面的相比具備更大的優勢在於新ROM作刷入操作的時候,如若操作失敗,原機系統將不會受到較大損傷,就算造成損傷也很容易被修復,所以我們常稱此種解鎖能使PPC「擁有不壞之身」。
4. 重啟,硬啟,定屏,假死,死機
重啟,人人都懂的問題,和PC重啟的機制是一樣的,ROM中的數據全部保存完好,但是RAM中的數據全部丟失,正因此,通過重啟可以解決RAM中運行不正常的現象,比如系統運行中的死機,比如程序模塊找不到等問題,大部分的機器都會在一定時間內做重啟操作,不是因為斷電,而是由於機器運行一段時間之後會有相當一部分的垃圾緩存在RAM中,這是由於我們頻繁操作機器造成的,眾所周知,RAM剩餘得越少,機器運行可用的運行空間就越小,機器的速度也會越慢,耗電量也會增大,那麼重啟機器在關機的一瞬間RAM裡的所有數據全部丟失,包括系統垃圾,在重新開機之後,系統會重新加載應用程序,這時候RAM是一個相對乾淨的空間。重啟的方式大家都知道,連我地球人也知道了,通過電源鍵,通過系統應用程序,通過桶PP。
硬啟,和重啟一樣都需要重新啟動機器,所不同的是硬啟將丟失所有ROM和RAM中的數據,而重啟只丟失RAM,硬啟後系統會自動還原為初始狀態,所有的設定要重新來做,所有的資料要重新拷貝進去,貌似PC上的一鍵還原機制;硬啟的原理是利用機器自身進行了格式化,所不同的是格式化之後機器ROM裡的初始數據將被重新調出,這個初值數據一直都存在於ROM之中,你無法刪除,縱使你作了替換修改等操作,貌似已經修改了數據,其實不然,只是被系統暫時隱藏了,那麼在實行硬啟格式化ROM之後,重啟機器初始數據會被調處進行加載。硬啟操作一般大家不常用,除非系統ROM裡出現了無法修復的錯誤導致機器不能正常運行,那就只能通過硬啟來修復系統,硬啟的方式地球人都知道,按住掛斷和接聽兩個硬按鍵桶PP,或者 1234清除內存。
定屏,顧名思義,就是屏幕定住不動不理會你的操作,PPC中的定屏現象主要指的是在開機三屏(或者兩屏)上,正常情況下開機之後隨著系統的加載,開機屏幕會逐步跳過直到出現調整的界面,但是因為ROM製作中出現錯誤或者遺漏,導致新ROM刷入之後開機屏幕跳不過去了,無論你等待多長時間,手機屏幕定格在那不動了,無法進入系統,導致刷機失敗,之所以解釋定屏是因為在後面的解決疑難雜症裡會用到這個詞。
假死,又稱睡死,非真正的死機現象,假死現象指的是機器表面上運行正常,但是後台的部分應用程序不能被激發,比如在待機模式下電話呼入屏幕無顯示無鈴聲,比如在操作某項程序的時候出現激發暫時性無反應或者反應延時過長。
死機,人人都知道,這個就不說了。
5. 三色屏
三色屏,因該模式下屏幕上呈現三種色彩而得名,三色屏模式最直接的作用是用於查看機器IPL值和SPL值,以識別手機是否成功解鎖,間接作用是在模式下可以進行刷機操作。所有的刷機操作必定要在三色屏模式下實現,不論你是直刷還是卡刷;手動進入三色屏的方法是按住相機鍵捅PP重啟手機,至於其他關於三色屏的內容留到後面再講。
6. 系統原理
WM的Bootloader裡的兩大組成部份,前面說了,IPL負責主板,電源、硬件初始化程序、並把SPL裝入RAM的,SPL則是負責裝載OS操作系統中的,所以開機啟動順序是IPL>SPL>OS,SPL還提供檢測手機硬件、尋找系統啟動分區、啟動操作系統為系統的基本維護提供操作界面以及檢測SD卡等,像我們執行刷機操作的時候,也是SPL在發揮作用,比如連接電腦同步,進入三色等。
在SPL裝載OS的時候,前面我們提到OS分區又分為XIP、 IMGFS兩部分,系統啟動時SPL加載OS分區的XIP到RAM執行,XIP就是WINCE XIP KERNEL,是CE核心部分,XIP是為eXecute In Place的縮寫,在微軟的CE定義中,這塊區域存放的是以非壓縮格式存放,不需加載,由Bootloader直接調用執行。XIP部分大約3MB,包括nk.exe、device.exe等核心程序,就像 PC上的ntoskrnl.exe等。IMGFS就像一個壓縮的GHOST文件,包括了WM的所有系統文件。CE核心啟動後就可以訪問IMGFS文件系統上的OS需要的所有文件了,IMGFS是XPR或LZX壓縮格式,系統訪問上面的文件會自動解壓到RAM。因為普通PE文件調入RAM執行要進行地址重定位,為了提高效率,IMGFS中的文件可以是重定位好的模塊形式,這些程序運行就不用再重定位了,直接調入RAM中保留的PagePool(緩衝池)執行。
刷機就是重寫OS分區了,用定制工具可以把整個OS分區讀成一個NB鏡象文件,然後把鏡象解開到DUMP文件夾,就是所有ROM的文件了。文件分2 種,一種是普通文件,另一種是XIP(ExecInPlace)模塊,這是為了加快OS運行設計的,就是這些文件可以不調入RAM而直接在ROM執行,但因為現在都是NAND ROM,所以XIP模塊其實還是要調入RAM的PAGEPOOL執行。
但是由於XIP模塊有很多地址信息,所以移植OS最難的就是這了。
(以上資料部份是由其他論壇高手提供, 以上部份是收集回來的)
簡易ROM訂做工具之簡易教學
韌體 [ROM] 定制教學當您看完以上的基本韌體知識, 應該開始會對 韌體 有認識了, 雖不會做韌體, 但已不是玩 PDA 而不明白 PDA 原理的人.
開始定制 韌體 [ROM]
1. 韌體 [ROM] 知識
你們平常說刷機子, 更新韌體, 你們知不知道 刷機包中, 其實有一個為 .nbh 的檔案 (多名為ruu_signed.nbh) , 這檔案內有 OS ,Driver 在內.而我們如果要定制 韌體,就需要這個 文件了. 當你下載了官方的韌體安裝包, 韌體安裝包多數是一個 .exe 的檔案, 夠竟怎樣解開呢? 其實不是很困難, 使用 Winrar 解壓縮程式 解開 .exe 文件後會有看到一個 .nbh 檔案. (多名為ruu_signed.nbh)
2. 定制 韌體 [ROM] 工具
定制 韌體 [ROM] 工具有多種, 較有名的有 BEPE 的 Kitchen ( 意思 : 定制韌體廚房 ), 還有 ROMCMD , 本人建議使用 BEPE 的 Kitchen, BEPE 的 Kitchen較整理, 而且定制 韌體較為方便, 功能亦強大.v." , 所以如果係新手的話, 也建議使用 BEPE Kitchen, BEPE 的 Kitchen 在帖下有得下載~有興趣嘗試的人, 去吧! 下載試試去.
3. 定制 韌體 [ROM] 教學 [基本]
為方便建議 : 整個教學以 BEPE Kitchen 作為定制教學的唯一定制工具
a. 解開 .nbh 文件 / .nb 文件
( .nb 文件的做法與 .nbh 一樣)
看完以上的基礎知識後, 應該會明白定制韌體前一定要 DUMP 出 韌體內的 OEM,SYS,XIP 文件. 這些文件是在一個 .nb 的文件內 (多名為 Windows.nb / OS.nb ). 其實要怎樣才能 DUMP 出.nb 呢? 這裡可以暫時不提, 因為 BEPE Kitchen 為你提供方便, 按一下 DUMP 就能將 .nbh 轉為 nb , 又自動將 nb 中的文件 Dump 出來. (即 OEM,SYS,XIP 等文件)
解壓出個工具 , 按 Kitchen.exe 開啟(需要管理員權限), 之後可能會出錯誤訊息 ( 內容關於沒有 EXT,OEM,SYS,ROM 等文件等 ), 不用理他,繼續按 [確定] 就可以了,進入到kitchen 工具主頁後, 去選擇左下角的 Dump nbh/nb/payload, 這時會彈出一個視窗. 選擇你要 DUMP 的 .nbh 文件. (如第一次做韌體, 建議DMUP出官方韌體做Base)
留言列表