注册 | 登录 | RSS订阅 | BLOG | 站内留言 | 欢迎你投稿

分类: ‘SYS定制教学’

貌似Atom也可以100%不睡死了,测试Rom在最末

2008年11月27日 3 条留言

转自: http://bbs.pdafans.com/viewthread.php?tid=604920
CC8337作者

国外有人声称彻底解决了SB(睡死)问题,附方案软件http://www.hidopod.com/bbs/thread-34219-1-1.html

XDA FLAME USERS 的nikhilraut1985 大大声称解决了大FSB(睡死)问题。
他是比较了东芝G900和大F的文件结构后而发现的,而且经过了部分用家验证。

但本人英文和软硬件知识都比较菜,请本坛的高手组织大家测试一下。
原文如下:http://www.xdaflameusers.com/viewtopic.php?id=1165&p=1

Hey Friends Finally I was able to solve the SB Problem Totally FOR WM6 AND WM6.1
WHat did I did?
I Downloaded the Toshiba G900 DUmp
I noticed that it had a sperate dll for
nvd.dll "Power-manageable block device'
nvrm.dll "for Generic power-manageable devices"
while our flame had only 1 dll i.e nvrm.dll for both generic and block power-manageable devices
I Compared the dll calls of nvrm.dll of G900 And nvrm.dll and found that the flame nvrm.dll calls
nvbsp.dll While that of G900 does not call nvbsp.dll
SO our flame has nvbsp in place of nvd.dll of the toshiba G900.

Now the Promblem lies in the flame registry.

[HKEY_LOCAL_MACHINEDriversBuiltInnvplatform]
"P4"=dword:1
"VI_DEFAULT_STATE"=dword:1
"EnableDPD"=dword:1
"GpioVI"=dword:1005b
"GpioDPD"=dword:10054
"IClass"=multi_sz:"{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"
"Index"=dword:1
"Order"=dword:1
"Dll"="nvrm.dll"
"Prefix"="NVR"

now see the Iclass which is a multi line string value having value {8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"
[HKEY_LOCAL_MACHINESystemCurrentControlSetControlPowerInterfaces]
"{A32942B7-920C-486b-B0E6-92A702A99B35}"="Generic power-manageable devices"
"{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"="Power-manageable block devices"
"{98C5250D-C29A-4985-AE5F-AFE5367E5006}"="Power-manageable NDIS miniports"
"{EB91C7C9-8BF6-4a2d-9AB8-69724EED97D1}"="Power-manageable display"

this value is for Power-manageable block devices what abt the "{A32942B7-920C-486b-B0E6-92A702A99B35}"="Generic power-manageable device

so the modified registry is

[HKEY_LOCAL_MACHINEDriversBuiltInnvplatform]
"P4"=dword:1
"VI_DEFAULT_STATE"=dword:1
"EnableDPD"=dword:1
"GpioVI"=dword:1005b
"GpioDPD"=dword:10054
"IClass"=multi_sz:"{A32942B7-920C-486b-B0E6-92A702A99B35}","{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"
"Index"=dword:1
"Order"=dword:1
"Dll"="nvrm.dll"
"Prefix"="NVR"

now after this i disable all the power manageable value disablepowermanagement to 1
and did a soft rest
did the following tests
GSM off –aftersuspend phone wake's up
GSM,WLAN,Bluetooth on –aftersuspend phone wake's up
Installed Malloth's latern the c# one phone wak's up after suspend
INSTALLED SPB SHELL 2.0 PHONE WAKE'S UP
翻译
他就是说,Toshiba G900有两个动态链接库管理电源(对应不同类的设备):
nvd.dll 对应"Power-manageable block device'
nvrm.dll 对应"Generic power-manageable devices"

(可能是写反了,与下面的内容矛盾)

而Flame只有一个:nvrm.dll。

他对比后发现flame的nvrm.dll调用了nvbsp.dll,而Toshiba G900的nvrm.dll没有,所以认为 flame的 nvbsp.dll相当于toshiba G900的nvd.dll。这是引起睡死的根源。

利用注册表编辑器打开注册表,找到
[HKEY_LOCAL_MACHINESystemCurrentControlSetControlPowerInterfaces]
"{A32942B7-920C-486b-B0E6-92A702A99B35}"="Generic power-manageable devices"
"{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"="Power-manageable block devices"
"{98C5250D-C29A-4985-AE5F-AFE5367E5006}"="Power-manageable NDIS miniports"
"{EB91C7C9-8BF6-4a2d-9AB8-69724EED97D1}"="Power-manageable display"
即Generic power-manageable devices对应的标识为{A32942B7-920C-486b-B0E6-92A702A99B35}
Power-manageable block devices对应的标识为{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}

修改第一步

而注册表中的
[HKEY_LOCAL_MACHINEDriversBuiltInnvplatform]
"P4"=dword:1
"VI_DEFAULT_STATE"=dword:1
"EnableDPD"=dword:1
"GpioVI"=dword:1005b
"GpioDPD"=dword:10054
"IClass"=multi_sz:"{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"
"Index"=dword:1
"Order"=dword:1
"Dll"="nvrm.dll"
"Prefix"="NVR"
注意"IClass"=multi_sz:"{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}",只有一个标识。

所以修改的方法为:添加另一个没出现的标识,即将
IClass的值{8DD679CE-8AB4-43c8-A14A-EA4963FAA715},改为{A32942B7-920C-486b-B0E6-92A702A99B35},{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}

修改第二步

大家應該用註冊表編輯器查找:disablepowermanagement 項,把值改爲1。

之后软起即可。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

[color=Blue]【接上文】
我在Atom上更改的思路如下:

1、"{A32942B7-920C-486b-B0E6-92A702A99B35}"在Atom中只有NLS,wavedev、backlight有此数值。
"{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"则完全找不到对应的dll,水平有限,-_-!

2、按一楼思路修改NLS,wavedev、backlight,均不可行,甚至更惨,会有白屏。

3、下了一个Flame的模板,将nvrm.dll移植到Atom的Xip中,一直搞不定地址冲突,郁闷烦恼……

4、又下了一个Flame的Rom,解开XIP,Oh,MyGod,原来Flame的OEMDrivers是在XIP中的,与Atom很大区别。

5、发现nvrm.dll和nvbsp.dll并不在XIP所需文件中,呵呵,那就好办了。

6、将nvrm.dll和nvbsp.dll拷贝到Atom模板中的OEMDrivers;

7、将原文第一步的东东加入RGU:
HKEY_LOCAL_MACHINEDriversBuiltInnvplatform]
"P4"=dword:1
"VI_DEFAULT_STATE"=dword:1
"EnableDPD"=dword:1
"GpioVI"=dword:1005b
"GpioDPD"=dword:10054
"IClass"=multi_sz:"{A32942B7-920C-486b-B0E6-92A702A99B35},{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"
"Index"=dword:1
"Order"=dword:1
"Dll"="nvrm.dll"

8、原文第二部巨耗电,觉得不可行。

9、又去网上搜了一下,觉得以下这个可行:
(1、)修改.rgu文件。
修改处及结果:
[HKEY_LOCAL_MACHINEDriversBuiltInnvplatform]
"P4"=dword:1
"VI_DEFAULT_STATE"=dword:1
"EnableDPD"=dword:1
"GpioVI"=dword:1005b
"GpioDPD"=dword:10054
"IClass"="{A32942B7-920C-486b-B0E6-92A702A99B35}=b%"
"Index"=dword:1
"Order"=dword:1
"Dll"="nvrm.dll"
"Prefix"="NVR"
(2、)修改.rgu文件。
修改处及结果:
[HKEY_LOCAL_MACHINEDriversSDCARDClientDriversClassSDMemory_Class]
"Dll"="SDMemory.dll"
"DisablePowerManagement"=dword:0
"Prefix"="DSK"
"BlockTransferSize"=dword:40 ; send no more than 64 blocks of data per bus transfer
"Profile"="SDMemory"
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}",
"{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"
(3、)在Enterprise,OEM_Drivers,Enterprise,OS,IRDA目录下的rgu文件,找到DisablePowerManagement修改其值为0 —— (我当然是直接加在OEMDrivers里的那个Rgu啦,原作者的做法比较累)。

结果:目前还没有发现睡死,还需测试。用电正常,省电是谈不上了,估计也就2天多一点。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

【再接上文】
感觉这是一个折中的方法,应该还是要在Atom里找一找8DD679CE-8AB4-43c8-A14A-EA4963FAA715对应的dll到底是哪个?即对应的nvrm.dll应该是Atom的哪个dll文件,抛砖引玉吧,还需要高手出马。[/color]

测试ROM连接:http://www.brsbox.com/filebox/down/fc/1f31a1774007eb8edb74498281aa16a2

作者: 分类: 分类:SYS定制教学 标签: 关键词:, ,

nb0与bin的区别

2008年10月7日 没有留言

用PB编译的镜像文件,一般都会同时以BIN文件和NB0文件两种形式给出。

  NB0文件是地址空间的一个完整的映像文件,相当于地址空间的硬拷贝。

  BIN文件是一种二进制ROM映像文件格式,同NB0文件相比,它压缩了无效的数据。BIN文件中包含了文件头和许多的段,每个段都给出了在实际映像中的首地址、长度、校验码和数据。

BIN文件的详细格式如下:

文件头(长度:7字节,内容固定),相当于字符串“B000FF”加一个回车符

42 30 30 30 46 46 0A

紧跟着的是整个映像的基本信息:(8字节)

00 00 00 00    00 00 00 00

映射到的首地址 整个映像的长度

接下来是各个段的定义

00 00 00 00  00 00 00 00  00 00 00 00   00 00 …… 00 00

段的首地址 段的长度 校验码 映像数据,长度已给出

每个段的定义都同上面一样。

注:NB0文件是地址空间的一个完整的映像文件,相当于地址空间的硬拷贝。

—————————————–

4 月 23 日

今天生产上反映有一台计算机烧写nk.bin不能通过校验,上去看了一下,我烧写时习惯把nk.bin直接拉到workspace中,试了一下,拉过去提示不是有效的文件,用md5校验了一下跟下发的md5对比发现校验变了,虽然文件大小没变。怀疑是病毒所致。

