<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團論壇Win CE 專區Wince技術討論區 → Sun之糊志_D600更換wince.nls過程


      共有5826人關注過本帖樹形打印

    主題:Sun之糊志_D600更換wince.nls過程

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發短信
    等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    Sun之糊志_D600更換wince.nls過程  發帖心情 Post By:2010-11-16 10:03:27

    俄羅斯黑客放出了HTC Gene P3400手機(國內型號是Dopod D600)的windows mobile 6的ROM,國內熱心的高手第一時間漢化了這個版本,并陸續放出了幾個改進的穩定版。本來并不打算升級自己的手機系統,其一自己對手機的系統一無所知,其二刷ROM畢竟有很大的風險,搞不好就會把手機搞報廢,但是猶豫了一下,還是為好奇心驅使,一閉眼,刷。
    整個刷機過程相當順利,手機重新啟動后進入了WM6,測試各功能均正常,看來漢化的相當好。可沒過多久就發現了一個問題,就是無法通過WAP同步mail2web的exchange服務器,網上查了一下,好像沒法解決這個問題。但網上使用其他型號的手機在升級WM6后也有發現了這個問題的并提出了一些解決方案,可這些方案幾乎都被證實無效,最后發現一個替換wince.nls文件的解決方案尚存一絲希望,決定試一試。因為對手機的系統軟件和破解工具一點感念都沒有,用了兩個晚上來回折騰,總算把問題解決,現在記下來,由于替換這個文件有一定的風險,切莫模仿,風險自負。
    要替換wince.nls文件必需知道這個文件放在哪里,網上有其他型號手機的一些替換方法,不過都是直接定制ROM,也就是說網上介紹的方法都是替換在ROM區的wince.nls,而D600中的這個wince.nls文件卻是放在了XIP中,也就是核心系統區域,傳說在XIP中動手腳,難度和風險要明顯高于一般的ROM區域,而且目前關于對XIP的修改幾乎沒有什么資料,xda-developers論壇上有一些提取和修改工具發放,但具體的使用方法都不怎么介紹,不過沒關系,零星的資料加上人類的想象力,開工。


    首先,了解一下windows mobile手機的系統結構,像電腦一樣,手機加電后也有一個自舉程序,類似于電腦里的BIOS,這個自舉叫IPL,它負責手機硬件的I/O和調用第二個啟動程序SPL,SPL是一個比較關鍵的東西,如果要自己刷手機ROM就要先更改這里,但這個只要改一次,所謂解鎖,以后就能隨便刷系統了,傳說中手機變成磚頭的,也就是在刷SPL時出現錯誤。這部分其實還是電腦BIOS的一部分,接著SPL就會去調用真正的主角windows mobile操作系統OS。通常定制ROM,就是定制這里。
    接著,看看OS怎么構成,OS主要分成XIP、IMGFS兩大部分,其中XIP就是系統核心,而其他的軟件壓縮后放在IMGFS中,需要執行時解壓到RAM中,類似于一般的海量存儲設備。而XIP則不同,XIP全稱是“eXecute In Place”,在XIP中存儲的程序是不需要加載到RAM就可以直接執行的,所以在替換XIP中數據的時候一定要考慮物理地址的問題。
    手機中還有一個ExtendedRom,通常是存放一些廠家定制的軟件,在恢復出廠設置時會自動裝入系統。
    現在開始替換,準備工具,NBHTOOL,XIPTools,XIPPort,htcrt(必須是加入過HTC gene P3400/Dopod D600設備描述的),還有一個是msflshtool,這個不是必須的,但是由于網上沒找到D600XIP的寫入地址介紹,無意中發現這個工具可以分析出來。
    步驟:
    一、ROM選用宇軒r3.6的精簡宋體版,用NBHTOOL工具分離出Windows.nb和ExtendedRom.nb,這個沒什么好說的,運行程序就是一個界面,點擊“Decompile NBH file”按鈕,選中刷機ROM的NBH文件,然后指定結果輸出目錄即可。分解出來的ExtendedRom.nb不去動它,用操作的是Windows.nb文件。
    二、打開XIPTools工具,在“Extract”選項卡上選好“OS File”和“Output File”文件,OS File就是剛才分離出來的Windows.nb,Output File可以取名為XIP.bin,然后點擊XIP2,XIP就被分解出來了。點擊Xipport按鈕,調出XIPPort工具。
    三、主要的重點工作就在這里。在XIPPort工具窗口上,點擊“dump xip.bin”按鈕,執行后,目錄里會多出一個“OUT”子目錄,這個目錄下會出現兩個文件和Files、Modules兩個子目錄,要替換的wince.nls文件就在FILES目錄下。
    先不急著替換,點擊“write maps”按鈕,OUT目錄下會多出兩個文本文件,MAP.txt和MAP.physical.txt,備份好這兩個文件并打開MAP.txt來分析它,這里有一句“8c33d4a0 - 8c41618a L000d8cea filedata wince.nls”,猜猜它的意思,很明顯,這個意思是說wince.nsl文件的數據是儲存在從8c33d4a0到8c41618a的地址區間的,長度是000d8cea,那怎么修改呢,MAP.txt只是一個分析報表輸出文件,一定有地方告訴它。
    打開FILE子目錄,wince.nsl就在這里,邊上還有一個wince.nls.imageinfo文件,看看它是做什么的,打開文件,關注這兩條:
    nRealFileSize: 000D8CEA
    nCompFileSize: 000D8CEA
    原來是在這里說明了文件的長度,很明顯,這個文件沒有被壓縮儲存,實際長度和壓縮長度相同,這個長度是哪里來的呢,右擊wince.nls文件,點“屬性”,顯示“大小:867 KB (888,042 字節)”,打開windows附件里的計算器,算一算,咦,怎么這么巧,原來十六進制的0D8CEA正正好好等于888,042,(數學家真偉大)。好了,現在我們拷貝自己的wince.nls去替換這個FILES目錄下原來的那個wince.nls,而新的wince.nls的長度是889,018 字節,換算成十六進制就是...多少來著?忘了,問問數學家去:-)。好,現在將這個新的十六進制數據替換wince.nls.imageinfo文件里的老數據。
    接著,在生成新的XIP之前,還要做一件重要的事。由于數據在存儲器里是一個挨著一個排排坐的,現在換了新文件比原來那個胖,就要占別人的位置,怎么辦,那就要一個一個將后面的老兄往后挪,手工的做起來也能做,但很麻煩,還要注意上面儲存文件名中的鏈表指針也要相應修改,如果能不出錯該完,說不定真的變成數學家了:P。XIPPort提供了一個工具可以幫助解決這個問題,按“realloc P”按鈕,搞定,再write一個Maps,看看新的Map.txt,只要里面沒有“!!!!!”這樣的字符,就基本搞定,不過再仔細檢查一下那些地址變動了。用WinMerge對比一下兩個文件,看看是不是鏈表和數據地址都被改變了。
    現在可以重新生成XIP.bin文件了,按“build xip_out.bin”按鈕,目錄中就會生成一個新的xip_out.bin文件,這個XIP就是已經被替換了wince.nls的XIP了。
    XIP.bin是從windows.nb中提取出來了,那么,新的XIP也要回寫回去,XIPPort工具中有一個“write xip_out.bin to:”按鈕就是來處理這個事的,但是,這個回寫地址是多少呢,網上沒有說明的,XIPPort的默認地址是00310000,千萬不能就這么寫進去,這個地址不是D600的。好,現在再用一個法寶,msflshtool。
    其實msflshtool完全可以代替XIPTools的工作提取windwos.nb中的XIP,但因為是DOS命令沒有XIPTools來得直觀和簡便,所以就不用它,無意中發現msflshtool的L開關正好幫助解決了回寫地址的問題。
    在DOS狀態下,執行
    C:\Dopod\MSFlshTool>msflshtool.exe Windows.nb -l
    ***********************************************************
    msflsh50dump v0.1 code by blueboy
    ***********************************************************
    partinfo
    part <0> offset <00000400> size <00313400>
    part <1> offset <00313800> size <00333000>
    part <2> offset <00646800> size <0338E800>
    end
    看看part <1> offset <00313800> size <00333000>這句,回寫地址來了,原來地址是00313800,長度是333000,不用去管長度,在XIPPort中填入這個“00313800”,回寫到windows.nb文件中。
    四、怎么來就還是怎么回去,既然刷機ROM的nbh文件分解出了Windows.nb和ExtendedRom.nb兩個文件,現在針對Windows.nb的修改已經OK了,那么還是要把這兩個文件合并成刷機ROM的nbh文件,不過來的時候用的是NBHTOOL工具,回去時就要用到htcrt工具了。
    打開htcrt,點擊“ROM builder”選項卡,左側“device”下拉框中選擇“Gene”這個就是D600,右側的“Firmware contents”中只選“ext.ROM: 和“OS:”兩項,分別是文件ExtendedRom.nb和Windows.nb,上面的千萬都不能選,好,點擊“Build!”按鈕,選一個文件名,不一會兒,新的刷機文件就生成了。
    五、刷機。重啟后,這是exchange同步,久違的:正在查找更新“終于出現了。
    wince.nls是一個碼表文件,要選擇一個合適的文件才能設置中國區域,但宇軒r3.6的精簡宋體版中的wince.nls雖然支持中國區域,但卻不能通過WAP同步mail2web,而現在這個同樣支持中國區域設置,又能解決mail2web同步問題。網上還看到一個1.5M左右的wince.nls文件,支持中日韓,但由于文件的大小突出了XIP的余量,試了一次把它移到ROM,在XIP中刪除,但沒有成功,看來XIP的水還真有點深,怪不得很少有資料。


    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

    返回版面帖子列表

    Sun之糊志_D600更換wince.nls過程








    簽名
    主站蜘蛛池模板: 精品哟哟哟国产在线观看不卡| 国产精品自在线拍国产电影| 岛国片在线播放| 妓女嫖客叫床粗话对白| 国内久久精品视频| 国产成人无码免费看片软件| 国产一区二区精品久久91| 免费一级欧美大片视频在线| 亚洲成a人片在线观看中文| 久久经典免费视频| 丝袜美腿中文字幕| 91在线你懂的| 良妇露脸附生活照15| 永久免费bbbbbb视频| 最近中文字幕免费4| 国产又粗又猛又大的视频| 四虎国产精品永免费| 亚洲色偷偷偷综合网| 乱人伦人妻中文字幕无码| 午夜三级国产精品理论三级| 亚洲综合伊人制服丝袜美腿| 久久精品国产99国产精品| 三级黄色在线免费观看| 91在线品视觉盛宴免费| 精品国产亚洲一区二区三区| 欧美在线视频导航| 成人免费看www网址入口| 国产精品户外野外| 成人免费漫画在线播放| 国产资源在线观看| 国产一级做a爱免费视频| 亚洲欧美日韩在线一区| 久久久久亚洲av成人网| 91精品国产综合久久久久| 精品国产午夜理论片不卡| 欧美乱色理伦片| 幼香视频在线观看免费| 国产欧美日韩在线| 免费国产午夜高清在线视频| 久久青青草原亚洲AV无码麻豆 | 激情婷婷成人亚洲综合|