在定制ROM時,OEM主要包含驅(qū)動和必須的軟件。如果要把一個自己喜歡的軟件集成到ROM里,需要轉(zhuǎn)換格式;cab轉(zhuǎn)OEM可以用PACKAGE-CREATOR-V2.7這個軟件。
PACKAGE-CREATOR-V2.7英文版的軟件,使用非常方便,不用懂英文也可以使用,打開軟件后選擇package-creator-V2.7。EXE,然后OPEN CAB FILE去選擇你所需要分解的CAB包直接就可以轉(zhuǎn)成OEM文件夾。
需要注意的是,轉(zhuǎn)成的應用程序OEM包中有一個initflashfiles.txt文件,這是設置程序路徑和關聯(lián)的
其基本格式如下:
;CorePlayer
Directory("\Windows\“開始”菜單\程序\多媒體"):-File("CorePlayer.lnk","\Windows\CorePlayer.lnk")
解釋:
其中directory后括弧中指的是程序在開始菜單中快捷方式的位置,file后的括弧內(nèi)是關聯(lián)程序文件路徑。
如果你是用英文的廚房的話,改成:
; CorePlayer
Directory("\Windows\Start Menu\Programs\Multimedia"):-…………………………即可
紅字部分可以隨意設置,歸類。
英文改中文反之即可。
在放入廚房OEM文件夾的過程中必須要注意上述的路徑,否則編輯注冊表出錯,切記!
注意: 1,要安裝Microsoft .NET Framework 才能正常轉(zhuǎn)換。
2,cab文件名必須是英文,中文不行。
3,RAR轉(zhuǎn)換CAB格式:
(1)解壓文件到當前文件夾。
(2)用WinCE_CAB_Manager3.0 這個軟件。
附:用cab2oem2.7工具生成oem目錄后的處理:
1、有以下幾個文件可能需要處理:
option.xml------在定制工具中生成的信息,用記事本打開一個人家做的oem文件看一下就知道了;
****.rgu(例如43cc8ff1-8161-40dd-b89d-999edb4c3e1c.rgu)------注冊表文件。你所說的注冊信息就在這里。
initflashfiles.txt-------這個文件用來創(chuàng)建目錄以及把某個文件復制到某個目錄里。具體你可以打開個內(nèi)容多的oem包看看,看不懂的話就google一下,很多人講過;
主要就是這幾個文件吧。其他文件都是你的oem應用要用的東西。修改完后記得要存成unicode格式
2、如果你想刪除或者添加文件,直接在oem目錄里刪除或增加即可。定制時程序會把整個目錄里的東西全部拷貝進去。如果你添加的文件要指定文件夾,那就在initflashfiles.txt寫清楚。
3、測試oem包是用編譯rom時出錯信息來查的,一般錯誤有注冊信息格式出錯或者文件重復造成的。所以一定要看懂編譯工具生成的temp\dump目錄里的*.log說的啥意思。
實例說一下你發(fā)現(xiàn)的dialer和mortscript錯誤處理:
a、用oem2.7生成oem包后,拷貝到定制工具oem目錄里進行定制和測試,執(zhí)行到文件合并時報錯,打開temp\dump下的log文件查看最后幾行,發(fā)現(xiàn)說有文件重復,是ddcall.dll文件,經(jīng)查原來sys目錄里也有個一個ddcall.dll文件,大小一樣。于是刪除新做的oem包中的ddcall.dll文件。
b、從新編譯測試,發(fā)現(xiàn)合并注冊表時出錯,說是f6a5427d-b1c1-4d10-ad95-26043f1936ae.rgu文件第7行報錯。于是用記事本打開f6a5427d-b1c1-4d10-ad95-26043f1936ae.rgu文件,發(fā)現(xiàn)第7行里是""Windows\\MortScript.exe" "%1"",不用說,是引號用的太多了,編譯工工具認為不合法,修改成"Windows\\MortScript.exe %1"。然后把這個文件存為unicode格式。
c、再次編譯通過!
d、刷機,試試自己做的oem執(zhí)行有沒有問題。沒有問題就這樣了。如果感覺不對,那可能是剛才刪掉的ddcall.dll或者修改的注冊表項有問題,如果是ddcall.dll問題,那就保留新做的oem包里的,刪除sys目錄里的。如果是注冊表格式問題,沒辦法,只好論壇里或google搜一下別人怎么解決這個問題的了。
另外一種方法:
很簡單直接轉(zhuǎn),制作一下小的修改就行了,大多數(shù)軟件都行,不過首先要安裝NET和軟件要改成英文名啊。
第一步:基礎知識
首先要弄清楚制作一個完整的OEM包應該包含哪幾個部分:
1. 軟件本身所需的文件
2. 快捷方式(lnk文件,看軟件而定,不一定要,像撥號面板,輸入法等就不需要了吧)
3. dsm文件(一定要有)
4. rgu(注冊表文件,看軟件而定,不一定要)
5. initflashfiles.txt,主要用在指定刷機文件的存放位置,看軟件而定,不一定要)/ R2 q8 ?; c' _9 B
6. option.xml,用在系統(tǒng)加載該OEM包以及顯示相關內(nèi)容(一定要有)
第二步:準備工具——GUID碼生成器。
GUID(或稱UUID),GUID是Globally Unique IDentifier的縮寫,中譯全球唯一標識符,每個OEM 包都有一串唯一的GUID號碼用于系統(tǒng)識別
第三步:當然是開始制作啦。(以一個鬧鐘軟件為例)
1,建立一個新的文件夾(文件夾名隨便,不過為了以后好辨認,最好名稱和軟件名相同,我命名為“鬧鐘”)
2,獲取GUID碼。(就用我上面提供的工具)
然后點擊“New GUID”按鈕,會自動生成GUID,復制GUID碼。將該串GUID碼(ffffffff-645f-4f47-bf25-91208ee03b7d)記下。
3. 在鬧鐘文件夾新建2個txt文件,將一個文件重新命名為ffffffff-645f-4f47-bf25-91208ee03b7d.dsm,另一個txt文件重命名為ffffffff-645f-4f47-bf25-91208ee03b7d.rgu;也就是GUID號碼.dsm和.rgu,切記一定要將擴展名改為dsm和rgu,并將rgu文件存為Unicode格式。(一般電腦默認不顯示文件的擴展名,可通過文件夾上面的工具-文件夾選項-查看修改)。
4. 編制option.xml:BuildOS.exe是通過option.xml來加載OEM包,如果該OEM包沒有option.xml,則該OEM包將不會被BuildOS加載。同樣,在剛才文件夾新建一個txt,然后將其重命名為option.xml,用記事本打開,輸入如下內(nèi)容
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<Items>
<Item name="這里填寫軟件的名稱" group="這里填寫組名使之成為一組" checked="true">
<Tip>這里可描述軟件的功能</Tip>
<Guid type="p">ffffffff-645f-4f47-bf25-91208ee03b7d</Guid>
</Item>
</Items>
下面是我寫的鬧鐘option.xml
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<Items>
<Item name="鬧鐘" group="其他" checked="true">
<Tip>鬧鐘</Tip>1
<Guid type="p">ffffffff-645f-4f47-bf25-91208ee03b7d</Guid>
</Item>
</Items>
5,把綠色軟件放入文件夾并建立快捷鍵。
建立快捷鍵可新建TXT記事本,并寫上#\Windows\軟件名.exe。比如我寫上#\Windows\鬧鐘.exe
保存為鬧鐘.lnk。
6,在文件夾為快捷方式建立iniflashfiles.txt,軟件快捷方式是指向exe文件,我以鬧鐘軟件為例
用記事本新建填寫如下:
----------------------鬧鐘------------------------------------------------------------------------------
Directory("\Windows\“開始”菜單\程序\工具"):-File("鬧鐘.lnk","\Windows\鬧鐘.lnk")
---------------------鬧鐘 End-------------------------------------------------------------------------
保存。其實上下面虛線可以不要。
到此為止一個完整OEM包就制作完成了,運行BuildOS.exe試一下。
還有一個cab轉(zhuǎn)OEM工具cab2oem,支持非標準名OEM轉(zhuǎn)換。。對舊OEM包內(nèi)的initflashfiles.txt和option文檔能完美處理,轉(zhuǎn)換成APP.DAT。。。
使用方法:將需轉(zhuǎn)換的舊OEM包拖拽到cab2oem文件夾內(nèi)的EXT_PAckages_rebuilder工具即可直接轉(zhuǎn)成新OEM包。注意保存原OEM包。