自製 ROM (Case 2)

This document is provided as is. You are welcomed to use it for non-commercial purpose.
Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu

請勿轉貼

看其他教材


最近 HTC Desire DHD 的使用者大概都聽說了一個消息:Sense 3.0 的官方 RUU 已經在歐洲釋出了,可是台灣還是不動如山,完全沒有任何消息(如果真的 如此,我下一隻手機絕不會是 HTC,甚至投靠韓廠手機都可以接受;真的是 一整個無言)。

如果你已經刷機了(我之前試了 XDA 的 SmartDroid 1.1,真順),但是 就是喜歡"原汁原味"的官方 ROM,你也可以跟我一樣來製作自己的 ROM。 所謂自己的 ROM,也就是把所有現成的材料(包含 boot.img、system.img、 應用程式的 apk、不同版本的 kernel 等)依據自己的需求,然後把一道菜 (也就是 ROM)製作出來;由於過程還蠻像"煮菜"的過程,所以很多 XDA 的 專家把這一套過程稱之為 cook。

ROM 的製作過程可以簡單,也可以很複雜,我們當然是從最簡單的方式開始。 如果時間允許而且我的興趣仍然維持下去,我希望能夠以 case by case 的 方式說明 dsixda 的 Kitchen 使用法。開始說明前,我還是要提醒大家: 刷機有一定風險,請自行負責;如果你想提供 國內網友一個好用的 ROM,公佈前請務必測試。

由於我的手機已經 root 了,所以我假設你也已經刷過機了;如果你目前是官方 2.3.3 的版本,請參考 終於把 HTC DHD 刷了,文中所參考的文件大概是最簡單的方法。 另外,HTC DHD 的官方 ROM(或者說 RUU;是一個執行檔),可以到 [ROM]Ace Shipped ROM Collection 中找尋並下載 RUU_Ace_Sense30_S_HTC_WWE_3.12.405.1_Radio_12.65.60.29_26.14.04.28_M_release_225512_signed.exe;特別說明一下, 這個檔案就是所謂的 RUU 檔,其中 WWE 代表全球版,如果你想直接刷這個 檔案也可以,但是第一,你必須改金卡,因為 RUU 會檢查你的手機是否在歐洲地區 發行;第二,就算你製作了金卡也安裝了,你完全看不到中文。我試過了,你可以 在 Android Market 下載安裝 morelocale2,如此你就可以看到、使用中文了, 可惜我最愛的"手寫"中文輸入法還是看不到(其他像注音等輸入法是可以看得到的), 不過你如果不在意沒有手寫輸入法的話,製作金卡、刷 RUU、以及安裝 morelocale2 大概是最簡單的方法。

自製 DHD ROM 可以依照下列的步驟完成以上的目標:(由於時間的關係,以下是 簡易的過程,有時間再把圖補上)

  1. 準備工作: 我們假設你已經安裝好 Kitchen 了,並且知道 Kitchen 的安裝目錄等資訊;若是不清楚,請先仔細閱讀 安裝 Kitchen

  2. 請執行上述 RUU 檔,等到第一個畫面出現的時候,請不要繼續執行下去, 而是到 C: 尋找 rom.zip 並將它複製到一個事後可以存取的目錄;等到 rom.zip 複製完成,即可結束 RUU 的執行。

  3. 將 rom.zip 直接放置於 f:\cygwin\home\JLU\kitchen\original_update 的目錄中。

  4. 利用 Kitchen 製作 ROM 的第一個步驟就是要先決定要使用哪一個 材料,而材料中最重要的就是 boot.img/system.img 或者別人已經製作好的 ROM。 過程中,請選擇 "rom.zip" 的方式,之後 system.img 和 lib.img 會依序被解壓縮出來。我們假設產生的一些檔案放在 f:\cygwin\home\JLU\kitchen\WORKING_RUU 目錄中。

  5. 如果你想另外安裝程式(例如 4Ext Recovery Update),請將該 apk 檔 複製於 system\app 目錄內;如果想要刪除某些程式(例如我不使用 Twitter),請到 system\app 目錄內將相關的 apk 檔刪除。

  6. 請依序選擇 2 和 3 分別 superuser 和 busybox 安裝到 ROM 內(也就是 一般所謂的 root)。

  7. (雖然這個步驟可有可無,但是建議做,因為以後可以容易的使用 XDA 上提供的強化套件,例如 CRT animation〔讓打開和關閉螢幕時,有像是早期開關電視機螢幕的動畫效果〕) 利用 "0 - ADVANCED OPTIONS" 內的 "11 - Deodex files in your ROM" 將所有 odex 檔案進行 deodex 的動作。 (在我的環境,包含 Maps.odex 和 VoiceSearch.odex 無法解開;建議可以刪除,然後 再從 Market 下載安裝)

  8. 在完成上述步驟之後,這個步驟一定要小心執行,以避免完成的 ROM 會無法開機。 請執行 "20 - Tools for boot image (unpack/re-pack/etc.)",並在下列畫面出現時, 輸入 "w = Extract kernel+ramdisk from boot.img":

    執行完成後,在 kitchen 的目錄下將會產生一個名為 BOOT-EXTRACTED 的 目錄,請到該目錄的子目錄 boot.img-ramdisk 內開啟 init.spade.rc,剛開啟時該當檔案的內容如以下畫面所示(請注意紅色框框內的內容): 如下:

    請依照下列畫面,將對應的幾行刪除掉,並注意將藍色框框內的部分從 rw 改成 ro

    在完成修改檔案的內容之後,請在下列畫面中執行 "b = Build boot.img from BOOT-EXTRACTED folder (for working folder)" 重新建立 boot.img:

  9. 選擇 "x" 結束 boot.img 的修改之後,請按 "0" 回主選單;回到主選單後,請選擇 "6 - Zipalign all *.apk files to optimize RAM usage" 來 zipalign 所有 apk 檔。這個步驟也是可有可無,但是建議做。

  10. 請到 f:\cygwin\home\JLU\kitchen\WORKING_RUU\system\customize\CID 目錄中,修改 default.xml,其主要目的在於將中文的選項以及 手寫的選項可以出現在設定中。(忍不住又要抱怨,東西在那堙A但是 HTC 就是 不給你用)想偷懶的讀者,我提供了我修改後的 default.xml 下載並覆蓋原始檔案。

  11. 最後,讓我們重新製作 ROM;請在主選單畫面輸入 99。在 ROM 製作 的過程中,請選擇預設的選項,只有在 ROM 名稱的地方可以命名一個你喜歡的 名稱。這個檔案會被置放於 f:\cygwin\home\JLU\kitchen\OUTPUT_ZIP 中, 你只要把它複製到手機 SDCARD 的跟目錄,然後利用 recovery 來刷即可。
以下提供我製作的 DHD Sense 3.0 RUU 的 ROM 的幾張截圖,其中主要說明版本, ROM 的名稱是我自己輸入的 "DHD Sense 3.0 RUU",支援手寫輸入,而且已經 root 了,所以有 Superuser 這個應用程式。


Last Updated:
Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu