關於 i8000 ROM 的拆解與打包步驟 (Lite ROM 的製作)

這些內容主要是參考下頭幾篇文章來的, 基本上... 看那些文章應該就可以做到相同的結果了.
至於所需要的工具... 請到那幾篇文章中的連結去抓吧.

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
2009-12-19 23:29 發佈
有心的大大,推一把,雖說東西不難懂,但是就是比較懶...所以佩服你~
TWU2 大大

我用900_executor 2.6 的pda dump解開rom_dump.bin,產生的Dump資料夾內都是XXX.dll"檔案夾",而不是XXX.dll "檔案";同時電腦也產生RecMod.exe執行錯誤!!!!orz

這種情況好像是Recmod.exe這個程式沒有把XXX.dll"檔案夾轉換成XXX.dll "檔案
要執行Recmod.exe程式,電腦需要哪些輔助程式嗎?/
1. 目錄內應該也會有同檔名的 .dll 或 .exe 才對.
2. 解某些 ROM 的確會有 recmod.exe 出現的錯誤. (不過應該只會出現一次)
回TWU2大大
你說的沒錯,檔案夾內確實有同檔名的.dll/.exe/.mui......
再下來要如何做呢?
另存一個DUMP資料夾,把XXX.dll;XXX.exe;XXX.mui.....資料夾內同檔名的檔案一到新的Dump資料夾內????
搞不懂哪
不需要處理啊...
如果那個檔案是你要留的, 就放著不管, 如果是你不要的, 就刪除或搬離 dump 目錄.
so ga !!!!!!

那麼後續動作就是按照你的另一篇文章http://www.mobile01.com/topicdetail.php?f=450&t=1352080&last=16523439

繼續進行下去????
我不清楚你說的繼續下去是什麼意思?

那篇文章只提到如何解開 ROM 到 dump 目錄, 然後再由 dump 目錄打包成可以刷機的 nb0 檔案.

至於解開後, 要對 dump 目錄做什麼處理, 那就請參考一般的 CUSTOM ROM 製作的文章吧, 方法應該都一樣.

要改 Registry 的值, 就要把 default.hv 與 user.hv 解開成 .rgu, 修改後再轉成 .hv 放回去.
如果要刪除檔案, 就直接把檔案由 dump 目錄刪除.
如果要新增檔案, 就把檔案放到 dump 目錄下.
如果新增的檔案並不是要放在 \windows 下頭, 就要修改 initflashfiles.dat, 在裡頭指定要放到那個目錄裡頭.
PS. 修改 Registry 或把檔案放到別的目錄, 也可以修改 .provxml 來處理.
TWU2 大大
你的附件檔案掛了,能不能再傳一下。
我弄了5個月了,就是因為在imgfs.bin出現了問題導致刷機失敗。看了你的帖子才明白是怎麼回事。十分感謝你的教程。
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?