结论: 1. 下发软件时同时下发文件的MD5还是很有必要的;

2. 多亏是用.bin文件通过网络下载内核,才提前发现了问题,如果

用其他方式烧写.nb0文件,这个问题可能不容易发现,导致内核

不稳定。

—————————————–

———————–

在H-JTAG论坛里摘录了下边的一段:

HEX文件和BIN文件格式的区别

HEX文件和BIN文件是我们经常碰到的2种文件格式。下面简单介绍一下这2种文件格式的区别:

1 - HEX文件是包括地址信息的,而BIN文件格式只包括了数据本身
在烧写或下载HEX文件的时候,一般都不需要用户指定地址,因为HEX文件内部的信息已经包括了地址。而烧写BIN
文件的时候,用户是一定需要指定地址信息的。

3 - BIN文件格式
对二进制文件而言,其实没有”格式”。文件只是包括了纯粹的二进制数据。

4 - HEX文件格式
HEX文件都是由记录(RECORD)组成的。在HEX文件里面,每一行代表一个记录。记录的基本格式为:
+—————————————————————+
| RECORD | RECLEN | LOAD | RECTYPE | INFO or DATA | CHKSUM |
| MARK ':' | | OFFSET | | | |
+—————————————————————+
| 1-byte | 1-byte | 2-byte | 1-byte | n-byte | 1-byte |
+—————————————————————+

记录类型包括:
'00' Data Rrecord:用来记录数据,HEX文件的大部分记录都是数据记录
'01' End of File Record: 用来标识文件结束,放在文件的最后,标识HEX文件的结尾
'04' Extended Linear Address Record: 用来标识扩展线性地址的记录
'02' Extended Segment Address Record: 用来标识扩展段地址的记录

在上面的后2种记录,都是用来提供地址信息的。每次碰到这2个记录的时候,都可以根据记录计算出一个“基”地址。
对于后面的数据记录,计算地址的时候,都是以这些“基”地址为基础的。

数据记录的具体格式:
+—————————————————————+
| RECORD | RECLEN | LOAD | RECTYPE | INFO or DATA | CHKSUM |
| MARK ':' | | OFFSET | '00' | | |
+—————————————————————+
| 1-byte | 1-byte | 2-byte | 1-byte | n-byte | 1-byte |
+—————————————————————+

看个例子:
:020000040000FA
:10000400FF00A0E314209FE5001092E5011092E5A3
:00000001FF

对上面的HEX文件进行分析:
第1条记录的长度为02,LOAD OFFSET为0000,RECTYPE为04,说明该记录为扩展段地址记录。数据为0000,校验和为
FA。从这个记录的长度和数据,我们可以计算出一个基地址,这个地址为0X0000。后面的数据记录都以这个地址为基
地址。
第2条记录的长度为10(16),LOAD OFFSET为0004,RECTYPE为00,说明该记录为数据记录。
数据为FF00A0E314209FE5001092E5011092E5,共16个BYTE。这个记录的校验和为A3。此时的基地址为0X0000,加上OFFSET,
这个记录里的16BYTE的数据的起始地址就是0×0000 + 0×0004 = 0×0004.
第3条记录的长度为00,LOAD OFFSET为0000,TYPE = 01,校验和为FF。说明这个是一个END OF FILE RECORD,标识
文件的结尾。

在上面这个例子里,实际的数据只有16个BYTE:FF00A0E314209FE5001092E5011092E5,其起始地址为0×4

4 - HEX文件和BIN文件大小有区别
HEX文件是用ASCII来表示二进制的数值。例如一般8-BIT的二进制数值0x3F,用ASCII来表示就需要分别表示字符'3'
和字符'F',每个字符需要一个BYTE,所以HEX文件需要 > 2倍的空间。
对一个BIN文件而言,你查看文件的大小就可以知道文件包括的数据的实际大小。而对HEX文件而言,你看到的文件
大小并不是实际的数据的大小。一是因为HEX文件是用ASCII来表示数据,二是因为HEX文件本身还包括别的附加信息。

要想详细了解HEX文件格式,请GOOGLE INTEL HEX,就能找到详细的PDF文档。

作者: 分类: 分类:SYS定制教学 标签: 关键词:, ,

超强rom工具osnbtool详解,ROM的分解以及合成、PP修改

2008年7月8日 2 条留言

转自数码部落:http://www.pdaclan.com/thread-15132-1-1.html
由:weisun
非常感谢,编这么长的贴子不容易。

ROM的分解以及合成、PP修改。。。超强rom工具osnbtool详解
经常看到有些朋友问如何解开某某ROM,如何修改某某机器的PagePool等等,嫌麻烦不再一一解答了,写个教程。

请先下载本人拙作osnbtool.exe以及压缩支持库cecompr_nt.dll。关于OS镜像等的说明请移步osnbtool发布贴查阅,osnbtool.exe的命令参数说明请参考所附readme,本文不再赘述。工具发布贴:http://www.pdaclan.com/thread-12817-1-1.html

一、ROM文件的构成以及用-sp命令分离出OS镜像
粗略看了一下部落所发布的各机型ROM,大多数都包含了完整地OS镜像,对于这些rom文件都能够被osnbtool.exe直接支持。这些ROM的结构的种类如下图:

2008-7-6 19:05

使用osnbtool.exe –sp 来了解rom的构成和分离出OS镜像。对于种类一和种类三,-sp会分离出fName.ext.PRE文件(头部)和fName.ext.OS.NB(OS镜像或OS镜像+尾部);对于种类二和种类四-sp命令执行后会提示不用split。只要ROM已经是以OS镜像开头,不管后面又没有“ROM尾部”,osnbtool都会正确处理,因此种类二和种类四是在本文中都看作是纯OS镜像。

-sp命令示例一:
下面是对ASUS-P535的纯OS-ROM执行-sp后的情况:
D:\ tools>osnbtool -sp galaxyii.nb0
OS ROM Partition Tool V1.30 By Weisun :> PDAclan.com
Sector size : 0×00000200
OS IMAGE found.
Partitions infomation: ß——下表列出各分区信息
**************************************
Part-0 type: BOOT SECTION image ß——分区 0 :BOOT
Part-1 type: XIP RAM Image ß——分区 1 :XIP
Part-2 type: IMGFS file system ß——分区 2 :IMGFS文件系统
**************************************
Source file does not need to split! ß——已经是纯OS镜像

-sp命令示例二:
下面是对SORG的ASUS-P750 ROM执行-sp后的情况(750的官方ROM结构和535完全一样,但是SORG自定义了ROM结构):
D:\ tools>osnbtool -sp PegasusP.nb0
OS ROM Partition Tool V1.30 By Weisun :> PDAclan.com
Sector size : 0×00000200
OS IMAGE found.
Partitions infomation: ß——下表列出各分区信息
**************************************
Part-0 type: XIP RAM Image ß——分区 0 :XIP
Part-1 type: IMGFS file system ß——分区 1 :IMGFS文件系统
**************************************
PegasusP.nb0.PRE written. ß——生成了.PRE文件(rom头部)
PegasusP.nb0.OS.NB written. ß——生成了.OS.NB文件(OS镜像)

基于上面2个例子,我们看到-sp命令同时完成了分离出OS镜像和列出分区信息的功能。善用这个命令就可以对种类一到四的ROM进行分解了。

对于-sp命令示例一,我们用 osnbtool.exe –d galaxyii.nb0 2 imgfs.bin导出imgfs文件系统镜像,对于-sp命令示例二,我们用osnbtool.exe –d PegasusP.nb0.OS.NB 0 XIP.BIN导出XIP镜像(注意源文件是fName.ext.OS.NB)。至于如何导出示例一的XIP和示例二的IMGFS,留给读者自己想。。。。

二、解开IMGFS文件系统以及合成ROM

在教程第一部分已经得到了imgfs.bin镜像,很多ROM diyer都能够熟练解开和打包,为了教程完整和对初学者照顾,再写一下解开和打包步骤:
Imgfstodump.exe imgfs.bin 得到DUMP文件夹,定制过程略。。。

Imgfsfromdump.exe imgfs.bin imgfs-new.bin 把定制好的DUMP文件夹打包生成imgfs-new.bin

Osnbtool.exe –c galaxyii.nb0 2 imgfs-new.bin 把新的IMGFS镜像插入源OS镜像,生成的新镜像文件会在源OS镜像文件名后再加上 .NEW后缀。(galaxyii.nb0是源OS镜像,如果-sp曾经分离出fName.ext.OS.NB,这里就要填这个文件名)

Copy /b/y fName.ext.PRE+fName.ext.OS.NB.NeW fName.ext 如果-sp时提示“Source file does not need to split!”就不需要这一步了,执行后生成原来的ROM文件。

三、对XIP.BIN修改PagePool值以及合成ROM

XIP分区在OS镜像中大多是分配在Part-1,也有少数分配在Part-0,目前还没有看到过XIP在其他分区的。
XIP分区镜像有压缩和不压缩之分,压缩的XIP镜像就是所谓的“SRPX”签名的分区。

这里需要说明一下以前的xip2srpx.exe在压缩新生成的XIP.BIN镜像有时会发生错误,一些喜欢移植XIP的玩家在ROM引导失败后浪费了很多时间去查找XIPPORT地址分配等问题,其实都是压缩镜像时惹的祸。Xip2srpx.exe的错误发生在Compress block table不能变长导致随后的data block内容不完整。Osnbtool.exe以及前一个版本srpxtool.exe起初就是为了解决这个问题而作,同时出于方便考虑支持了压缩和导入OS镜像一步完成,省却原来还要用HEX修改分区镜像头部等麻烦的操作。osnbtool.exe的“SRPX”压缩算法采用M$的标准头文件,保证了压缩是完全无误的。
另外说明一点osnbtool.exe –c命令在导入各分区时,不论输入的分区镜像文件尺寸有何变化,都能够正确重组整个OS镜像的结构。

