前幾天 DOPOD 官方放出新版的 ROM,恰巧最近看了一些教學文章,大概瞭解如何訂製屬於自己的 ROM,於是昨天就勇敢的拿自己的 577W 開刀。結果還蠻順利的,在這邊要把自己的一些心得,跟大家分享。
首先呢,要訂製自己的 ROM 需要有兩樣東西:
1)可以供修改的 ROM 檔案
2)可以修改 ROM 的工具
關於第一點,可以直接從 Dopod 官方提供的 Dopod_577W_Romcode_XX.exe 解出來,如此你可以得到 nk.nbf 這個檔。
關於第二點,大陸那邊有許多的網站都有提供工具讓人家修改,但是修改 WM2003 跟 WM5.0 的工具不太一樣,我這邊僅列出可以修改 WM5.0 的工具。
我的工作環境如下:
1)在 C:\ 建立 ROMEdit 目錄,建立 Tools 目錄,然後把修改 ROM 的工具都解到這個目錄下。
2)在 ROMEdit 目錄下,建立 NewROM 目錄,用來產生新的 ROM。
步驟一: 先解開 ROM 裡面的 OS 部分,利用 TyphoonNbfTool.exe 工具解開 nk.nbf。
1)執行 TyphoonNbfTool.exe,選擇 file ==> open BNF ,選取您的 nk.nbf 檔案。
2)順利開啟之後,點取畫面下方的 "OS",然後按右鍵選 "Dump decrypted",他會問你要儲存到那邊,我是儲存在 C:\ROMEdit\NewROM\。成功轉出之後,您會得到一個 OS.n_d 的檔案。
3)把 OS.n_d 改名為 OS.nb。
![[訂製 ROM 教學] 如何訂製屬於自己的 ROM 版本](http://attach.mobile01.com/attach/200605/mobile01-6113150a9b2a79528e4dca6568df2d31.jpg)
步驟二: 開啟 DOS 命令列,這裡我們要解開 OS.nb 裡面的檔案。
1)在 NewROM 目錄下輸入 ..\Tools\prepare_imgfs os.nb -nosplit,成功之後, NewROM 目錄會多出兩個檔案,imgfs_raw_data.bin 及imgfs_removed_data.bin。
![[訂製 ROM 教學] 如何訂製屬於自己的 ROM 版本](http://attach.mobile01.com/attach/200605/mobile01-86256ba802fd2ee264b889a2cf041e05.jpg)
2)同樣的在 NewROM 目錄下,輸入 font color="#FF0000">..\Tools\viewimgfs imgfs_raw_data.bin,會真正把 ROM 裡面的檔案一個個解開,解開的檔案會被放在 NewROM 資料夾下面的 dump 目錄。
![[訂製 ROM 教學] 如何訂製屬於自己的 ROM 版本](http://attach.mobile01.com/attach/200605/mobile01-a3dfd491b07b45e5cd4ab10d26fb9737.jpg)
步驟三:簡單訂製您自己的 ROM
dump 目錄裡面包含了手機開機時會用到的檔案,不管您要將 ROM 裡面的檔案刪除,或者是新增加某個檔案,都可以直接在這個目錄進行。
舉各例子,例如我要修改手機的"簡訊"功能鍵,當我按下那各"簡訊"鍵時,可以直接讀取簡訊,而不是進入簡訊中心。
找到 dump 目錄下的 Short_AP2 這個檔案,然後取消他的唯獨屬性,好讓我們可以修改裡面的內容。之後用文書編輯器修改裡面的數值。
原本裡面是:
19#\Windows\tmail.exe
改成:
19#\Windows\tmail.exe -service "SMS"
改完之後,儲存開檔案,然後再把唯獨屬性加上。
同理,任何按鍵的對應都可以這樣改。
步驟四:徹底訂製您自己的 ROM : 修改 Registry
這個步驟才能真正修改訂製您自己的 ROM,但也最屬複雜。因為要更改登錄檔。當然如果您只是要刪刪減減 ROM 裡面的檔案,您可以用取巧的方式來達成。但是如果您要加入程式很複雜,有動到登錄檔,就必須修改登錄檔了。
1)WM5.0 的初始登錄部分包含 default.hv 和 user.hv 這兩個檔。 每次機器回復原廠設定時,這兩個檔案的內容會被寫回系統的登錄檔,然後會繼續將 *.rgu 和 *.provxml 等文件的內容,也寫回系統登入檔。所以簡單的說,看您訂製化的程度,您可能必須更改的檔案還不少。
2)hv 文件必須透過轉換,無法直接編輯。所以我們必須先把 default.hv 或者 user.hv 轉成文字編輯器可以編輯的檔案,在這邊推薦使用 EMEditor,因為他不會更改檔案的編碼格式,所以推薦使用。
a)首先要設定環境變數,在 DOS 命令列模式下,切換目錄到 C:\ROMEdit\NewROM,然後輸入 set _FLATRELEASEDIR=. ,然後把 default.hv 從 dump 目錄複製到 NewROM 目錄。然後輸入 ..\Tools\rgucomp -o default.hv -nologo > boot.rgu。
b)用 Emeditor 打開 boot.rgu ,然後選擇另存新檔,編碼方式採用 UTF-16LE,然後存檔。之後從新打開 boot.rgu 編輯,確認這個檔案的編碼方式已經被改為 UTF-16LE,然後在 boot.rgu 的第一行新增 REGEDIT4。
![[訂製 ROM 教學] 如何訂製屬於自己的 ROM 版本](http://attach.mobile01.com/attach/200605/mobile01-3bb76182b924826c9876039de9b71624.jpg)
c)因為 rgucomp 在轉換時,無法順利的轉換 unicode ,所以導致中文字等相關訊息都不見了,所以我們必須將這些字找回來,怎麼找?建議可以把手機裡面的登錄檔 dump 一份出來比對,就很清楚明瞭了。
![[訂製 ROM 教學] 如何訂製屬於自己的 ROM 版本](http://attach.mobile01.com/attach/200605/mobile01-6b86c53bdc8ee7164d2f48da2e872efb.jpg)
i)這裡簡單介紹怎麼改登錄檔,例如我要讓手機每次回復原廠設定時,都已經解鎖,該怎麼作?
可以更改 boot.rgu 裡面的設定即可做到。
解鎖更改:
尋找 00001001 , 將值從 2 改為 1
尋找 00001005 ,將值從 10 改為 28
尋找 00001017, 將值從 80 改為 90
新增加一行,0000101b,數值為 1
![[訂製 ROM 教學] 如何訂製屬於自己的 ROM 版本](http://attach.mobile01.com/attach/200605/mobile01-7018fc576f9d699e1b85b53f9f5e2083.jpg)
又例如要讓 USB 連線時不要充電:可以把 boot.rgu 裡面的 "EnableUsbCharging"=dword:1" 改為 "EnableUsbCharging"=dword:0" 即可,這樣手機就不會每次插上 USB 就自動充電了。
d)改完之後,我們要把 boot.rgu 轉回原來的 hv 檔案。這時候需要在 DOS 命令列模式輸入, ..\Tools\rgucomp -b,如果 boot.rgu 檔案裡面有錯誤(例如中文字不見了、打錯之類的),那麼轉換會失敗,然後會跟你說那邊有錯,例如下圖這張,就是告訴我們第 877 行那邊有錯。您可以用 Emeditor 一個一個修正錯誤即可。
![[訂製 ROM 教學] 如何訂製屬於自己的 ROM 版本](http://attach.mobile01.com/attach/200605/mobile01-32137ea068abb51de97e0cc656392e1c.jpg)
e)如果 boot.rgu 順利轉換成功,您會看到類似下圖的畫面。
![[訂製 ROM 教學] 如何訂製屬於自己的 ROM 版本](http://attach.mobile01.com/attach/200605/mobile01-63a90aebff337c36a4026eb84eaf7ad0.jpg)
f)之後在 NewROM 目錄下會有一個 boot.hv 檔案,把這個檔案改名為 default.hv 然後取代原先在 dump 目錄下的 default.hv,如此修改完成。
g)又例如您想修改 OEMString 為 Dopod586W,好讓語音控制可以使用,這時候您只要修改 dump 下的 mxipupdate_OEMOPERATOR_101.provxml 這個檔,把裡面的 OEM String 改為 Dopod586W 就行了,這樣以後就算回復原廠設定,就不用解鎖跟改登登錄檔,一樣可以裝軟體跟用語音控制。
步驟五:寫回手機
1)重新產生 imgfs_removed_data.bin 檔案,在 DOS 命令列輸入 (NewROM 目錄下) ..\Tools\buildimgfs 。這個動作會花點時間,請耐心等候,如果順利,會看到類似下面的畫面。
![[訂製 ROM 教學] 如何訂製屬於自己的 ROM 版本](http://attach.mobile01.com/attach/200605/mobile01-f4cdef8c0db87a8cc3f5ffeb901ae588.jpg)
2)產生 nb 檔案,一樣在 NewROM 目錄下輸入 ..\Tools\make_imgfs os.nb -nosplit,
順利的話會看到類似下面的畫面。
![[訂製 ROM 教學] 如何訂製屬於自己的 ROM 版本](http://attach.mobile01.com/attach/200605/mobile01-e3e96c092d82bf92d1bfd3e14e9a3343.jpg)
3)重新產生 nbf 檔案,在 Tools 目錄下,執行 nb2nbf_tornado.exe,然後按照下圖的設定,之後按下 translate,產生的檔案預設應該是在 Tools 下面的 nk.nbf。
![[訂製 ROM 教學] 如何訂製屬於自己的 ROM 版本](http://attach.mobile01.com/attach/200605/mobile01-1a7aec2b515aef2ca447d4ff9c8c28b5.jpg)
4)執行 Tools 目錄下的,ROMUpdateUtility.exe,一步一步照著下去,就可以順利更新您的 ROM 了,您必須把產生的 nk.nbf 放在跟 ROMUpdateUtility.exe 同樣的目錄下。
後記:本篇教學文章乃是小弟我親身試驗過,在小弟的 755W 上面可以正常工作,其他機器上面如果有相對應的 ROM 可以改,應該也是一定沒問題,但是如果您要把您的 565 or 575 升級到 WM5.0 ,小弟就無法保證了,因為您還得考慮 SPL 的問題。歡迎有興趣修改 ROM 的人互相討論。
謝謝收看!!
ROM 修改工具下載: 200605/mobile01-568ab0b9e77ac97fbc5b1de598e078fd.zip