http://itbbs.pconline.com.cn/mobile/9098318.html
最近搜索下网络资源,把ROM定制修改等,做了个总贴,方便大家查看!学习!以后给大家带来更好的ROM!同时也感谢那些为ROM修改而付出辛勤劳动的DX们,让我们大家有着更好的DIY空间!
1.ROM的构成
rom常见的有这么几种 NBF NB0 NB1 NB2 BIN XIP
[*]NBF
这种是最常见的,也是咱们大家经常刷机使用的格式。
构成:前32字节是rom头,依次是
设备型号如PH20B
'-'分隔符
语言如CHN
'-'分隔符
版本如5.04.06
'-'分隔符
符号意义未知,可能是一个操作Id
'-'分隔符
1个16位的校验码
所以下次大家修改版本号等时注意长度限制,前三个分隔符算在32字节里面,第四个分隔符不算
接下来是256K的bootloader
剩下的30.75M就是os的镜像了。
NBF格式通常是用电脑通过串口或者USB口刷到手机里,它会覆盖手机设备的绝大部分重要区域。如果有错误,就必须返修了。
2。ROM的分解和合成
拿D700为例,把附件中文件解压,进入此目录dos窗口,输入
1.xda3nbftool -x nk.nbf nk.nba 0x20040521
;把nk.nbf文件转成nk.nba
2.prepare_imgfs nk.nba
;把nk.nba转成imgfs_raw_data.bin和imgfs_removed_data.bin
3.viewimgfs imgfs_raw_data.bin
;把上步生成的imgfs_raw_data.bin文件释放,在dump的目录下
ROM定制的重点
此时你就可以对dump目录进行定制了,如文件的ti添删,注册表的修改,自启动文件的修改
这个下面会详细介绍
4.buildimgfs
;定制完成后,重新生成imgfs_removed_data.bin文件
5.make_imgfs nk.nba
;重新生成nba文件
6.xda3nbftool -c -u nk.nba
; 因为做了修改,所以crc校验值会改变,此步重新生成新的crc校验
7.xda3nbftool -x nk.nba nk.nbf 0x20040521
;得nk.nbf
然后就可以用新做成的nk.nbf刷机了.
Tips: 第四步第五步中的imgfs_removed_data.bin、nk.nba 文件日期不会改变,但是不要认为此步两个文件没有变化。
For 多普达696:
第一步:xda2nbftool -x nk.nbf nk.nba 0x20040304
第七步:xda2nbftool -x nk.nba nk.nbf 0x20040304
其他步骤一样
696_imgfs_tools.rar
D700_imgfs_tools.rar
3.注册表的处理
拿D700为例,把附件中文件解压,进入此目录dos窗口,输入
1.xda3nbftool -x nk.nbf nk.nba 0x20040521
;把nk.nbf文件转成nk.nba
2.prepare_imgfs nk.nba
;把nk.nba转成imgfs_raw_data.bin和imgfs_removed_data.bin
3.viewimgfs imgfs_raw_data.bin
;把上步生成的imgfs_raw_data.bin文件释放,在dump的目录下
ROM定制的重点
此时你就可以对dump目录进行定制了,如文件的ti添删,注册表的修改,自启动文件的修改
这个下面会详细介绍
4.buildimgfs
;定制完成后,重新生成imgfs_removed_data.bin文件
5.make_imgfs nk.nba
;重新生成nba文件
6.xda3nbftool -c -u nk.nba
; 因为做了修改,所以crc校验值会改变,此步重新生成新的crc校验
7.xda3nbftool -x nk.nba nk.nbf 0x20040521
;得nk.nbf
然后就可以用新做成的nk.nbf刷机了.
Tips: 第四步第五步中的imgfs_removed_data.bin、nk.nba 文件日期不会改变,但是不要认为此步两个文件没有变化。
For 多普达696:
第一步:xda2nbftool -x nk.nbf nk.nba 0x20040304
第七步:xda2nbftool -x nk.nba nk.nbf 0x20040304
其他步骤一样
696_imgfs_tools.rar
D700_imgfs_tools.rar
在ROM的分解和合成过程的第四步,我们得到了dump文件的目录。
里面的default.hv,user.hv就是对应的注册表文件,但是这两个文件不能直接用记事本打开修改。
解压附件中的工具,把以上两个文件拷入,进入目录的dos窗口,输入
1.set _FLATRELEASEDIR=.
;这一步是设置环境变量
2.rgucomp -o default.hv -nologo > boot.rgu
;这一步就是把default.hv转换成boot.rgu文件
下面就是操作重点
生成的boot.rgu就是标准的注册表文件,可用任意的一个文本处理软件打开,推荐editplus或者ultraedit。
(然后请手工在第一行加入如“REGEDIT4”,并存为unicode格式,这步注意,要不然下一步生成报错)
以加入中文内核为例,简单介绍一下:
在注册表中任意位置(不过最好把类似的注册表放在一起,这样清晰些)
加入如下几行:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FontLink\SystemLink]
"Arial"="\\windows\\sunfon.ac3,SC_Song"
"Courier New"="\\windows\\sunfon.ac3,SC_Song"
"MS Sans Serif"="\\windows\\sunfon.ac3,SC_Song"
"Tahoma"="\\windows\\sunfon.ac3,SC_Song"
"Times New Roman"="\\windows\\sunfon.ac3,SC_Song"
"Kingsoft Phonetic Plain"="\\windows\\sunfon.ac3,SC_Song"
这样中文显示就有了。
加入:
[HKEY_LOCAL_MACHINE\nls]
"LegacyLocaleMode"=dword:1
"SystemLCID"=dword:804
"DefaultLCID"=dword:804
"DefaultOCP"=dword:3a8
"DefaultACP"=dword:3a8
[HKEY_LOCAL_MACHINE\nls\overrides]
"LCID"=dword:804
这样中文区域就设置好了。
当然前提是要把sunfon.ac3中文字体和wince.nls中文区域文件拷到dump目录里去。
Tip:如果要使用其他字体也很容易,只要把上步的字体路径和字体名称修改成你想要的,并把相应字体文件拷入就可以了。
如:如想使用微软雅黑字体,因为字体太大,10M多,所以不可能在rom中集成,所以你就可以改成
"Tahoma"="\\Storage Card\\MSYH.TTF,\x6211\x7684\x6587\x6863"
然后你把字体拷入你的存储卡(存储卡名为Storage Card,和上面对应),后面四个字符表示微软雅黑的unicode码。你也可以给这字体改个英文名,就不用写这个unicode字符了。
当然,放在卡里可能还需要加些注册表,相关内容请参考
把相关的注册表文件写入。
Tip2:这个注册表转换工具不支持中文字符,所以涉及中文字符请一律用unicode字符。关于如何找中文的对应unicode字符,下面会详细介绍。
Tip3:硬起后开机自动安装extroom中的软件设置地方,请在注册表中找到
[HKEY_LOCAL_MACHINE\Comm]
"AutoRun"="\\Storage Card\\ExtROM\\AutoRun.exe"
"AutoRunCFG"="\\Storage Card\\ExtROM\\cfg.txt"
哈哈,看到了么,就是这个。你可以按照你的意愿修改了。当然autorun.exe中路径你也要修改一下。
好了,不多说了,这个留着帖子里交流。相应的autorun.exe和extroom的定制会在后面详细说明。
好了,修改完毕。运行
3.rgucomp -b
;这样就把上步的boot.rgu转化成boot.hv,把boot.hv改名为default.hv,拷入rom定制中生成的dump目录中覆盖原来的,好了,输入你自己的注册表就OK了。
Tip:这步没有加文件名,所以如果第一步你不是转化成boot.rgu这个文件名,你这步就要改成标准的boot.rgu文件名了,其他不认。
描述:注册表修改工具
RGU_HV_Edit.zip
4.initflashfiles.dat文件的处理
这个文件是刷完系统后自动生成文件和目录的重要文件。
rom定制过程中生成了dump目录,而放入dump内的文件都只会出现在ppc的windows的文件夹根目录下。
那开始菜单内的快捷图标哪里来的?programm files内的东西怎么来的?
wm5的rom原理通过initflashfiles.dat文件来做到移动文件的。
initflashfiles.dat也是个文本,里面通过语句规定了硬启动后windows根目录下的文件如何自复制一个副本到指定的ppc其他目录内。
做一个示例:
文本里的语句
; App Button default links
Directory("\x005C\x0057\x0069\x006E\x0064\x006F\x0077\x0073\x005C\x0041\x0070\x0070\x0042\x0075\x0074\x0074\x006F\x006E\x0073"):-File("\x65E5\x5386\x002E\x006C\x006E\x006B","\Windows\calendar.lnk")
转成正常文字就是
Directory("\Windows\AppButtons"):-File("日历.lnk","\Windows\calendar.lnk")
其中
\x65E5 对应 日
\x5386 对应 历
\x002E 对应 .
\x006C 对应 l
\x006E 对应 n
\x006B 对应 k
意思就是这个文件
\Windows\calendar.lnk
放到
Windows\AppButtons
目录下,显示名称为日历.lnk
这样的话日历硬件按钮对应的指令就是打开日历。知道这个的话就方便了,你就可以任意指定按键映射了。
里面的005c之类均为unicode,因为initflashfiles.dat这个文件不支持中文。如果你不用写中文,当然就不用这么麻烦了,可以直接写英文了。
这个文件是刷完系统后自动生成文件和目录的重要文件。
rom定制过程中生成了dump目录,而放入dump内的文件都只会出现在ppc的windows的文件夹根目录下。
那开始菜单内的快捷图标哪里来的?programm files内的东西怎么来的?
wm5的rom原理通过initflashfiles.dat文件来做到移动文件的。
initflashfiles.dat也是个文本,里面通过语句规定了硬启动后windows根目录下的文件如何自复制一个副本到指定的ppc其他目录内。
做一个示例:
文本里的语句
; App Button default links
Directory("\x005C\x0057\x0069\x006E\x0064\x006F\x0077\x0073\x005C\x0041\x0070\x0070\x0042\x0075\x0074\x0074\x006F\x006E\x0073"):-File("\x65E5\x5386\x002E\x006C\x006E\x006B","\Windows\calendar.lnk")
转成正常文字就是
Directory("\Windows\AppButtons"):-File("日历.lnk","\Windows\calendar.lnk")
其中
\x65E5 对应 日
\x5386 对应 历
\x002E 对应 .
\x006C 对应 l
\x006E 对应 n
\x006B 对应 k
意思就是这个文件
\Windows\calendar.lnk
放到
Windows\AppButtons
目录下,显示名称为日历.lnk
这样的话日历硬件按钮对应的指令就是打开日历。知道这个的话就方便了,你就可以任意指定按键映射了。
里面的005c之类均为unicode,因为initflashfiles.dat这个文件不支持中文。如果你不用写中文,当然就不用这么麻烦了,可以直接写英文了。
5。ROM的汉化 通过上面几步,你已经可以打造一个完美的中文内核了,下面的工作就是rom里面文字的汉化了。 这步其实没什么技术含量。 有两种方式 1。自己汉化 把那些对应的*.0409.mui用汉化软件自己汉化了,然后改称*.0804.mui 但是就是太繁琐了,因为文件太多,自己翻译太麻烦还不准。 Tip:如果没有找到对应的*.0409.mui,你也可以把对应的dll/exe文件用汉化软件汉化了,然后改成对应的*.dll.0804.mui/*.exe.0804.mui放到dump目录。 常用的汉化软件有Multilizer,ResHacker、eXeScope等,关于汉化软件的使用,不在本文讨论之内,可以在跟贴里探讨:) 2。找对应版本的中文原版汉化文件 比如我的rom是AKU3.2的,你可以找一个中文发行版本的rom,内核也为AKU3.2,这样你就可以把它的rom分解,把那些对应的*.0804.mui文件拷回来,然后把咱们rom里的那些*.0409.mui全部删掉,替换成0804的,然后重新生成rom。 Ok,你的中文界面中文内核rom出来了,赶紧刷机吧。 但是很不幸,还没有中文正式版本的基于AKU3.2的,这正是D700中文版本难产的重要原因。 我昨天找了半天,发现国内只有联想跟进的最快,它的et980现在最高版本是0818,但也还是基于AKU2.?,具体2点几版本我不太清楚。 但是我看到有3.0的中文版本测试图片出现,但此版本没找到,如果大家能搞到它的3.0中文版本,也可以了。 但即使有,它的版本也才刚到3.0,而我们的是3.2,呵呵,还是英文跟进的快呀。 这样,我们就可以先做个3.0的中文版本,不然只能做个AKU2的版本了 为了使你的mui文件生效,你需要在注册表(就是前一步的default.hv)中加入 [HKEY_LOCAL_MACHINE\Security\ColdInit] "Locale"=dword:00000804 "ColdInit2Done"=dword:00000001 "ColdInit1Done"=dword:00000001 [HKEY_LOCAL_MACHINE\MUI] "SysLang"=dword:00000804 "Enable"=dword:00000001 Tips:0804是简体中文的,0409是英文对应的代码。 |
给大家几个转换unicode-字符的小窍门。
1。字符 -〉unicode
其实java就带了一个很好的转换工具。转到java的bin路径,如C:\Program Files\Java\jdk1.5.0_07\bin
输入
native2ascii -encoding unicode d:\1.txt d:\2.txt
(你现在d盘的1.txt里写入你要转换的中文字符,执行完之后你就可以在2.txt中找到它的对应unicode编码。)
tips:转码后的unicode都是形如\u5fae\u8f6f\u96c5\u9ed1,把\u替换成\xj就可以了。
2。unicode->字符
其实微软输入法也带了一个很好的工具。打开微软输入法,选择辅助输入法-〉unicode码输入。
对应的输入法图标也变了
这时假设你输入5fae,输入完e系统就自动出来了“微”,输入8f6f,系统就自动出现"软"
集成软件的时候可以先找到对应软件的cab安装包,用WinCE CAB Manager打开,把里面的文件释放出来,放在dump目录,把对应的注册表文件集成到default.hv注册表中,完成rom,安装硬起后你的rom就有了这个软件了.呵呵.
想自己DIY自己的个性ROM吗?进来看看吧!
要定制ROM我们需要有一个ROM原型,总不能自已写ROM吧,偶用的是WM5.2.03汉化的,就是前面提到的HAHA2008的修改版。
弟兄们下载首帖中连接的文件后,解压会得到一个.NBF文件。当然还有个刷机文件HimaUpgradeUt.exe,以及一个硬启后自动安装的软件包,个人不推荐自动安装,可按需定制,反正我一个也没要。
开始吧?别穷紧张,相信我,修改ROM没什么的。
我们上面提到的nbf档是经过加密的.所以我们需要先对其进行解密。等等,不要害怕,一听到解密就好像多神秘似的。下载了24楼的文件没有?将其解压到一个目录(为了方便操作,以及减少不必要的麻烦,建议用英文名字,这里举例为EDITROM文件夹。然后将上面下载的.NBF文件也拷到这个文件夹中。下面简单了,看到文件夹中有个名为“解开ROM”的文件没有?双击它,会自动执行以下命令:
@ECHO OFF --------->关屏回显
SET _FLATRELEASEDIR=. --------->设定环境变量,你不需要懂的,但不可缺少。
%~d0 --------->转到当前盘符,如果不懂也没关系,涉及到DOS操作
CD "%~d0%~p0" --------->转到当前目录,如果还是不懂,参见上面一行。
xda2nbftool -x NK.nbf NK.nba 0x20040304—------>解开NBF为NBA,密码是默认的0x20040304,别问偶密码为什么是这个,偶也不知道。
pause --------->暂停,让你看看结果是否正常。
prepare_imgfs.exe nk.nba--------->进一步解开NBA,得到两个文件,imgfs_removed_data.bin和imgfs_raw_data.bin,其中,前面的文件基本不用管,后面的文件有我们感兴趣的内容,不过怎么修改,还得进行下一步
pause --------->暂停,让你看看结果是否正常。
viewimgfs.exe imgfs_raw_data.bin---------->解开ROM中的文件,执行后会在当前目录下新建一个目录,名为DUMP,里面就是在ROM中的所有的文件了。
pause --------->暂停屏显,让你查看结果。如果查看完毕,按任意键会关闭当前DOS窗口。
现在,我们就可以对dump里面的文件进行删除自己不需要的内容、组件、程序、文件,增加原来没有的,修改原来有但不适合我们的。
文件的添加、删除还好说,在文件夹中进行操作即可。但要真正定制ROM,当然离不开对注册表的修改。我的主人信息、操作习惯信息、程序注册信息、程序设定信息,可都是在注册表中放着的呢。
先明确一个问题:注册表在那里?
上面提到解开ROM后,最终在当前目录下生成一个DUMP文件夹,先把自己的XP或者2000设成查看包括隐藏和系统文件在内的所有文件,然后进入DUMP文件夹,点一下窗口中的“名称”两个字,使其按文件名排序,然后细心地找两个文件default.hv和user.hv,把这两个文件复制出来,复制到上一级文件夹(应该是EDITROM)。
.hv文件格式好特殊,不能直接编辑的,需要用工具转换成TXT文件。哪个工具?“HV转成TXT(拖一个HV文件在这上面)”。怎么操作?还得我进一步说吗?工具名字是什么?分别拖动上面两个HV文件放到这个工具上,屏幕一闪,按任意键就没了,再看看当前目录(EDITROM)中,是不是多了两个文件?DEFAULT.TXT和USER.TXT。
这两个文件,是可以直接编辑的文件,用XP或者2000自带的记事本就可以编辑了。编辑前建议先去掉只读属性,否则不利于存盘。
*********重要提醒1:为什么是两个注册表?因为不同键值的注册信息分别放在不同的注册表文件中!DEFAULT.TXT中,存放的是HKCR和HKLM相关的注册键值;USER.TXT中,存放了HKCU相关的注册表键值,这一点好重要,我以前就是因为把HKCU的相关内容放在DEFAULT中,导致刷机后白屏的。血的教训哪!!!!!!!!!
*********重要提醒2:打开注册表后,即使不改动(有时候,可能只需要修改某一个注册表,而另一个不需要动),再生成HV文件的时候,也需要进行下面至关重要的操作:要在记事本中,点“文件”----“另存为”在弹出的窗口中,最下面一行的编码为:UNICODE。
改完以后,确定无误了,然后在当前目录下(EDITROM)找找有没有个文件是:TXT生成HV,如果有,双击它,如果没有......没有吗?你是怎么走到上面这些步的?
看看目录下是不是两个HV文件被刷新了?把它拷到DUMP中,备用。
好,最难的注册表你都会修改了,很厉害哦。下面要进行相对来说不那么难但是最麻烦的一步了:对ROM文件中的目录及程式的自运行进行设定。
还是进入DUMP目录,找找有没有个initflashfiles.dat文件,有的话复制到上一级的EDITROM中,如果没有的话,1,检查你的查看文件的属性,2,检查我的或者你的脑袋。
回到EDITROM,这个initflashfiles.dat文件,也是可以用文本文件编辑的。打开看看,里面尽是一些这样的东东:
x6211\x7684\x56FE\x7247,这啊,其实就是“我的图片”,其中的中文字符是用UNICODE 编码定义的。如果你嫌麻烦,尽可以不管中文,英文倒是简单的。
举个例子吧,上面有兄弟提到如何让“手机保护神”在硬启后自动运行。我是这样做的。
用查找功能找找有没有这么一行:
Directory("\x005C\x0057\x0069\x006E\x0064\x006F\x0077\x0073\x005C\x0053\x0074\x0061\x0072\x0074\x0055\x0070"):-File("coldinit.lnk","\Windows\coldinit.lnk")
先别管,有的话呢,复制一整行。
然后呢,就在这个下方,粘贴新的一行,末尾改一改,怎么改?请对照:
Directory("\x005C\x0057\x0069\x006E\x0064\x006F\x0077\x0073\x005C\x0053\x0074\x0061\x0072\x0074\x0055\x0070"):-File("LockApp.lnk","\Windows\LockApp.lnk")
其实啊,这一行翻译成中文呢,就是:把WINDOWS目录下的LOCKAPP.LNK文件,复制一份到WINDOWS\“开始”菜单\StartUp文件夹中。
明眼人应该能看明白啦,WINDOWS中,凡是放到StartUp目录中的,启动WINDOWS的时候都能被自动执行。这样就达到了我们设定的硬启后自动执行手机保护神检查SIM卡是否被更换的程序,从而达到防盗的目的(其实也没那么神啦,该丢还是得丢,只是增加一些找回来的机会而已)
*********重要提醒3:编好initflashfiles.dat文件后,一定记住用十六进制编辑文件(强烈推荐UltraEDIT,不知道的、没用过的,自己去华军或者天空搜),把这个文件用十六进制打开后,最前面的FF FE这两个字节干掉。或者干脆直接用UltraEdit编辑这个文件,就没那么麻烦了。
initflashfiles.dat编好后,也拷到DUMP文件夹中,备用。
文件的定制也好了?那赶快来体验一下自己做ROM的快感吧。
还是回到EDITROM文件夹中,看看目录下有没有个名字叫:“重新生成ROM”的文件,双击它执行,会依次执行以下命令:
@ECHO OFF —-------->老规矩,关屏,防止无用信息分心
SET _FLATRELEASEDIR=. ----------->设定环境变量
%~d0 ----------->转到当前盘符
CD "%~d0%~p0" ----------->转到当前文件夹,应该是EDITROM
BuildImgfs.exe ----------->最麻烦的一步。对电脑要求比较高,没512M内存基本不用指望,而且非常占CPU,做到这一步的时候,建议表看电影,表玩大游戏,表上QQ聊天,表开多网页发帖回帖,表和女友做爱....对不起,说溜嘴儿了,以上都是偶在改ROM和刷ROM时干过的~~~~~~~
@echo 如果出现越界(剩余地址是FFFFFFXX),请按CTRL+C取消,否则按任意键继续--------->提示说明的。
pause ----------->看上面的最末一行,如果是FFFFFFXX,那恭喜你,你加到ROM文件中的东西太多了,删了几个吧。什么?这些文件的路径已经写到注册表中了?那你中头奖了,连注册表也得改了.......
----->加塞,看上面的最末一行,如果是FFFFFXXX,晕哦,你把整个XP系统都放在ROM中了吗?
make_imgfs.exe nk.nba ----------->如果上面的最末一行不是F打头的(比如我的就是00000001,意思是我用ROM用得比较彻底,榨干最后一个地址),那就对了,进行这一步重新生成NBA文件。
pause ----------->暂停一下,让你看明白,其实也没什么看的。你问我NBA有什么用?我也不知道有什么用,不过没它生成不了NBF,没NBF刷不了机。
xda2nbftool -c -u NK.nba--------->更新一下NBA文件的校验信息。
pause --------->还是让你看一下的。不过看不明白也不要紧,鲜有在这几步出错的。
xda2nbftool -x NK.nba NK.nbf 0x20040304---------->功成名就,WE MADE IT!
pause ----------->按一下,关闭当前DOS窗口回到EDITROM目录吧。
好啦。你的696呢?赶快找出来,先连到电脑上,同步后把自己重要的信息拷到电脑做个备份。然后,一手按住电源开关,一手按住下方的确认键,另一手用触笔捅一下复位孔.....三只手?对不起,我不是这个意思,要不,你可以一根手指按电源,另一根手指按确认键(就是中间的大键往下按),另一手捅PP上那个小窟窿。
现在是不是696上出现了USB字样啦?看不清的打开身边的台灯,现在的状态,696是没背光的。
好了,找到当前目录(EDITROM)中的HimaUpgradeUt_noID,双击,等一下下会出一个提示框,直接按回车就好。再稍等一下又会出一个提示框,你准备好了吗?口念金刚经,胸前划十字,去倒一杯咖啡来,回来后按一下回车,就开始了熟悉而亲切的刷机过程。
大约从十分钟到三十分钟不等吧,等进度条走到头儿了,电脑上会出现一个新的提示框,还是按回车。就关闭了刷机的程序。接下来,你的696一定在桌上等很久了吧?把她打横放倒,头冲右(别想歪了!),右手两根手指同时按住上面的拍照和录音,然后左手拿触笔用力捅进下面PP的孔中。捅完后,稍等3、4秒钟再放右手。看屏幕上是不是多了什么了?对,这就是BOOT选项。录音键(靠近上面的键)负责在三个选项中滚动,拍照键负责改变每个选项,把第一个设为:No,第二、第三个都设为Yes,然后再按一下下方中间的确认键。就是那个方向键中间啦。
看看发生了什么?屏幕亮了吗?什么,没亮?再等1分钟。
如果等了5分钟,也没什么改变,那要再一次隆重地恭喜你,ROM有误,重新编辑吧。检查自己修改的地方,找出错误。
如果屏幕亮了,说明系统启动了,剩下的,你找出不足,再准备刷修改完善的下一个版本吧!!
要定制ROM我们需要有一个ROM原型,总不能自已写ROM吧,偶用的是WM5.2.03汉化的,就是前面提到的HAHA2008的修改版。
弟兄们下载首帖中连接的文件后,解压会得到一个.NBF文件。当然还有个刷机文件HimaUpgradeUt.exe,以及一个硬启后自动安装的软件包,个人不推荐自动安装,可按需定制,反正我一个也没要。
开始吧?别穷紧张,相信我,修改ROM没什么的。
我们上面提到的nbf档是经过加密的.所以我们需要先对其进行解密。等等,不要害怕,一听到解密就好像多神秘似的。下载了24楼的文件没有?将其解压到一个目录(为了方便操作,以及减少不必要的麻烦,建议用英文名字,这里举例为EDITROM文件夹。然后将上面下载的.NBF文件也拷到这个文件夹中。下面简单了,看到文件夹中有个名为“解开ROM”的文件没有?双击它,会自动执行以下命令:
@ECHO OFF --------->关屏回显
SET _FLATRELEASEDIR=. --------->设定环境变量,你不需要懂的,但不可缺少。
%~d0 --------->转到当前盘符,如果不懂也没关系,涉及到DOS操作
CD "%~d0%~p0" --------->转到当前目录,如果还是不懂,参见上面一行。
xda2nbftool -x NK.nbf NK.nba 0x20040304—------>解开NBF为NBA,密码是默认的0x20040304,别问偶密码为什么是这个,偶也不知道。
pause --------->暂停,让你看看结果是否正常。
prepare_imgfs.exe nk.nba--------->进一步解开NBA,得到两个文件,imgfs_removed_data.bin和imgfs_raw_data.bin,其中,前面的文件基本不用管,后面的文件有我们感兴趣的内容,不过怎么修改,还得进行下一步
pause --------->暂停,让你看看结果是否正常。
viewimgfs.exe imgfs_raw_data.bin---------->解开ROM中的文件,执行后会在当前目录下新建一个目录,名为DUMP,里面就是在ROM中的所有的文件了。
pause --------->暂停屏显,让你查看结果。如果查看完毕,按任意键会关闭当前DOS窗口。
现在,我们就可以对dump里面的文件进行删除自己不需要的内容、组件、程序、文件,增加原来没有的,修改原来有但不适合我们的。
文件的添加、删除还好说,在文件夹中进行操作即可。但要真正定制ROM,当然离不开对注册表的修改。我的主人信息、操作习惯信息、程序注册信息、程序设定信息,可都是在注册表中放着的呢。
先明确一个问题:注册表在那里?
上面提到解开ROM后,最终在当前目录下生成一个DUMP文件夹,先把自己的XP或者2000设成查看包括隐藏和系统文件在内的所有文件,然后进入DUMP文件夹,点一下窗口中的“名称”两个字,使其按文件名排序,然后细心地找两个文件default.hv和user.hv,把这两个文件复制出来,复制到上一级文件夹(应该是EDITROM)。
.hv文件格式好特殊,不能直接编辑的,需要用工具转换成TXT文件。哪个工具?“HV转成TXT(拖一个HV文件在这上面)”。怎么操作?还得我进一步说吗?工具名字是什么?分别拖动上面两个HV文件放到这个工具上,屏幕一闪,按任意键就没了,再看看当前目录(EDITROM)中,是不是多了两个文件?DEFAULT.TXT和USER.TXT。
这两个文件,是可以直接编辑的文件,用XP或者2000自带的记事本就可以编辑了。编辑前建议先去掉只读属性,否则不利于存盘。
*********重要提醒1:为什么是两个注册表?因为不同键值的注册信息分别放在不同的注册表文件中!DEFAULT.TXT中,存放的是HKCR和HKLM相关的注册键值;USER.TXT中,存放了HKCU相关的注册表键值,这一点好重要,我以前就是因为把HKCU的相关内容放在DEFAULT中,导致刷机后白屏的。血的教训哪!!!!!!!!!
*********重要提醒2:打开注册表后,即使不改动(有时候,可能只需要修改某一个注册表,而另一个不需要动),再生成HV文件的时候,也需要进行下面至关重要的操作:要在记事本中,点“文件”----“另存为”在弹出的窗口中,最下面一行的编码为:UNICODE。
改完以后,确定无误了,然后在当前目录下(EDITROM)找找有没有个文件是:TXT生成HV,如果有,双击它,如果没有......没有吗?你是怎么走到上面这些步的?
看看目录下是不是两个HV文件被刷新了?把它拷到DUMP中,备用。
好,最难的注册表你都会修改了,很厉害哦。下面要进行相对来说不那么难但是最麻烦的一步了:对ROM文件中的目录及程式的自运行进行设定。
还是进入DUMP目录,找找有没有个initflashfiles.dat文件,有的话复制到上一级的EDITROM中,如果没有的话,1,检查你的查看文件的属性,2,检查我的或者你的脑袋。
回到EDITROM,这个initflashfiles.dat文件,也是可以用文本文件编辑的。打开看看,里面尽是一些这样的东东:
x6211\x7684\x56FE\x7247,这啊,其实就是“我的图片”,其中的中文字符是用UNICODE 编码定义的。如果你嫌麻烦,尽可以不管中文,英文倒是简单的。
举个例子吧,上面有兄弟提到如何让“手机保护神”在硬启后自动运行。我是这样做的。
用查找功能找找有没有这么一行:
Directory("\x005C\x0057\x0069\x006E\x0064\x006F\x0077\x0073\x005C\x0053\x0074\x0061\x0072\x0074\x0055\x0070"):-File("coldinit.lnk","\Windows\coldinit.lnk")
先别管,有的话呢,复制一整行。
然后呢,就在这个下方,粘贴新的一行,末尾改一改,怎么改?请对照:
Directory("\x005C\x0057\x0069\x006E\x0064\x006F\x0077\x0073\x005C\x0053\x0074\x0061\x0072\x0074\x0055\x0070"):-File("LockApp.lnk","\Windows\LockApp.lnk")
其实啊,这一行翻译成中文呢,就是:把WINDOWS目录下的LOCKAPP.LNK文件,复制一份到WINDOWS\“开始”菜单\StartUp文件夹中。
明眼人应该能看明白啦,WINDOWS中,凡是放到StartUp目录中的,启动WINDOWS的时候都能被自动执行。这样就达到了我们设定的硬启后自动执行手机保护神检查SIM卡是否被更换的程序,从而达到防盗的目的(其实也没那么神啦,该丢还是得丢,只是增加一些找回来的机会而已)
*********重要提醒3:编好initflashfiles.dat文件后,一定记住用十六进制编辑文件(强烈推荐UltraEDIT,不知道的、没用过的,自己去华军或者天空搜),把这个文件用十六进制打开后,最前面的FF FE这两个字节干掉。或者干脆直接用UltraEdit编辑这个文件,就没那么麻烦了。
initflashfiles.dat编好后,也拷到DUMP文件夹中,备用。
文件的定制也好了?那赶快来体验一下自己做ROM的快感吧。
还是回到EDITROM文件夹中,看看目录下有没有个名字叫:“重新生成ROM”的文件,双击它执行,会依次执行以下命令:
@ECHO OFF —-------->老规矩,关屏,防止无用信息分心
SET _FLATRELEASEDIR=. ----------->设定环境变量
%~d0 ----------->转到当前盘符
CD "%~d0%~p0" ----------->转到当前文件夹,应该是EDITROM
BuildImgfs.exe ----------->最麻烦的一步。对电脑要求比较高,没512M内存基本不用指望,而且非常占CPU,做到这一步的时候,建议表看电影,表玩大游戏,表上QQ聊天,表开多网页发帖回帖,表和女友做爱....对不起,说溜嘴儿了,以上都是偶在改ROM和刷ROM时干过的~~~~~~~
@echo 如果出现越界(剩余地址是FFFFFFXX),请按CTRL+C取消,否则按任意键继续--------->提示说明的。
pause ----------->看上面的最末一行,如果是FFFFFFXX,那恭喜你,你加到ROM文件中的东西太多了,删了几个吧。什么?这些文件的路径已经写到注册表中了?那你中头奖了,连注册表也得改了.......
----->加塞,看上面的最末一行,如果是FFFFFXXX,晕哦,你把整个XP系统都放在ROM中了吗?
make_imgfs.exe nk.nba ----------->如果上面的最末一行不是F打头的(比如我的就是00000001,意思是我用ROM用得比较彻底,榨干最后一个地址),那就对了,进行这一步重新生成NBA文件。
pause ----------->暂停一下,让你看明白,其实也没什么看的。你问我NBA有什么用?我也不知道有什么用,不过没它生成不了NBF,没NBF刷不了机。
xda2nbftool -c -u NK.nba--------->更新一下NBA文件的校验信息。
pause --------->还是让你看一下的。不过看不明白也不要紧,鲜有在这几步出错的。
xda2nbftool -x NK.nba NK.nbf 0x20040304---------->功成名就,WE MADE IT!
pause ----------->按一下,关闭当前DOS窗口回到EDITROM目录吧。
好啦。你的696呢?赶快找出来,先连到电脑上,同步后把自己重要的信息拷到电脑做个备份。然后,一手按住电源开关,一手按住下方的确认键,另一手用触笔捅一下复位孔.....三只手?对不起,我不是这个意思,要不,你可以一根手指按电源,另一根手指按确认键(就是中间的大键往下按),另一手捅PP上那个小窟窿。
现在是不是696上出现了USB字样啦?看不清的打开身边的台灯,现在的状态,696是没背光的。
好了,找到当前目录(EDITROM)中的HimaUpgradeUt_noID,双击,等一下下会出一个提示框,直接按回车就好。再稍等一下又会出一个提示框,你准备好了吗?口念金刚经,胸前划十字,去倒一杯咖啡来,回来后按一下回车,就开始了熟悉而亲切的刷机过程。
大约从十分钟到三十分钟不等吧,等进度条走到头儿了,电脑上会出现一个新的提示框,还是按回车。就关闭了刷机的程序。接下来,你的696一定在桌上等很久了吧?把她打横放倒,头冲右(别想歪了!),右手两根手指同时按住上面的拍照和录音,然后左手拿触笔用力捅进下面PP的孔中。捅完后,稍等3、4秒钟再放右手。看屏幕上是不是多了什么了?对,这就是BOOT选项。录音键(靠近上面的键)负责在三个选项中滚动,拍照键负责改变每个选项,把第一个设为:No,第二、第三个都设为Yes,然后再按一下下方中间的确认键。就是那个方向键中间啦。
看看发生了什么?屏幕亮了吗?什么,没亮?再等1分钟。
如果等了5分钟,也没什么改变,那要再一次隆重地恭喜你,ROM有误,重新编辑吧。检查自己修改的地方,找出错误。
如果屏幕亮了,说明系统启动了,剩下的,你找出不足,再准备刷修改完善的下一个版本吧!!