1、第一步:XIP分区的导出

对于非压缩的XIP分区导出示例:
D:\ tools>osnbtool -d i350.nb0 0 xip350.bin
OS ROM Partition Tool V1.30 By Weisun :> PDAclan.com
Sector size : 0×00000200
OS IMAGE found.
Partitions infomation:

**************************************
Part-0 type: XIP RAM Image ß——指出分区 0 为XIP
Part-1 type: IMGFS file system
**************************************
Can not find compression signature. ß——未找到签名,说明为未压缩分区
Part-1 de-packing…
Successfully de-packed to xip.bin ß——导出到xip.bin

对于压缩的XIP分区导出示例:
D:\ tools>osnbtool -d 535.nb0 1 xip.bin
OS ROM Partition Tool V1.30 By Weisun :> PDAclan.com
Sector size : 0×00000200
OS IMAGE found.
Partitions infomation:
**************************************
Part-0 type: BOOT SECTION image
Part-1 type: XIP RAM Image ß——指出分区 1 为XIP
Part-2 type: IMGFS file system
**************************************
Signature: SRPX ß——签名
CompressVersion: 5 ß——压缩版本
Uncompressed size: 2FF000 ß——未压缩前的size
Deompress processing…
Successfully decompressed to xip.bin ß——成功解压到xip.bin

2、第二步:修改PagePool值
自动搜索PP偏移地址并修改到要求的数值示例:
D:\ tools>osnbtool -ap xip.bin 16
OS ROM Partition Tool V1.30 By Weisun :> PDAclan.com
Find "NKKD8" signature at offset: 0x000D6288 ß——“NKKD8”偏移地址
Find instruction at offset: 0x000D6548 ß——instruction偏移地址
Find PagePool Value at offset: 0x000D6558 ß——PP值偏移地址
Old value: 0×00500000(5MB) ß—— PP原值
Sure to modify it to 0×01000000 (16MB)(y/n)? y ß——是否修改到新值?y
New value: 0×01000000(16MB) written to offset 0x000D6558. ß——写入完成

指定PP偏移地址并修改到要求的数值示例:
D:\ tools>osnbtool -pp xip.bin 0x000D6558 5
OS ROM Partition Tool V1.30 By Weisun :> PDAclan.com
Offset: 0x000D6558 ß——指定的PP值偏移地址
Old value: 0×01000000(16MB) ß—— PP原值
Sure to modify it to 0×00500000 (5MB)(y/n)? yß——是否修改到新值?y
New value: 0×00500000(5MB) written to offset 0x000D6558. ß——写入完成

有些兄弟可能会问,既然可以自动搜索PP地址,为什么还要有指定PP地址命令呢?

这里说明一下,osnbtool.exe –ap命令的搜索算法模拟了人工使用HEX编辑器在XIP.BIN中寻找PP位置的逻辑,但是计算机程序总有机械的一面,虽然目前还没有遇到这个算法找不到的PP值地址,但是不排除特殊情况。如果遇到-ap不能找到PP地址,在不用HEX编辑器的情况下可以利用-ap的提示配合-pp指定地址去测试哪个是PP值,一般PP值的位置在instruction地址后面加0×10左右的地方,就从此地址开始。

自己用HEX编辑了一个-ap不能找到PP地址的XIP.BIN,示例如下:
D:\ tools>osnbtool -ap xip.bin 16
OS ROM Partition Tool V1.30 By Weisun :> PDAclan.com
Find "NKKD8" signature at offset: 0x000D6288
Find instruction at offset: 0x000D6548 ß——找到instruction地址为0x000D6548
Can not find value of PagePool.

D:\Share\p535prj\debug>osnbtool -pp xip.bin 0x000D6558 16
OS ROM Partition Tool V1.30 By Weisun :> PDAclan.com
Offset: 0x000D6558 ß——先试试看instruction地址+0×10的地方
Old value: 0×00000000(0MB) ß——原值为0,看来不是(怀疑PP原值为0的可以试改这里)
Sure to modify it to 0×01000000 (16MB)(y/n)? n ß——先不改,取消
User cancel.

D:\ tools>osnbtool -pp xip.bin 0x000D6554 16
OS ROM Partition Tool V1.30 By Weisun :> PDAclan.com
Offset: 0x000D6554 ß——往前挪4个字节(DWORD)看看
Old value: 0x8854099C(2181MB) ß——更不像了。。。
Sure to modify it to 0×01000000 (16MB)(y/n)? n ß——还是取消
User cancel.

D:\ tools>osnbtool -pp xip.bin 0x000D655C 16
OS ROM Partition Tool V1.30 By Weisun :> PDAclan.com
Offset: 0x000D655C ß——往后挪4个字节(DWORD)看看
Old value: 0x0050BB00(5MB) ß——这个比较像
Sure to modify it to 0×01000000 (16MB)(y/n)? y ß——好的,就改吧
New value: 0×01000000(16MB) written to offset 0x000D655C. ß——改好了
如上在instruction地址+0×10附近查找哪一个值比较像,就改掉它刷机测。万一-ap改的没有效果也可以用此方法。不过-ap已经足够强大了,目前还没有遇到找不到或者修改无效的。如果哪位兄弟遇到了请告诉一下。

3、第三步:XIP分区的导入并生成新的OS镜像

对于压缩的XIP分区导入示例:
D:\ tools>osnbtool -c i350.nb0 0 xip.bin
OS ROM Partition Tool V1.30 By Weisun :> PDAclan.com
Sector size : 0×00000200
OS IMAGE found.
Partitions infomation:
**************************************
Part-0 type: XIP RAM Image ß——指出分区 0 为XIP
Part-1 type: IMGFS file system
**************************************
Can not find compression signature. ß——未找到签名,说明为未压缩分区
Part-0 inserting…
Successfully inserted xip.bin into i350.nb0.NEWß——导入了xip.bin,生成i350.nb0.NEW

对于压缩的XIP分区导入示例:
D:\ tools>osnbtool -c 535.nb0 1 xip.bin
OS ROM Partition Tool V1.30 By Weisun :> PDAclan.com
Sector size : 0×00000200
OS IMAGE found.
Partitions infomation:
**************************************
Part-0 type: BOOT SECTION image
Part-1 type: XIP RAM Image ß——指出分区 1 为XIP
Part-2 type: IMGFS file system
**************************************
Source OS image: ß——以下为源OS镜像中的参数
Signature: SRPX ß——签名
CompressVersion: 5 ß——压缩版本
Uncompressed size: 2FF000 ß——未压缩前的size
Source Part-1 Size: 1F4000 ß——压缩分区size
————————————– ß——以下为新的OS镜像中的参数
Compress processing…
NEW Uncompressed size: 2FF000 ß——未压缩前的size
NEW Compressed size: 1B3137 ß——XIP镜像压缩后的size
New Part Size: 1B377B ß——导入新OS镜像后的XIP分区size
Successfully compressed xip.bin into 535.nb0.NEWß——导入新OS镜像 535.nb0.NEW

上面这些步骤弄好了就可以用新做好的OS镜像刷机了,至于XIP.BIN的分解移植等不在本文讨论范围,请参考其他教程。

四、解开一些ROM的XOR掩码

有的机型支持多种包装的rom文件刷机,比如华硕535、525、750系列,可以直接刷OS镜像,又可以刷官方发布的升级包。而有些官方升级包的ROM文件使用了掩码,要分解这类ROM需要先解掩码,osnbtool提供了-x命令在解开掩码的同时显示rom中分区信息供参考。

下面是AsusP535官方WM6的CAP文件用-x解开后的情况:
D:\ tools>osnbtool -x asusp535.cap 0xA87BA0D5 ß——这0xA87BA0D5就是掩码
OS ROM Partition Tool V1.30 By Weisun :> PDAclan.com
Unmasked to asusp535.cap.XOR ß——解掩码后得到的.XOR文件
Sector size : 0×00000200
OS IMAGE found. ß——找到了OS镜像
Partitions infomation: ß——以下为分区信息表
**************************************
Part-0 type: BOOT SECTION image
Part-1 type: XIP RAM Image
Part-2 type: IMGFS file system
**************************************
如果-x后没有分区信息表的话说明掩码错了。最好问明白再来,穷举法试不出来的。。呵呵

接下来可以-sp了:
D:\ tools>osnbtool -sp asusp535.cap.XOR
OS ROM Partition Tool V1.30 By Weisun :> PDAclan.com
Sector size : 0×00000200
OS IMAGE found.
Partitions infomation:
**************************************
Part-0 type: BOOT SECTION image
Part-1 type: XIP RAM Image
Part-2 type: IMGFS file system
**************************************
asusp535.cap.XOR.PRE written.
asusp535.cap.XOR.OS.NB written.
不用再解释这些东东的含义了吧。。。。。。asusp535.cap.XOR.OS.NB就是535的OS镜像,要卡刷的话必须改名为:GalaxyII.nb0

用过本人的p535captool –d AsusP535.cap得到GalaxyII.nb0的朋友可能会问,这两种方法得到的OS有何区别?回答是没有区别。
P535captool是专用于535的,而osnbtool是通用工具。虽然也可以用Xda3nbftool的-x命令,但是osnbtool会列出镜像分区情况,更实用些吧。。。

至于怎样看出rom的掩码是多少。。。方法简单但是要说清楚颇费口水,以后再说吧。。

列出一些官方ROM的掩码(Asus变态吧,这么多都加掩码。。。):
AsusP535:0xA87BA0D5
AsusP750:0xA87BA0D6
AsusP526:0×23232323
AsusP527:0×23232323
AsusA696:0xB0B0B0B0
。。。。。。其他的以后看过再补充

作者: 分类: 分类:SYS定制教学 标签: 关键词:

OS镜像工具OSnbtool v1.3

2008年7月8日 没有留言

转自数码部落:http://www.pdaclan.com/thread-12817-1-1.html
由:weisun

这是个好工具,大家学习学习,好好利用。谢谢原作者。

