至於所需要的工具... 請到那幾篇文章中的連結去抓吧.
http://www.kingmobile.net/bbs/viewthread.php?tid=89680&highlight=
http://www.pdaclan.com/viewthread.php?tid=30396&extra=&page=1
http://www.kingmobile.net/bbs/thread-96851-1-2.html
http://www.modaco.com/content/i8000-omnia-ii-gsm-rom-discussion/296097/roms-cooking-i8000-info-kitchen-tools-etc/
http://board.phonehk.com/viewthread.php?tid=263121
解開 ROM 的動作:
1. 取得所要修改的原始 ROM. 如果是 .exe 的一體包, 可以用 900_executor 來解開,
不過通常我們只會需要 CSC 的部份. 因為目前由 .exe 檔案取得的 MVND.mst 或 MVND.bin,
使用後頭的工具並不能完全解開來, 會少一些東西.
(如果不要 CSC 的部份... 以後若 CSC 有異動到, 就先燒一次一體包再燒產生的 ROM 吧)
2. 先刷一次你要修改的 ROM 到機器上, 然後在記憶卡中執行 dskdump.exe 來產生 rom_dump.bin
(如果沒有記憶卡, 上頭文章也有一個程式可以把 rom_dump.bin 產生在 My Storage 上頭的)
3. 使用 900_executor 來解開 rom_dump.bin (就是 PDA 的那部份)
這會在那目錄下產生 dump 的目錄與 imgfs.bin 與 OS.NB 這兩個檔案. 基本上, ROM 的拆解就完成了.
接著... 把 dump 目錄下頭, 不要的檔案都刪除 (或移到別的目錄去, 這樣子如果有需要, 也比較容易再
搬回來).
處理時... 可以先拿別人做的 Lite ROM 解開來參考, 用 Beyond Compare 這軟體可以很容易知道兩邊的檔案有什麼不同.
處理完後, 接下來就可以把檔案再打包成 ROM 了.
1. 執行
Imgfsfromdump.exe imgfs.bin imgfs-new.bin
會產生 imgfs-new.bin 這個檔案.
2. 執行
osnbtool.exe -c os.nb 2 imgfs-new.bin
會產生 os.nb.NEW 這個檔案.
3. 使用 010 Editor 來打開 os.nb.NEW 這個檔案, 移動到檔尾處, 看一下檔案的大小. 舉例來說, 看到
的大小為 D34:0000.
4. 使用計算機, 計算 D340000/1F800, 得到 6B4. 然後算一下 6B4*1F800, 得到 D326000.
5. 再用 010 Editor 看一下 os.nb.NEW 的 D32:6000 位置後頭到檔案尾, 是否都是 FF 字元.
5.1 如果是, 表示我們可以用 D326000 這個檔案大小, 與 6B4 這個區塊數量. 然後用 010 Editor 的
Edit => Set File Size 功能把檔案大小改成 D326000.
5.2 如果不是, 我們就把 6B4 再加 1, 得到 6B5 這個檔案大小, 再計算 6B5*1F800=D345800 這個
檔案大小. 然後用 010 Editor 的 Edit => Set File Size 功能,把檔案大小改成 D345800, 且多的
資料用 FF 字元補.
6. 上頭檔案大小改過後就存檔, 然後再使用 010 Editor 的 Tools => Check Sum 功能, 選擇
Checksum - UByte (8bit) 來計算, 算出來下頭會有兩組數字, 假設是 00000005 4EC1E224, 後頭
那個就是檢查碼的數字.
7. 上頭會得到三組數字, 檔案大小 D326000, 區塊數量 6B4 (或是另一組 D345800 與 6B5), 與檢查
碼 4EC1E224.
8. 找之前我傳上來的 1.nb0.pre (或自己隨便找一個 .nb0 的 ROM, 用 osnbtool.exe -sp pda.nb0
解開來就會有 .pre 的檔案)
9. 修改 1.nb0.pre
把上頭得到的檔案大小 0D 32 60 00 倒過來看為 00 60 32 0D, 填到 1.nb0.pre 的 4 到 7 的位置.
把上頭得到的區塊數量 00 00 06 B4 倒過來看為 B4 06 00 00, 填到 1.nb0.pre 的 8 到 B 的位置.
把上頭得到的檢查碼 4E C1 E2 24 倒過來看為 24 E2 C1 4E, 填到 1.nb0.pre 的 C 到 F 的位置.
然後存檔離開.
10. 執行下頭的指令
copy /b 1.nb0.pre+os.nb.NEW 1.nb0
產生 1.nb0 就是做出來的 ROM 了.
我寫了個小程式, 搭配那個算 checksum 的程式, 把上頭的幾個步驟處理掉了, 所以步驟變比較簡單了.
4. 在準備好 1.nb0.pre 與 os.nb.NEW 之後, 執行下頭的指令
change_nb_size.exe OS.nb.NEW 1.nb0.pre
5. 然後執行下頭的指令
ChecksumTool.exe -f os.nb.NEW -w 1.nb0.pre -wo 0x0C
6. 執行下頭的指令
copy /b 1.nb0.pre+os.nb.NEW 1.nb0
產生 1.nb0 就是做出來的 ROM 了.
如果你要另外加東西, 就自行研究怎麼去改 initflashfiles.dat, default.hv, user.hv 的檔案與相關
的 .rgu 檔案吧.
附加壓縮檔: 200912/mobile01-392c469316763f53303350ea43efac45.zip




























































































