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