7.1再次更新搜索PP智能算法,OS镜像工具osnbtool V1.30 by weisun
最新更新:(请到一楼底部下载)
****************************************************
OS ROM Partition 工具 V1.30 By Weisun > PDAclan.com
新增内容:
新增 -ap 命令对XIP.BIN自动搜索PagePool偏移地址并且修改PagePool的值。

命令行用法:

命令开关 源XIP文件 新的PP值(MB)
-ap [-y] 自动在XIP.BIN中搜索PP偏移地址,如果找到则修改PP值
(输入的PP值为10进制数,单位MB)

举例:

osnbtool.exe -ap XIP.BIN 12 搜索和修改XIP.BIN中的PagePool值为12MB

说明:
1、自动搜索算法可以适应大多数机型的XIP.BIN。目前试验过的ROM有ASUSp535、G-SMART-i350、ASUS-A696、Samsung-i780

2、本人试验的机型有限,不排除特殊情况。如果遇到修改无效的机型,请使用-pp指定偏移地址修改

3、自动修改ASUSp535 rom的PagePool到16MB的Bat示例如下:

echo 535-16pp.bat
echo #####################################
osnbtool.exe -d GalaxyII.nb0 1 XIP.BIN
osnbtool.exe -ap XIP.BIN 16 -y
osnbtool.exe -c GalaxyII.nb0 1 XIP.BIN
copy /y GalaxyII.nb0.NEW GalaxyII.nb0
echo #####################################

Weisun
2008.7.1

****************************************************
OS ROM Partition 工具 V1.26 By Weisun > PDAclan.com
新增内容:
1、新增 -x 命令对源文件解XOR-MASK。

2、新增 -pp 命令对XIP.BIN修改PagePool的值。

命令行用法:
命令开关 源文件 掩码(十六进制)可选输出文件
-x <0x"dwKeyWord"> [outFile] 把源文件解掩码到输出文件
(默认输出为源文件名+.XOR后缀)

命令开关 源XIP文件 偏移地址 新的PP值(MB)
-pp <0x"dwOFFSET"> [-y] 按照指定的偏移地址在XIP.BIN中修改PP值
(输入的PP值为10进制数,单位MB)

新增命令举例:
osnbtool.exe -x update.img 0xb0b0b0b0 把asus-a696的IMG文件解掩码,生成update.img.XOR
(注:如果解掩码后发现OS镜像会提示分区情况,随后可用-sp处理)

osnbtool.exe -pp XIP.BIN 0x000d6558 12 更改XIP.BIN的偏移0x000d6558(此为535官方XIP的PP地址)到12MB

说明:
1、由于不同机型的PagePool地址都不尽相同(同一机型的不同XIP版本的pp地址也不一样),为了兼容,-pp命令修改XIP中PagePool值必须指定偏移地址。请查明自己的XIP.BIN中PP值的偏移地址再使用。

2、加入pp修改的目的是为了让发布的rom可以兼有多种pp值的选择。例如发布的535 rom可以用一个bat改变pp值:

echo 535-16pp.bat
echo #####################################
osnbtool.exe -d GalaxyII.nb0 1 XIP.BIN
osnbtool.exe -pp XIP.BIN 0x000d6558 16 -y
osnbtool.exe -c GalaxyII.nb0 1 XIP.BIN
copy /y GalaxyII.nb0.NEW GalaxyII.nb0
echo #####################################

Weisun
2008.7.1

*********************************************
2008.6.18 osnbtool.exe OS镜像工具阶段整理说明

原来因为老的srpx工具压缩一些改动后变化较大的XIP后会出错,只是想弄个srpx的工具方便使用的,没想到逐步完善后功能大大增强了。

虽然也可以进一步把xip的dump和打包,以及imgfs的dump和打包做进去,但是目前这些工具已经很完善,没必要浪费时间了。。

这些天基本每天一有空就拿些新的rom测试并作了相应的修正,目前应该是比较稳定的版本了,就把osnbtool的特点和功能作一下整理吧。

首先说明,这是一个实用工具,是为了整合rom kitchen时能够达到快速便捷的目的。有一些朋友希望做成GUI的,我认为没有必要去花时间做这些无用功,GUI对于实用工具来说使用起来反而累赘。要用GUI的其实是针对某个机型的kitchen工具主界面,因此如果要达到傻瓜工具的效果,还是需要不同机型的玩家做出相应kitchen的GUI外壳。

接下来时间不会有很多空余了,这个工具的更新告一段落,若无较大的错误一般不会再次更新了。。

####################
OSNBTOOL.EXE最新版本:
v1.26

####################
WINCE5.0 OS镜像说明:

WINCE5.0的OS镜像类似于一个物理硬盘的RAW镜像,包含了BOOT PARTITION BLOCK和各PARTITION的RAW DATA。其中BOOT PARTITION BLOCK包含了主引导扇区和MSFLASH50签名扇区。
一个标准的WINCE5.0 OS镜像必需完全符合这个结构才能正确引导系统。
目前有些刷机ROM把数据的排列进行了自定义,有的在整体ROM包装加了掩码,有的插入了自定义的结构标示段,但是在刷入机器时刷机程序都会还原出各部分标准的IMAGE(包括os镜像)写入存储器规定的地址,否则就不能引导系统。因此从机器上直接用RAW方式抓下来的ROM数据应该都是符合标准的。
如果某个机型提供了单独更新os镜像的方法,不涉及到BOOTLOADER,那这种更新刷机是完全安全的,比如ASUS的一些机型。
OSNBTOOL.EXE就是针对标准的OS镜像,把各个分区单独导出用于编辑修改,然后再把改好的分区按照源OS镜像的结构特点导入,并且支持新导入的分区尺寸有所变化。

####################
OSNBTOOL.EXE主要特点:

目前这个工具相当于整合了msflshtool.exe和srpx工具,相对于msflshtool.exe更增加了在各个分区导入时允许新的分区尺寸的变化并更新BPB,并且尺寸的变化由程序全自动计算,不必用户干预。

1、对于需要处理的源ROM文件,可以用-SP命令导出OS-IMAGE,并且列出各分区的类型(如果原来就是单独的OS-IMAGE程序会提示不用SPLIT)
2、若源rom在OS-IMAGE在尾部添加了附加的数据,-c和-d命令都能正确处理(把数据保留在末尾)
3、对于一些加了掩码的或者自定义结构的ROM包装,请用相应的解构工具还原(比如ASUSP535.CAP可以用本人的P535CAPTOOL.EXE还原出GALAXYII.NB0)
4、同时支持SRPX压缩和没有SRPX压缩的Part导出(包括boot、xip、imgfs和fatfs以及其他分区类型)
5、对于SRPX压缩的Part自动压缩后导入
6、对于没有SRPX压缩的Part直接导入
7、支持size变化了的Part导入
8、支持size大于源OS.NB的SRPX压缩后Part的导入(若新的size小的话源Part-size不变)
9、支持变化大小的imgfs导入(有些机型在缩小了IMGFS后可以相应增大STORAGE,请参考相应机型的定制方法)

####################
imgfs导入的附加说明:

目前缩小IMGFS必需使用tadzio的IMGFSTOOL2.1RC2B的ImgfsFromDUMP.exe重新打包IMGFS,然后用ImgfsToNB.EXE导入新的OS.NB。
需要说明的是这个版本的ImgfsToNB.exe对于MBR的更新采用了DOS的标准,而查阅ce5.0的定义后发现CE5.0的MBR和DOS的标准定义并不一致,在一些机器上可能出现update fail,因此可以在用ImgfsFromDUMP.exe重新打包imgfs-new.bin后再用osnbtool.exe来把imgfs-new.bin导入,可能就会解决问题。

####################
命令行使用格式:

命令开关 源Rom文件
-sp 从源rom文件分离出OS-IMAGE并给出各分区类型提示

命令开关 源OS-IMAGE PART编号 输出文件
-d 从OS IMAGE解压导出PARTn.BIN
(Num一般为0-3之间,大多XIP的Num为 1)

命令开关 源OS-IMAGE PART编号 输入文件
-c 将新的NEW.BIN压缩后插入新的OS IMAGE
(会自动生成新的OS.NB.NEW)

命令开关 源文件 掩码(十六进制)可选输出文件
-x <0x"dwKeyWord"> [outFile] 把源文件解掩码到输出文件
(默认输出为源文件名+.XOR后缀)

命令开关 源XIP文件 偏移地址 新的PP值(MB)
-pp <0x"dwOFFSET"> [-y] 按照指定的偏移地址在XIP.BIN中修改PP值
(输入的PP值为10进制数,单位MB)

命令开关 源XIP文件 新的PP值(MB)
-ap [-y] 自动在XIP.BIN中搜索PP偏移地址,如果找到则修改PP值
(输入的PP值为10进制数,单位MB)

举例:
srpxtool.exe -sp i350.nb0 从i350.nb0分离出i350.nb0.PRE和i350.nb0.OS.NB,以便下一步对i350.nb0.OS.NB进行处理

srpxtool.exe -d GalaxyII.NB0 1 XIP.BIN 把ASUS P535的OS-IMAGE的PART-1(xip)解压到XIP.BIN

srpxtool.exe -c GalaxyII.NB0 1 NEW.BIN 把编辑好的XIP文件NEW.BIN压缩,生成新的GalaxyII.NB0并插入新的PART-1

osnbtool.exe -x update.img 0xb0b0b0b0 把asus-a696的IMG文件解掩码,生成update.img.XOR
(注:如果解掩码后发现OS镜像会提示分区情况,随后可用-sp处理)

osnbtool.exe -pp XIP.BIN 0x000d6558 12 更改XIP.BIN的偏移0x000d6558(此为535官方XIP的PP地址)到12MB

Weisun
2008.7.1更新

****************************************************
OS ROM Partition 工具 V1.23 By Weisun > PDAclan.com
更新内容:
1、更新扇区size算法,改进上一版本只支持sector-size为0×200的情况,目前支持的sector-size为0×200、0×400、0×800、0×1000。

2、每一条有效命令都显示分区信息。

