马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
说明:此教程配合小桥老师的mybuildos模板使用,针对CHT9000,其它机型效果未知。写得非常详细,应该都说清楚了,不懂的跟帖。。。
测试:此教程来源于XDA那位RanDomIze大侠的教程,结合小桥模板修改而成,在此感谢RanDomIze的教程,感谢小桥老师的解疑。本人亲自测试,成功。
工具:见附件,romTools,XIPport,rgucomp等。帖子末尾已经附上修改好了的文件,覆盖模板中的文件即可,按后面附的说明使用。
简介:全界面操作,无需命令行输入,迄今最详细的教程,最能看得懂的教程(吹吹牛)。如果你看着那个EXT_ROM碍眼,如果闲置不用它,如果你想增大系统剩余空间,这个教程可以做到。
说白了,作用就是合并EXT_ROM到系统,EXT_ROM将从系统消失。主要工作集中在两部分:一是处理XIP之后,合成Big Storage用的OS.nb;二是处理系统注册表文件boot.rgu, boot.hv和default.hv,从中删除EXT_ROM相关信息。废话少说,切入正题。
具体步骤 步骤一:分解rom
1、下载附件Big Storage.7z,解压附件中的文件到Big Storage文件夹,该文件夹包含了所有需要的工具。复制模板中的os.nb到目录,见图一: 2、 运行1.bat分解rom,等待完成,修改OS.nb.payload为nk.nb;见图二: 3、运行2.bat,得到xip.bin;
步骤二:XIP处理
1、运行XIPPort.exe,点击“dump xip.bin”,完成后,会生成OUT文件夹,一直不要关闭XIPPort.exe,后面还要用。如下图:
2、在以上步骤生成的OUT文件夹中找到:OUT\MODULES\FLASHDRV.DLL\s000文件;用Ultraedit32等16进制编辑软件打开s000文件, HEX 修改以下值:
58 20 43为 04 20 43 一处
58 30 43为 04 30 43 共三处
修改完成,保存。如果使用Ultraedit32编辑,默认会生成S000.bak文件,删除掉此bak文件,后面提到的使用Ultraedit32编辑,都需要删除生成的bak文件,自己注意。
步骤三:处理boot.hv和boot.rgu
1、在OUT\FILES目录下,找到boot.hv和boot.rgu文件。boot.rgu直接使用Ultraedit32编辑,删除里面所有包含“EXT_FLASHDRV”字段的注册表信息,然后保存,记得删除自动生成的bak文件哦。这个文件还需要复制到模板的ROM\XIP目录下。具体可能有如下一些:
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\EXT_FLASHDRV]
"DefaultFileSystem"="FATFS"
"Name"=""
"PartitionDriver"=""
"MountHidden"=dword:1
"Folder"="Extended_ROM"
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\EXT_FLASHDRV\FATFS]
"Flags"=dword:14
"FormatTfat"=dword:1
"EnableCache"=dword:0
[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\EXT_FLASHDRV]
"DriverPath"="Drivers\\BuiltIn\\EXT_FLASHDRV"
"LoadFlags"=dword:1
"Order"=dword:12
"Bootphase"=dword:2
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\EXT_FLASHDRV]
"Profile"="EXT_FLASHDRV"
"Index"= dword:1
"Dll"="OEM_FLASHDRV.dll"
"Prefix"="DSK"
"Order"=dword:13
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
2、转换和编辑boot.hv。剪切boot.hv到:Big Storage\rgucomp目录,运行“转换boot.hv为RGU.bat”,生成boot.rgu,用Ultraedit32打开,会提示你是否转换文件为DOS格式,点击是。在第一行加入文字:REGEDIT4,并在下面空一行。然后搜索EXT_FLASHDRV相关注册表信息,全部删除,然后保存,保存时候,要保存为Unicode格式,做法是:从菜单“文件”——“转换”——“ASCII 转 Unicode”(相对于Ultraedit32的菜单来说)。其中涉及到的注册表可能有如下一些:
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\EXT_FLASHDRV]
"Folder"="Extended_ROM"
"MountHidden"=dword:1
"PartitionDriver"=""
"Name"=""
"DefaultFileSystem"="FATFS"
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\EXT_FLASHDRV\FATFS]
"EnableCache"=dword:0
"FormatTfat"=dword:1
"Flags"=dword:14
[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\EXT_FLASHDRV]
"Bootphase"=dword:2
"Order"=dword:12
"LoadFlags"=dword:1
"DriverPath"="Drivers\\BuiltIn\\EXT_FLASHDRV"
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\EXT_FLASHDRV]
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
"Order"=dword:13
"Prefix"="DSK"
"Dll"="OEM_FLASHDRV.dll"
"Index"=dword:1
"Profile"="EXT_FLASHDRV"
3、将上一步修改好的boot.rgu转回boot.hv。运行“转换boot.RGU为HV.bat”,自动转换boot.rgu为boot.hv,新生成的bot.hv会覆盖掉旧文件。将新生成的boot.hv替换:OUT\FILES目录下的同名文件。
步骤四:切换到xipport,在界面选择realloc P,然后Build xip_out.bin,如下图:
4,回写XIP。xipport界面, write xip_out.bin to 下面方框中,第一个方框数字00310000修改为00320000,然后,点击“write xip_out.bin to:”按钮。这样XIP就写入nk.nb中了。如下图: 5、修改nk.nb 文件名为os.nb.payload,运行“3.bat”,完成后,会重新生成os.nb。
6、用Ultraedit32 修改 os.nb,将如下两个地址的数值分别加0X48:
0x000001F5: A7 00 + 0x48 = EF 00 (此处为A7)
0x000001FB: B2 01 + 0x48 = FA 01 (此处可能不是B2,而是其他值)
比如0x000001F5 位置是A7 你用16进制计算器(系统自带)A7+48结果就是EF 0x000001FB方法修改相同。
修改后,保存,这样就得到了Big Storage 的OS.nb。将OS.nb复制到模板的ROM目录下替换同名文件,刚才已经将修改好的boot.rgu复制到ROM\XIP目录替换同名文件。现在剩下最后两步。
步骤五:
1、删除模板中,SYS\OEMDrivers\OEM_FLASHDRV.DLL文件。
2、搜索模板中,SYS\Metadata目录中的default.hv文件,这个文件是隐藏属性和只读属性。复制到Big Storage\rgucomp中,取消隐藏属性和只读属性,并删除刚才的boot.hv和boot.rgu文件,转换default.hv为default.rgu:运行“转换default.hv为RGU.bat”,得到default.rgu,ultraedit32打开,首行添加文字:REGEDIT4,并在下面空一行。然后搜索EXT_FLASHDRV相关注册表信息,全部删除,然后保存,保存时候,要保存为Unicode格式。跟刚才编辑转换和编辑boot.hv文件差不多。然后运行“转换default.RGU为HV.bat”转回default.hv文件。复制default.hv回SYS\Metadata目录,覆盖同名文件。
步骤六:
哈哈,当然是开始定制rom。。。。。然后刷机。。。。。
总结 模板最终用到的文件只有三个:OS.nb,boot.rgu和default.hv,并删除OEM_FLASHDRV.DLL
题外话:合并EXT_ROM,感觉更省电,也许是因为少加载了一个dll的原因,也许是纯心理作用。。
[ 本帖最后由 闪到腰 于 2008-10-23 18:08 编辑 ] |