一步一步教你定制个性化ROM- -

时间:2005-08-04 08:31:00  类别:pocketpc symbol  作者:email

首先要感谢Arie、Dish大哥,还有其他一些蜥蜴前辈们的辛勤工作,没有他们,我是写不出这篇文章的。
一、应具备的知识:
Linux——必需,生成ROM的工具要在Linux下运行。你至少得会创建目录、解压文件、执行脚本,建议使用RedHat。
二、所需工具:
1.mkrom——生成个性化ROM的工具,可去http://xda-developers.com下载
2.UltraEdit——Windows下的强力编辑工具,我喜欢的。你也可以用你喜欢的工具。
3.PhotoShop——不用我介绍了,最著名的图形处理软件。用于编辑开机图片。
4.Programme A——刷ROM工具,写nbf格式文件的。
5.XDArit.exe——刷ROM工具,用于写nb1格式文件的。
(以上两个刷ROM的工具可任选一个,建议使用Programme A,不用写SD卡,直接通过USB口刷ROM,节省了大量时间。刷ROM工具坛子里有,自己去找。)
进入正题吧
一、安装ROM生成工具:
去xda-developers.com下载mkrom工具mkrom.zip,进入Linux,创建一个目录,姑且就叫mkrom吧(你也可以用其他的名字)。创建好后进入mkrom目录,拷贝mkrom.zip到该目录,执行unzip mkrom.zip解压缩,执行chmod a+x *给相关文件赋予可执行的权限。
二、加入核心汉化
这里需要两个文件,sung14.ttc(汉字库)和wince.nls(区域设置文件,用dish大哥的吧,解决了日期里“星”满天飞的问题)。将这两个文件拷入你的mkrom工具安装目录里的files2目录下。
修改注册表:
编辑你mkrom工具目录下cfg目录里的default.reg文件,加入以下内容:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\International]
"LCID"=dword:00000804
"ACP"=dword:000003A8
[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\International]
"Default_CodePage"=dword:000003A8
[HKEY_LOCAL_MACHINE\nls]
"DefaultOCP"=dword:000003A8
"DefaultACP"=dword:000003A8
"DefaultLCID"=dword:00000804
"ExtraCurrency"=dword:000020ac
[HKEY_LOCAL_MACHINE\nls\overrides]
[HKEY_LOCAL_MACHINE\SYSTEM\GDI\GLYPHCACHE]
"limit"=dword:00002000
[HKEY_CLASSES_ROOT\MIME\Database\Charset\Big5]
"Codepage"=hex:B6,03,00,00
"InternetEncoding"=hex:B6,03,00,00
[HKEY_CLASSES_ROOT\MIME\Database\Charset\chinese]
"AliasForCharset"="gb2312"
[HKEY_CLASSES_ROOT\MIME\Database\Charset\CN-GB]
"AliasForCharset"="gb2312"
[HKEY_CLASSES_ROOT\MIME\Database\Charset\csbig5]
"AliasForCharset"="big5"
[HKEY_CLASSES_ROOT\MIME\Database\Charset\csGB2312]
"AliasForCharset"="gb2312"
[HKEY_CLASSES_ROOT\MIME\Database\Codepage\936]
"BodyCharset"="gb2312"
"Description"="Simplified Chinese(GB2312)"
"FixedWidthFont"="UniSun"
"Level"=hex:07,07,00,00
"ProportionalFont"="UniSun"
[HKEY_CLASSES_ROOT\MIME\Database\Codepage\950]
"BodyCharset"="big5"
"Description"="Traditional Chinese(Big5)"
"FixedWidthFont"="UniSun"
"Encoding"=hex:01,01,00,00
"Level"=hex:07,07,00,00
"ProportionalFont"="UniSun"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FontLink\SystemLink]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FontLink\SystemLink]
"Frutiger Linotype"="\\Windows\\sunfon.ttf,SC_Song"
"Times New Roman"="\\Windows\\sung14.ttc,UniSun"
"Arial"="\\Windows\\sung14.ttc,UniSun"
"Courier New"="\\Windows\\sung14.ttc,UniSun"
"Tahoma"="\\Windows\\sung14.ttc,UniSun"
"Symbol"=\\Windows\\Sung14.ttc,UniSun
修改HKEY_CURRENT_USER,Software\Microsoft\Shell下的ClearType表项的值,缺少为1,改为0,这一步很重要,如果不改,在Word、MSN等程序里无法显示和输入汉字。
中文联系人排序的问题我没解快,请dish大哥指点。
三、加入自己喜欢的程序(以PocketTV为例说明)
首先在你的PDA上安装PocketTV,如何知道PocketTV在你的PDA上安装了些什么程序并修改了注册表的哪些内容呢?这里有一个技巧:通常安装程序在安装完相应程序后,会在你的PocketPC的Windows目录下生成一个.unload文件便于将来uninstall程序用,比如PocketTV的unload文件就叫MpegTV PocketTV Pro.unload(缺少是unicode编码,你需要把它转换成ANSI编码,或者用支持unicode编码的编辑器看),打开它看看吧,里面就有你想知道的一切,安装了些什么文件,安装到了什么地方,修改了注册表的哪些表项等等。我的是这样的:
7
r p o c k e t t v _ p r o _ m p g f i l e ; D e f a u l t
7
r p o c k e t t v _ p r o _ m p g f i l e ; E d i t F l a g s
7
r p o c k e t t v _ p r o _ m p g f i l e \ D e f a u l t I c o n ; D e f a u l t
7
r p o c k e t t v _ p r o _ m p g f i l e \ S h e l l \ O p e n \ C o m m a n d ; D e f a u l t
7
r p o c k e t t v _ p r o _ m 1 u ; D e f a u l t
7
r p o c k e t t v _ p r o _ m 1 u ; E d i t F l a g s
7
r p o c k e t t v _ p r o _ m 1 u \ D e f a u l t I c o n ; D e f a u l t
7
r p o c k e t t v _ p r o _ m 1 u \ S h e l l \ O p e n \ C o m m a n d ; D e f a u l t
7
r p o c k e t t v _ p r o _ l a n g ; D e f a u l t
7
r p o c k e t t v _ p r o _ l a n g ; E d i t F l a g s
7
r p o c k e t t v _ p r o _ l a n g \ D e f a u l t I c o n ; D e f a u l t
7
r p o c k e t t v _ p r o _ l a n g \ S h e l l \ O p e n \ C o m m a n d ; D e f a u l t
4
r p o c k e t t v _ p r o _ m p g f i l e \ S h e l l \ O p e n \ C o m m a n d
4
r p o c k e t t v _ p r o _ m p g f i l e \ S h e l l \ O p e n
4
r p o c k e t t v _ p r o _ m p g f i l e \ S h e l l
4
r p o c k e t t v _ p r o _ m p g f i l e
4
r p o c k e t t v _ p r o _ m 1 u \ S h e l l \ O p e n \ C o m m a n d
4
r p o c k e t t v _ p r o _ m 1 u \ S h e l l \ O p e n
4
r p o c k e t t v _ p r o _ m 1 u \ S h e l l
4
r p o c k e t t v _ p r o _ m 1 u
4
r p o c k e t t v _ p r o _ l a n g \ S h e l l \ O p e n \ C o m m a n d
4
r p o c k e t t v _ p r o _ l a n g \ S h e l l \ O p e n
4
r p o c k e t t v _ p r o _ l a n g \ S h e l l
4
r p o c k e t t v _ p r o _ l a n g
4
r p o c k e t t v _ p r o _ m p g f i l e \ D e f a u l t I c o n
4
r p o c k e t t v _ p r o _ m p g f i l e
4
r p o c k e t t v _ p r o _ m 1 u \ D e f a u l t I c o n
4
r p o c k e t t v _ p r o _ m 1 u
4
r p o c k e t t v _ p r o _ l a n g \ D e f a u l t I c o n
4
r p o c k e t t v _ p r o _ l a n g
4
r p o c k e t t v _ p r o _ m p g f i l e
4
r p o c k e t t v _ p r o _ m 1 u
4
r p o c k e t t v _ p r o _ l a n g
0
\ S t o r a g e C a r d \ M p e g T V P o c k e t T V P r o
P o c k e t T V P r o . e x e
0
\ S t o r a g e C a r d \ M p e g T V P o c k e t T V P r o
g x . d l l
0
\ S t o r a g e C a r d \ M p e g T V P o c k e t T V P r o
t G e t F i l e . d l l
0
\ S t o r a g e C a r d \ M p e g T V P o c k e t T V P r o
C o r e L i n k L i b . d l l
0
\ S t o r a g e C a r d \ M p e g T V P o c k e t T V P r o
e u l a . h t m l
0
\ M y D o c u m e n t s
W e l c o m e t o P o c k e t T V . m p g
0
\ W i n d o w s \ S t a r t M e n u \ P r o g r a m s
P o c k e t T V P r o . l n k
一目了然了吧,知道安装些什么文件就行了,把这些文件拷到mkrom工具目录下的files2目录中。注册表部分就不用自己写了,在你的PocketPC里用注册表编辑器找到相关内容导出来,然后贴进default.reg文件里就行了。
四、修改mkrom工具目录下cfg目录里的initobj.txt文件:
用你喜欢的编辑器打开initobj.txt,如果在Windows下编辑最好使用UltraEdit,因为Windows下的文本文件格式与Linux下文本文件格式有些不同,用其他编辑器可能会有问题。如果在Linux下可别用vi,它要自动换行,很讨厌呀。由于我安装PocketTV时把它装在了存储卡上,现在要转到ROM里,自然要改相应的安装目录了。把它改到Program Files目录下吧,在initobj.txt里添加以下内容:
Directory("Program Files"):-Directory("MpegTV PocketTV Pro")为PocketTV增加相应目录
缺省情况下,files2目录的文件都会放在PDA的Windows目录中,想把文件放在其它目录下,就要在initobj.txt文件里说明,格式和上面差不多,比如要把PocketTV的文件放在\Program Files\MpegTV PocketTV Pro目录下,你就要加入以下内容:
Directory("\Program Files\MpegTV PocketTV Pro"):-File("PocketTV Pro.exe","\Windows\PocketTV Pro.exe")
Directory("\Program Files\MpegTV PocketTV Pro"):-File("gx.dll","\Windows\gx.dll")
Directory("\Program Files\MpegTV PocketTV Pro"):-File("tGetFile.dll","\Windows\tGetFile.dll")
Directory("\Program Files\MpegTV PocketTV Pro"):-File("CoreLinkLib.dll","\Windows\CoreLinkLib.dll")
注意:每条一行,内容再长也不能换行,否则会出问题,这就是为什么不能用vi的原因。
添加快捷方式,方法也和上面差不多,我的内容如下:
Directory("\Windows\Start Menu\Programs"):-File("PocketTV Pro.lnk","\Windows\PocketTV Pro.lnk")
注:前面的PocketTV Pro.lnk是显示在PDA的“Start/Program”里的,后面的PocketTV Pro.lnk是程序的快捷方式文件,必须在相关的目录下存在。同时你还要确保快捷方式指向正确的路径,不对请自行用vi修改。
五、生成ROM:
完成以上操作,就可以生成ROM了,在生成ROM前,你的mkrom目录下必须要有一个基本的3.17Eng ROM的文件,这里用dish大哥的nk.nbf文件就行了,坛子里可以找到。把mkrom工具目录下out目录和tmp目录清空(可别删除目录呀),运行./mkrom.sh <基本ROM文件名>,顺利执行后在你的out目录下就会生成两个文件:xdaromimg-1.nbf(用于Programme A工具)和xdaromimg-1.nb1(用于XDArit工具)。有了这两个文件你就可以刷ROM了,怎么刷就不用我教了吧。
六、注意事项:
1.files2目录下的文件不能超过6M
2.开机画面必须为16 bit/R5-G6-B5 bmp格式,同时要选上Flip row order,图片大小为240x320 pixel,用PhotoShop编辑吧。
本文汇集了许多蜥蜴前辈和本人的心血,希望能籍此文抛砖引玉,达到大家共同提高之目的,定制出属于我们自己的、更好的个性化ROM来,不足之处,请高手们指正。


特别推荐

广而告之