注意:
目前遇到一些ROM包装解构后得到的OS-IMAGE的部分PART位置与MBR不符(非标准的镜像),OSNBTOOL不能支持这些PART的导出和导入。前面的PART如果符合MBR还是能够正常导出和导入 ,但是必须注意前面的PART导入时新的xxx.bin最好不要超过源rom中的大小,否则可能会覆盖后面PART的头部而出错。这些位置错误的PART的判断方法就是用-d导出时程序提示"size is wrong!"。

Weisun
2008.6.27

****************************************************
OS ROM Partition 工具 V1.21 Release By Weisun > PDAclan.com
更新内容:(增加一些ROM的兼容性)
1、更改上一版本扫描引导记录签名取值范围从DWORD改为WORD,修正若有第4个分区存在的OS镜像有可能不被支持的情况。

2、增加 -sp 能够显示的分区类型,包含了非CE SYSTEM ONLY的分区显示。

Weisun
2008.6.17

*****************************************************
08.06.16更新为osnbtool v1.2 Release,-sp分离命令增加显示分区信息。
另外,一楼底部增加了用于Part-1是xip,Part-2是imgfs的BAT,insert的时候新的xip文件改名为xipnew.bin,新的imgfs文件改名为imgfs-new.bin,放在源rom同一目录,bat请放在osnbtool.exe和cecompr_nt.dll同一目录,不管是extract和insert都必须把源rom文件拖动到相应的bat上。
****************************************************
OS ROM Partition 工具 V1.2 Release By Weisun > PDAclan.com
更新内容:
1、 -sp 命令增加显示OS-IMAGE的各个Part信息列表,如下例:
OS ROM Partition Tool V1.2 Release By Weisun :> PDAclan.com
OS IMAGE found.
Partitions infomation:
**************************************
Part-0 type: BOOT SECTION image
Part-1 type: XIP RAM Image
Part-2 type: IMGFS file system
**************************************
Source file does not need to split!

2、修正 -c 在加入变化了长度的Partition时对引导记录表的刷新算法,排除可能发生的错误。

3、修正某个Partition实际长度小于引导记录表长度值时有可能产生的指针越界。
(此类OS-IMAGE可能不能引导,因此拒绝处理)

说明:

—-在使用本工具时请先用 -sp 命令察看ROM结构,同时分离出标准的OS-IMAGE。(若用不着分离,程序会提示)
—-由于OS-IMAGE其他的详细信息可用nbinfo.exe去查看,因此不再重复加入这些信息。

Weisun
2008.6.16

**************************************
2008.6.13增加批处理范例
以下bat范例是以GSMART-I350的ROM为参考做的,其他只要稍作修改即可。
说明:
1、网上下载的I350 ROM是一个XXXX.NB0文件,这个文件包含了标准的OS-IMGAE在其中。
2、I350的OS-IMAGE只有PART-0和PART-1两个分区,其中PART-0是XIP,PART-1是IMGFS。
3、分别作了4个BAT(ExtractXIP_i350.bat,InsertXIP_i350.bat,ExtractIMGFS_i350.bat,InsertIMGFS_i350.bat)来处理
4、只要把XXXXX.NB0文件拖动到相应的BAT上就可以实现相应的功能。
5、其他型号的ROM构成不尽相同,请自行尝试,一般PART-1为XIP,PART-2为IMGFS。
6、另外试了一下又一个ROM叫做“XXXXX.DIP”的也可以用这个工具解开和合成
7、一些加了掩码或插入螺旋地址标志的ROM不可以直接用这个工具,请自行解构出标准的OS-IMAGE就可以使用。
8、新插入的XIP或imgfs如果变化了大小都回正确处理。如果imgfs变小后插入的话,一些型号的机器刷后可以增大storage。

以 ExtractXIP_i350.bat 和 InsertXIP_i350.bat 来举例:

%%%%%%%%%%%%%%%%%%%%%%%%%
ExtractXIP_i350.bat(解开XXXXX.NB0得到XIP.BIN)代码:

ECHO OFF
PATH %~dp0
CD /D "%~dp1"
if %~1%=="" goto _end
:_split
osnbtool.exe -sp %1
if errorlevel 1 goto _noSplit < <----SPLIT后得到标准的OS-IMAGE
set osnb=%1.os.nb%
osnbtool.exe -d %osnb% 0 xip.bin <<----从OS-IMAGE导出XIP.BIN(XIP在PART-0)
goto _end
:_noSplit
set osnb=%1%
echo %osnb%
osnbtool.exe -d %osnb% 0 xip.bin

:_end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
InsertXIP_i350.bat(把编辑好的XIPNEW.BIN插入新生成的XXXXX.NB0.NEW)代码
(注意在把XXXXX.NB0文件拖动到InsertXIP_i350.bat上时请先把编辑好的XIP文件改名为XIPNEW.BIN并复制到原XXXXX.NB0同目录)

rem @ECHO OFF
if %~1%=="" goto _end
set osnb=%1.os.nb%
set srcnbpre=%1.PRE%
set osnbnew=%osnb%.NEW
set srcnbnew=%1.NEW%
set str=%osnb%
:splitPath1
set str=%str:*\=%
echo %str% | findstr /i "\\" >nul && goto splitPath1
echo %osnb% —^> %str%
set osnb=%str%
echo %osnb%
PATH %~dp0
CD /D "%~dp1"
osnbtool.exe -sp %1 < <----SPLIT后得到源ROM中标准的OS-IMAGE
if errorlevel 1 goto _end
osnbtool.exe -c %osnb% 0 xipnew.bin <<----把新的xipnew.bin插入标准的OS-IMAGE
copy /b/y %srcnbpre%+%osnbnew% %srcnbnew% <<----合并xxxxx.NB0.PRE和标准的OS-IMAGE得到新的XXXXX.NB0.NEW
:_end
pause

不多说了,自己看吧。。。
下载包含4个bat的压缩包:请到一楼尾部下载。(注意把osnbtool.exe、cecompr_nt.dll和这些BAT放在同目录下)

**************************************
OS ROM Partition 工具 V1.2 Beta By Weisun > PDAclan.com

更新内容:

增加 -sp 命令开关,支持分离包含了标准OS IMAGE的源ROM文件。

新增命令的用法:

命令开关 源Rom文件
-sp

新增命令说明:
—-如果源ROM文件中包含了正确的OS-IMAGE,会生成 fName.ext.PRE 和 fName.ext.OS.NB 两个文件
—-其中“fName.ext.OS.NB”就是OS-IMAGE。
—-可能有些ROM会在OS-IMAGE后面再加些附加内容,这没有关系,-c 可以正确处理
—-编辑好的fName.ext.OS.NB和原fName.ext.PRE的合并请用命令"copy /b …+… …."处理

Weisun
2008.6.12

**************************************
2008.6.11重大更新——–srpxtool更新改名为osnbtool:
OS ROM Partition 工具 V1.1 Beta1 By Weisun > PDAclan.com
更新内容:
1、同时支持SRPX压缩和没有SRPX压缩的Part导出(包括boot、xip、imgfs和fatfs)
2、对于SRPX压缩的Part自动压缩后导入
3、对于没有SRPX压缩的Part直接导入
4、支持size变化了的Part导入
5、支持size大于源OS.NB的SRPX压缩后Part的导入(若新的size小的话源Part-size不变)
6、支持变化大小的imgfs导入

特别说明:
—-命令行和上一版本srpxtool完全相同
—-导入的PartN的size若有变化,会自动更新OS.NB结构
—-全部自动判断不需要更多运行参数
—-等于是包含了msflshtool的功能,更加入了part-size大小变化的支持

Weisun
2008.6.10

更新历史:
**************************************
SRPX工具 V1.0 Release By Weisun > PDAclan.com
更新内容:
1、新的Part长度判断算法改进,防止新的Part长度超限而覆盖OS.NB中下一个Part头部
2、-c 命令增加源文件相应Part-Size和新生成的Part-Size输出提示
3、一些细微调整

Weisun
2008.6.4

**************************************
SRPX工具 V1.0 beta3 By Weisun > PDAclan.com
更新内容:
1、优化Compress block table算法
2、-c 命令给出新PARTn在压缩前和压缩后Size
3、完善内存指针越界保护

Weisun
2008.5.31 晚

**************************************
SRPX工具 V1.0 beta2 By Weisun > PDAclan.com

修正 -c 命令在新PARTn压缩后Size大于源OS-IMAGE相应PARTn的Size后还会生成新文件的BUG

Weisun
2008.5.31
**************************************
SRPX工具 V1.0 beta By Weisun > PDAclan.com
作用说明:
1、直接从OS IMAGE中解压出所指定的SRPX压缩的PART
2、把新生成的PART未压缩文件压缩后直接导入OS IMAGE

命令行用法:
命令开关 源OS-IMAGE PART编号 输出文件
-d 从OS IMAGE解压导出PARTn.BIN
(Num一般为0-3之间,大多XIP的Num为 1)

命令开关 源OS-IMAGE PART编号 输入文件
-c 将新的NEW.BIN压缩后插入新的OS IMAGE
(会自动生成新的GalaxyII.NB0.NEW)

举例:
srpxtool.exe -d GalaxyII.NB0 1 XIP.BIN 把ASUS P535的OS-IMAGE的PART-1(xip)解压到XIP.BIN
srpxtool.exe -x GalaxyII.NB0 1 NEW.BIN 把编辑好的XIP文件NEW.BIN压缩,生成新的GalaxyII.NB0并插入新的PART-1

注:
1、目前版本不支持新的PART压缩后大于原OS-IMAGE中PART-SIZE!!
2、所有参数都是必选参数
3、-c和-d的源OS-IMAGE必须相同,在生成新的OS-IMAGE时以此为模板参考
4、需要cecompr_nt.dll库
5、依旧需要VC++2005运行库(不想安装的可以把附件vc2005dll.rar里所有文件拷入同目录即可)

Weisun
2008.5.30

相关测试说明:

—-在asusp535的rom试验没问题,一些机型的ROM也已经试验没问题,如ASUS大多机型像 525、750、526等等,还有一个叫flash.dio(好像是hp612)的也试过没问题。
—-不保证所有机型可以用,请自己试验。
—-有些非标准的或插入段落标志的ROM请自行转换为标准格式使用。

本工具为原创作品,可以自由使用和传播,但是只提供学习研究用,对使用后造成的一切后果本人不负任何责任。
如果觉得确实对您有用,转载时请尽量注明作者和出处,谢谢!

工具文件见:http://www.t2home.cn/article.asp?id=321

作者: 分类: 分类:ROM定制工具, SYS定制教学 标签: 关键词:

O2 石墨ABI格式ROM提取

2008年6月23日 没有留言

转:ioicn 由:mazingosp

O2 石墨 WM6.1 Rom的详细分解过程
前言:
入手石墨O2 刚10天,心中甚是喜欢,刷了逍遥兄和MINIER的 WM6.0 和 WM6.1 。
即使打上键盘加速补丁后还是感觉系统反应并比不上585刷WM6.1 V1.3的快
这里并不是说INTEL 416 听歌看电影和玩模拟器的速度慢,
而是指系统操作反应的延迟比585还大,我的感觉585超频到216以后
打开软件和系统的操作反应都比石墨要快很多,想象中416的U没有得到很大的发挥
就像Win2008跟Vista虽然是同一核心但Win2008打开桌面效果以后比Vista要流畅很多
因为还用过586W和现在还没有WM6.1 Rom的 I-Mate SPL,发现不同ROM的速度都有极大差别,特别是没解锁的官方 I-Mate SPL ROM,那个速度慢得连打开Coreplayer都要等6秒。苦于研究石墨ROM的同学太少,详细的编辑ROM教程更没有
所以在网上找了好多相关资料,集成此贴,希望定制石墨 Rom 的朋友越来越多
不要让石墨愧对最强SP智能手机的称号。。。
以下是WM6.1 Rom的详细分解过程,并能用在WM6.0 Rom 上

刷机危险性:
石墨用华手dodge大侠EZboot破解版直刷以后没有任何风险,即使过程断电都可以重新刷。

Rom的构成:
石墨的官方刷机软件由EZboot.EXE+Jupiter.abi+Jupiter_SPBL.abi 三部分组成
EZboot没破解前会检测待刷Rom的版本,但经过蓝大破解后可以随便刷WM6.0或6.1,这里指用破解版.
其中Jupiter.abi包括了IPL模块+RADIO模块+SPL模块和OS模块,因为石墨刷机不需要进入IPL引导的3色屏,刷机过程中断电导致IPL破坏也可以用EZboot把包含IPL模块+RADIO模块+SPL模块的Jupiter.abi刷进手机中即可

提取Jupiter.abi:
我们要提取ROM中的文件或XIP,所有的操作都建立在OS模块(OS.NB)上,而OS.NB包含在 Jupiter.abi里下面说说提取Jupiter.abi的两种方法。首先从官方下载的刷机软件 Graphite_Upgrade_Utility_V3.4.0.exe
因为Graphite_**.exe=EZboot.EXE+Jupiter.abi+Jupiter_SPBL.abi
我们可以用 ResHacker.exe 或华手朋友制作的ExtractJupiterAbi.exe来提取
(1)用ResHacker.exe 打开Graphite_Upgrade_Utility_V3.4.0.exe,在右键点击BIN“保存
BIN资源”,可以在当前目录下提取出Data_1–Data_8等8个文件,其中Data_5是Jupiter.abi,Data_7是Jupiter_SPBL.abi
(2)用ExtractJupiterAbi.exe 打开Graphite_Upgrade_Utility_V3.4.0.exe,点击“提取
Jupiter.abi”, 即可在C盘目录下生成Jupiter.abi

提取OS.nb:
Jupiter.abi的组成包括IPL.nb+SPL.nb+OS.nb+RADIO.nb
Jupiter.abi其实也相当于 .NBF格式的文件,不过还没发现能用分解.NBF格式的软件来分解Jupiter.abi。OS.nb是纯包含系统文件的ROM 我们要DUMP和提取XIP的文件都在OS.nb里,下面也有两种方法提取OS.nb
(1)用UltraEdit32或WinHex 软件打开Graphite_Up**.0.exe 或者Jupiter.Abi然后查找E9FDFF00,找到后把E9FDFF00之前的内容全部剪切掉,然后文件另存为os.nb。
重新打开os.nb,按Ctrl+G,跳转地址输入0x3bfffff(Winhex输入ALT+G,地址03bfffff)然后确定,把地址0x3bfffff之后的内容全部剪切掉,保存文件。最后检查你得到的os.nb文件的大小应该是62,914,560字节,如果不是这个大小那么肯定是你步骤2,3有错误
(2)把石墨手机连到电脑上,并安装Microsoft ActiveSync 4.5 然后运行“石墨rom备份”文件夹里的RomBackup.cmd。按照提示等待10分钟,生成的 ROMGalaxy.nb0 即为os.nb,把 ROMGalaxy.nb0 改名为os.nb为了下面的操作

提取XIP:
方法同样有三,
(1)用WinHEX打开Jupiter.abi文件,查找16进制的“FE0300EA000000000000000000000000",会有四处地方出现,把第四个作为xip的开始,然后查找“F8AC2C9DE3D42B4DBD30916ED84F31DC01”,这是其xip结束的标志。 就是说从“FE0300EA000000000000000000000000"开始,到“F8AC2C9DE3D42B4DBD30916ED84F31DC01”之前的部分,就是你要的xip内容。这部分内容另存为xip.bin。(可通过按ATL+1 ALT+2来设置起始结束地址)
(2)把os.nb放在“提取XIP”文件夹里,运行 “RomMaster -w 5 OS.NB -x -o xip.bin”
得到xip.bin。 “dumprom xip.bin -5 -d XIP” 命令把XIP提取为文件格式,
(3)运行“RomTools”文件夹里的RomTools.exe ,选择打开os.nb,然后选择“XIP(4)”>“提取XIP”即可
PS:RomTools是款极好的软件,选择打开os.nb,可以修改Page Pool 大小 ,还可以提取c720,P535,5×5,586的XIP。但提取的WM6.1模拟器XIP却无法分解,谁能告诉我WM6.1模拟器XIP的正确提取方法和分解方法,谢谢~
XIPPort.exe 把xip.bin提取为模块格式,用于移植XIP,教程参考其他Rom移植方法

DUMP 文件:
提取系统文件的方法跟提取其他机型Rom是一样的,利用"PREPARE_IMGFS OS.NB -nosplit "分解出 imgfs_raw_data.bin,然后用" VIEWIMGFS imgfs_raw_data.bin" DUMP出文件。。为了方便定制系统,我们用“石墨rom定制工具” ,把OS.NB或Jupiter.abi拖向“1.提取ROM.bat” 。
定制过程参考其他教程
PS:Jupiter.abi(看做NBF格式)能直接DUMP,得力于PREPARE_IMGFS.EXE的识别能力, 如果是其他机型的NBF或NBH格式Rom直接用“1.提取ROM.bat” DUMP出来的文件是不完整的,这里权当Jupiter.abi 比较特殊。普遍机子操作是把OS.NB拖向“1.提取ROM.bat” 分解。

合成能够刷机的Rom:
(1)如果把Jupiter.abi拖向“1.提取ROM.bat”,在“3.制作ROM.bat”这步更新Jupiter.abi后已经可以用EZboot直接刷。 把Jupiter.abi,Jupiter_SPBL.abi,EZboot.exe 放在同目录,手机插入数据线,运行EZboot按照提示刷机。
(2)如果把OS.nb拖向“1.提取ROM.bat”,必须通过“5.合成EXE刷机文件.bat”来合成包含IPL,SPL,RADIO,OS的Jupiter.abi,当然运行“5.合成EXE刷机文件.bat”后生成的 GalaxyIII.exe 相当于包含了EZBOOT+Jupiter.abi+Jupiter_SPBL.abi的官方下载的刷机软件Graphite_Upgrade_Utility_V3.4.0.exe

未知的问题:
修改XIP支持LXZ压缩方法暂且不知道,这里附带了两种压缩模式的XIP,现阶段的Rom使用LXZ压缩,相机无法使用,

IPL,SPL,RADIO 模块的提取方法也不知道,

作者: 分类: 分类:SYS定制教学 标签: 关键词:,

atom 6828改硬启时间方法

2008年6月13日 4 条留言

老大懒,我来写咯
1,winhex打开xip
先搜索
10A0E33DFEFFEB7D3EA0E3

再搜索
50A0E10160A0E17DEEA0E30101A0E3

后面的很好理解了
08=2008年
01=1月
0B=11号

作者: 分类: 分类:SYS定制教学 标签: 关键词:

如何dump 6828官方rom

2008年6月4日 没有留言

[size=10]此方法不是我的首创,感谢"数码部落"的秋天老大,是他的首创方法帮我解开了这个6828官方rom
下载
点击下载此文件
1.先取得官方rom,最新的为sp38324.exe
2.解压sp38324.exe
3.将1.01.06_rw68x8_diskimage_CHS_sign.nbf拷贝到dump 68X8文件夹下
4.用winhex打开1.01.06_rw68x8_diskimage_CHS_sign.nbf,去掉头部的 0×340 字节,去掉 尾部的 0×109 字节,去掉后另存为68×8.nbf
如下图,建议先去尾部0×109 字节
109

340

5.先运行"解密并提取xip.bat".再运行"分解ROM.cmd"

ok,搞定,现在你需要的xip.bin oem sys都有了,折腾去吧[/size]

作者: 分类: 分类:SYS定制教学 标签: 关键词:

乱写P535XIP、SYS移植步骤

2008年5月11日 1 条留言

网上一直没有P535教程,现把我移植步骤分享一下,希望对大家有帮助。移植XIP有风险,请慎重,否则刷成板砖不要怪我哦。
为了部落的发展,转载请注明源自数码部落 ,谢谢!
已移植19209XIP到猫版的6.6为例
所需工具:
1. P535开机动画修改(秋天)
2. XIPport.exe
3. M'Reloc.exe
4. Beyond Compare
5. WinHex.exe
6. Ultra Edit
7. RomStudio_V1.5_by_IMG.exe
当然还需准备一个新版本(19209)的XIP和SYS。

移植XIP步骤:
1. 打开P535开机动画修改
2. 选择要移入XIP的ROM文件
3. 选择WORK WITH XIP
4. 点UNPACK得到P535的XIP文件
5. 复制xip_raw.bin到XIPPORT所在目录
6. 运行XIPPORT.EXE
7. 点DUMP XIP.BIN解开P535的XIP
8. 点WRITE MAP和MAKE PKGS
9. 备份得到OUT目录下的所有文件
10. 解压缩19209XIP
11. 将XIPPORT.EXE和pkgcommon.dll复制到19209XIP目录下
12. 在19209XIP目录下:
 运行XIPPORT.EXE
 点DUMP XIP.BIN解开P535的XIP
 点WRITE MAP和MAKE PKGS
13. 替换文件
 删除P53XIP目录下OUT\MODULES\MSXIPKernel里的所有文件。
 将19209XIP\OUT\MODULES\MSXIPKernel目录下的所有文件复制到P53XIP的OUT\MODULES\MSXIPKernel下
 将19209XIP\OUT\FILES\ MSXIPKernel目录下的所有文件复制到P53XIP的OUTFILES\MSXIPKernel下
 将19209XIP\OUT\FILES\ MSXIPKernelLTK目录下的所有文件复制到P53XIP的OUTFILES\ MSXIPKernelLTK下
此处注意:OUT\FILES\OEMXIPKERNEL和XIPPORT\OUT\MODULES\OEMXIPKERNEL下的内容不能替换。如果你的OUT\MODULES\MSXIPKernel有这些文件(nk.exe, cecompr, ceddk, fsdspy等)也不要替换
在P535XIP的目录下:
 执行Undo操作
 执行Relocate P'操作
 执行write maps,得到新的MAP.physical.txt和MAP.txtR

14. 打开备份OUT目录下的MAP.TXT看看那行有!!!!!!!!!。(没有?那你命太好了,可以去买彩票了^_^)
 如果在first dll….和last dll之间发现有“!!!!!!”,则要参考被移植的XIP的MAP.TXT文件,用mreloc.exe对相应的模块的地址按被移植XIP的MAP.TXT文件的顺序进行修改,同时要对每个模块的imageinfo.txt文件做修改。
 运行M'Reloc.exe,点choose mudule参照旧的MAP.TXT将所有模块目录下的imageinfo.bin的e32_vbase和o32[1].o32_realaddr的值改为旧的模块下imageinfo.bine32_vbase和o32[1].o32_realaddr值。
 用Beyond Compare分别打开备份OUT\MODULES\MSXIPKernel\busenum.dll的imageinfo.txt和P535XIP\OUT\MODULES\MSXIPKernel\busenum.dll下的imageinfo.txt,将 e32_vbase: V=03FFA000和 o32[1].o32_realaddr: D=01FFF000这两个值分别替换为旧的地址。用Beyond Compare怎么替换就不用说了吧?
 做完后运行WRITE MAPS,first dll….和last dll之间的!!!!!就会消失。
15. 如果是在类似这样的地址80000000 – 80000000 L00000000 Start: first physical address的这一行到80276358 – 80276358 L00000000 End: highest physical address之间的地址出现“!!!!!!”说明新装进来的文件在调入RAM时他们的地址和其他的东西有冲突了,你必须要调他们的地址,地址重复的地址长度在这一行的LXXXXXXXX中,,查看前后行的LXXXXXXXX值,看看他们的地址长度是多少,再查找有NUL的行,它的LXXXXXXXX代表那里有相应的空的地址,如果空出的长度能装下出现“!!!!!!”的上行或下行的地址长度+“!!!!!!”行的地址长度,你要做的是将那一行的数据移到空的地方!!移动完一个数据段的数据,再做一下write maps,再重新查看MAP.TXT文件,如此重复,直到不再有“!!!!!!”出现为止!(这个太麻烦,我懒得改,听秋天的直接把造成地址冲突的hd.dll、osaxst0.dll,以及对应的txt文件给删了。^_^)
16. 至此XIP一直完毕可以BUILD XIP了。执行build xip_out.bin得到xip_out.bin,将其改名为xip_raw.bin复制到P535开机动画修改\ASUS_P535_NB0_Kitchen覆盖P535原始的xip_raw.bin。
17. 运行PACK newXIP,压缩XIP
18. 用WinHex打开xip_raw.bin.xiporg,将第一行的前半部分改为78 01 A6 00 78 01 A6 00。这个数值可以从srpx_raw.bin中得到,第一行就是。部落里的tsinghe谈到压缩后的第四行里有压缩前的文件大小,这个经常错,请手动修改。注意它是反序的!我改了到启动不了了,不改倒没事,奇怪。
19. 运行Combine NB0,刷机试试看版本是不是变了?内部版本还是老版本,别急,SYS还没有移植呢。
20. 移植SYS,用IMG的右键总管解开刚刚移植好的ROM,怎么接这就不多说了。
21. SYS移植我只移植了一下文件:
 .ROM
 MediaOS开头的除文件名里含有0409的文件
 OS
 OSFiles
 Redist
 Shell
不知对不对?请各位补充。
有人说Metadata也要移植,我移植后连接出现问题,所以没有动它。
22. 注意,由于现在出的ROM大部分把DSM和RGU删掉了,无法正常分解出OEM和SYS文件,所以没办法只能各个打开新SYS下需要移植的文件夹,将其里面的文件全部复制到刚刚解出的DUMP文件夹下覆盖同名文件。
23. 将G'Reloc.exe复制到DUMP的同级目录下
24. 将DUMP文件夹改名为SYS,运行G'Reloc.exe,G'Reloc各个数值都别动,点DOIT,等出现DONE后,再把SYS文件夹改回DUMP。
25. 生成ROM。刷机,看看版本是不是都变成19209了?

作者: 分类: 分类:SYS定制教学, XIP移植教程 标签: 关键词:,

小桥模板DIY教程(菜鸟傻瓜版)

2008年4月4日 没有留言

纯转贴。。。
非造型原创QQ:199935 ???

小桥模板DIY教程(菜鸟傻瓜版)
大家好,今天看到好多人在群里说想DIY系统,不会用小桥的模板,于是本人来来帮帮大家,希望大家喜欢有什么不对的地方大家多多包涵,呵呵本人也是菜鸟
注意,未经允许请勿转载 版权:小桥 非造型
下面言归正传开始喽
1. 下载地址:小桥DIY模板 下载 在每一个版本的发布页面瞎都会有 根据发布以后大家遇到的问题的解决方法,如果哦遇到问题请大家查阅(下面是小桥 DIY模板 0730 例)
2. 小桥模板分 OEM部分 其他部分(SYS及TOOL。。。)os.nb 这三个都要下载
3. 下载完毕后 把三个文件都解压缩 默认解压缩后 会有 三个文件夹分别为:oso0730 sys0730 oem0730
4. 为了让大家下载方便小桥把文件开让大家下载,下面开始合并文件夹,嘿嘿!!大家把文件夹弄,请把sys0730 该名为 sys
5. 把 oem0730 里面的 oem 复制到 sys目录下
6. 把 os0730 里面的os.nb 复制到 sys 目下的 rom 文件夹下(补充,现在发现有问题的软件大家按照一下操作BryhtFlash有问题,可能原来用的人少一直没有发现,请下载下面的文件解开后替换OEM\Flash_BryhtFlash下的同名文件。 点击下载此文件
PluginOnOff_GPRS Monitor有问题,请下载后覆盖到OEM目录下的同名目录。 点击下载此文件)
7. OK 文件合并完毕。下面开始DIY喽。。。别激动,好戏还在后面
8. 晕,不知道该怎么写了,,,@@¥~……&@& 找找灵感啊。。。
9. DIY 开始喽,现在打开sys文件夹,大家会看到里面有
10. 大家会看到里面有 1-BuildOS.exe 2-CreateROM.bat 3-nbhtool.exe 4-RUUWrapper.exe 这四个文件,意思就是 1234操作步骤 在开始 DIY 之前必须确认了 你已经安装了 Microsoft .NET Framework 2.0 如果没有的话 就赶紧下载安装吧,下载地址自己去找,我就不管了,清闲一下。注意:只有安装了Microsoft .NET Framework 2.0 才可以执行以下操作
11. 定制软件:首先先打开 1-BuildOS.exe 这个由于系统问题我家里的XP系统和公司的 2000系统 打开这个软件之后 里面不一样,XP 有分类2000没有,晕,,,下面发一个 2000下的截面图 里面有好多软件的选项 你想安装那个就安装那个,选择完毕后点击上面的 开始生成文件,这是会在sys里面多了一个temp的文件夹。(选择对钩之前一定要 看程序说明,因为 有的程序 是 二选一或者多选一的,如果都选择的话会提示错误 我觉得这个比较难选大家慢慢琢磨吧,我自己研究了一个多小时呢,如果出现冲突的话他下面会有冲突软件目录 大家去相应的目录去看看 然后对你的定制软件 做相应的修改,这里就不多说了)
12. 封包文件:现在执行 2-CreateROM.bat 他会自动执行不用管他,完毕之后会提示 按任意键继续,随便按一下就行了切忌不能按关机和重启,嘿嘿,,,
13. 制作文件:打开3-nbhtool.exe 下面是图解 选择上面的第二项 NB to NBH
14. 点击红色箭头 选择sys下temp里面的os_new.nb
15. 看看Device 是不是 HERM200 然后选择 Generabe NBH File 按钮
16. 然后选择 sys下面的 temp文件夹作为释放文件路径
17. 开始生成文件
18. 文件生成完毕,点击X 关闭
19. 然后在TEMP里找到RUU_signed.nbh 这个,将他复制到 SYS目录下
20. 以上文件定制完毕,准备开刷,PPC用数据线和电脑连接 用此软件连接!
21. OK 庄严的时刻到了,哈哈,开刷吧,点击4-RUUWrapper.exe嘿嘿剩下的不用我说了吧!!! 刷吧刷吧,爽啊~~~~~~~~~~
谢谢大家
2007-7-31午时
非造型原创QQ:199935

作者: 分类: 分类:SYS定制教学 标签: 关键词:,

转贴:浪痕原创简明ROM定制教程!

2008年3月18日 4 条留言

此贴转自浪痕blog,不过这贴实在是…呵。。。仅供参考..

 

发了几个ROM了,支持的人也不是很多…其实最好的ROM是什么样子的?是自己定制,适合自己的!所以说还是自己定制吧,简单的弄个教程,不会定制的可以看一看,高手就不要看了,我也只是个二把刀,不丢人了….

几点说明:
1.我的定制过程和分解过程都不一定是通用的,我实验过的WM5,WM6都基本没问题,但是分解和定制6.1的时候有的时候不可以

2.定制得到的nk.nbf是纯OS,如果你要加入开机画面等内容就自己查找相关的教程吧,不在详细说了
3.机型大全见:http://www.cccos.cn/post/107.html ,HyperCore_V1.01的机型设置可能会用到!
.
.
X.只看不顶,刷机变砖!
一.先说说OEM包吧

OEM包里面一般就是这些文件:DSM(必须有),RGU,或者还有Dll,图片之类的文件….

首先假设你新建一个OEM,文件夹叫OEM_SHIT;

1.DSM文件:

在OEM_SHIT下新建一个TXT文件,用“GUID生成器”(最后有下载)生成一个形如“1775E279-F73A-442b-B9C4-9AA20A78EE33”的字符串,复制下来,把刚才新建的TXT文件改名为“1775E279-F73A-442b-B9C4-9AA20A78EE33.dsm”,就是刚才生成的GUID加“.dsm”,注意,把“TXT“去掉!也就是要改掉扩展名!

OK,恭喜你,DSM文件完成了。

2.RGU文件:

RGU是啥?注册表呗!OME里面的软件可能必须到导入一下注册表项才能保证它正常运行,而这些注册表项就可以犯法在这个RGU里面。

创建RGU:同样新建一个TXT,把名字改成“1775E279-F73A-442b-B9C4-9AA20A78EE33.rgu”(GUID一定要和DSM一样!同样也是改扩展名!),把你要导入或者修改的注册表项粘贴到里面,保存的时候编码要选择“Unicode”.

注意:第一行一定要是“REGEDIT4”,最后一定要是空行,否则会出错!

3.注册表项和其他文件的获得:

首先,找到你要做成OEM的软件的CAB安装包,用WinCE CAB Manager打开,点选左侧“注册表”,然后“文件-导出-导出到reg…”,打开得到的reg文件,里面就是你要的注册表项了,复制到你的RGU文件里面就可以了;点选左侧“文件”,在右边列表框中的文件上面单击右键,选择“解压…”,选择“所有文件”,然后选择路径,确定就可以了,得到的文件就是OEM里面的“其他文件了”,现在就可以复制进去了!

4.OEM创建快捷方式和复制文件:

这个是由“initflashfiles.txt”文件控制的(自己新建一个就可以,注意编码“Unicode”),下面是一个例子,很容易就明白…

;============ WM5torage ============
Directory("\Windows\“开始”菜单\程序\附件"):-File("移动U盘.lnk","\Windows\WM5torage.lnk")
;============ End – WM5torage ============

目标目录—————–源文件

好了,OEM就说这么多吧,优化注册表也可以用OEM,只要一个dsm加一个rgu就OK了。
二.HyperCore_V1.01

这个工具我用的很少,一般都是用来分解ROM的,我就讲讲我怎么用的吧….

首先把里面的Core文件夹复制到C盘,把你要分解的ROM(nk.nbf)复制进“C:\Core\HyperCore\Extract\Source”

然后进入“C:\Core\HyperCore\Panel\Extract”

运行“1. DumpRom”,回车,然后DOS窗口里面会滚屏,这就是在分解ROM,完成之后关闭

运行“2. PKG Tool”,回车,出现下图:

然后输入“1”,回车,完成以后回到上图

输入“4”,回车,“N”回车,完成之后又回到上图的状态

输入“5”,回车,完成回到上图状态,然后关闭此窗口。

运行“3. DUMP XIP”,不要管他的提示,把自动打开的文件夹关闭,回车就可以了

回到“C:\Core\HyperCore\Build”,看看:

OEM,SYS,ROM(里面有XIP),是不是很不错啊….

关于HyperCore_V1.01就说这么多吧
三.定制(简明步骤)

我定制是用的Xbeta_Utilities:

把你准备好的SYS和ROM文件复制进来,不要忘记XIP放进ROM文件夹里面,运行“Xbeta_CreateROM.exe”,6次回车,会出现BuildOS对话框:

在BuildOS里面选择你要集成的软件或者组件,然后点“File”下面的开始按钮,直到窗口左下角显示“Done”,先不要关闭BuildOS!

把“G’Reloc.exe”复制进“temp”文件夹,把temp文件夹里面的“dump”文件夹改名为“sys”,运行复制进来的“G’Reloc.exe”,如图:

点击上面唯一的按钮,直到左下角显示“Done”

现在关闭“G’Reloc v1 beta”,把“temp”下面的“sys”文件夹名字改回“dump”,然后关闭BuildOS窗口,刚才的Dos窗口开始滚屏,完成后关闭,看看是不是“temp”文件夹消失,多了一个OS文件!

再运行“nb2nbf_tornado.exe”,如图:

注意标注的地方的设置,然后点击“Translate”按钮,完成就得到nk.nbf了,去刷机吧,享受一下自己的成果!

四,关于注册表
[HKEY_LOCAL_MACHINE\nls]
"DefaultACP"=dword:3a8
"DefaultOCP"=dword:3a8
"DefaultLCID"=dword:804
"SystemLCID"=dword:804
"LegacyLocaleMode"=dword:1

时间格式:
[HKEY_LOCAL_MACHINE\nls\overrides]
"LCID"=dword:804
"SSDte"="yy’-'M’-'d dddd"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\International]
"ACP"=dword:3e8
"LCID"=dword:804

0804:简体中文
[HKEY_CURRENT_USER\ControlPanel\Keybd]
"Locale"="0804"

不用说你就可以知道是什么吧…
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
"46000"="中国移动"
"46001"="中国联通"
"46002"="中国移动"

[HKEY_LOCAL_MACHINE\MUI]
"Enable"=dword:1
"SysLang"=dword:804
[HKEY_CURRENT_USER\MUI]
"CurLang"=dword:804

区域设置:中国(804)
   [HKEY_LOCAL_MACHINE\nls]
  "LegacyLocaleMode"=dword:1
  "DefaultLCID"=dword:804
  "SystemLCID"=dword:804

语言包调用:中文
   [HKEY_LOCAL_MACHINE\MUI]
  "Enable"=dword:1
  "SysLang"=dword:804

[HKEY_LOCAL_MACHINE\SOFTWARE\Apps\Westtek\MUI]
  "UseLocale"="804"

  [HKEY_CURRENT_USER\MUI]
  "CurLang"=dword:804

时区:北京
  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\International]
  "LCID"=dword:804
  "ACP"=dword:3a8

IE浏览器默认编码
  [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International]
  "Default_CodePage"=dword:3a8

中文编码:
[HKEY_CLASSES_ROOT\MIME\Database\Codepage\950]
  "BodyCharset"="big5"
  "Description"="繁体中文 (Big5)"
  "FixedWidthFont"="SC_Song"
  "Encoding"=hex:01,01,00,00
  "Level"=hex:07,07,00,00
  "ProportionalFont"="SC_Song"

[HKEY_CLASSES_ROOT\MIME\Database\Codepage\936]
  "BodyCharset"="gb2312"
  "Description"="简体中文 (GB2312)"
  "FixedWidthFont"="SC_Song"
  "Level"=hex:07,07,00,00
  "ProportionalFont"="SC_Song"

[HKEY_CLASSES_ROOT\MIME\Database\Codepage\52936]
  "BodyCharset"="hz-gb-2312"
  "Description"="简体中文 (HZ)"
  "Level"=hex:03,03,00,00
  "Family"=dword:3a8

字库,:雅黑(举例)
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FontLink\SystemLink]
  "Tahoma"="\\windows\\msyh.ttf,微软雅黑"
  "Courier New"="\\windows\\msyh.ttf,微软雅黑"
  "SC_Song"="\\windows\\msyh.ttf,微软雅黑"
  "宋体"="\\windows\\msyh.ttf,微软雅黑"

:宋体(举例)
  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FontLink\SystemLink]
  "宋体"="\\windows\\tahoma.ttf,Tahoma"
  "SC_Song"="\\windows\\tahoma.ttf,Tahoma"
  "Courier New"="\\windows\\sunfon.ac3,SC_Song"
  "Tahoma"="\\windows\\sunfon.ac3,SC_Song"

安全警告禁用
(省却了某些非核心系统DLL、exe、MUI文件修改或转换后添加数字签名和添加注册表注册的麻烦)
[HKEY_LOCAL_MACHINE\Security\Policies\Policies]
  "0000101a"=dword:00000001  

以上提到的软件的下载页面:

首先是定制软件包:Xbeta_Utilities,里面还有我加入的“G’Reloc.exe”,“NBF转NB_NBA.BAT”和“nb2nbf_tornado.exe”http://www.namipan.com/d/Utilities.rar/e4e7d9d5e1e99869c346163fdbd04aeab992222d6def2400

我分解ROM用的HyperCore_V1.01

http://www.namipan.com/d/HyperCore_V1.01.rar/45e6b211829c3b07f54182ec1e3bd58b1f55f5164fa01601

GUID生成器


http://www.namipan.com/d/GUID%e7%94%9f%e6%88%90%e5%99%a8.rar/15d18dbe9204ad4330703f9b2006661cf5021e660e440000

CAB Manager自己去口袋找吧,我的也不好用了…忘记以前怎么安装的了….

 

 

作者: 分类: 分类:SYS定制教学 标签: 关键词: