我已离开 发表于 2009-6-19 14:39

z6制作刷机包教程系列之七    WinHex修改smg

我们做好了CG46.smg和CG36.smg就想用 SBF-Recalc 1.2.8.exe打包,,嘿嘿,,别急,,没有那么简单


CG43和CG52很简单,,Moto官方没有加校验 ,,但是CG46和CG36就加了,,先说 CG36.smg,,我修改了一个CG36.smg..就用 WinHex打开官方的 CG36.smg





用Alt+G ,可以打开一个对话框,,,里面 输入 1CFB7E0 ,,点击确定,,就会跳到 官方的CG36.smg的校验值处,,上面全是FFFFFFFF,,突然出现了一段乱码,,,一定有秘密

这里就是官方的校验值,现在我们需要手动把这个校验值复制到 我们自己做的CG36.smg

用WinHex打开自己做的CG36.smg,,,拖动到最结尾 ,我们发现 结尾行的行数是 01CFAAA0 (不同人做的结尾行数是不一样的)




再回到 官方的 CG36.smg 用AIt+G ,,里面输入 01CFAAA0,,截图




找到了 01CFAAA0行了,,,我们要在01CFAAA0行的下一行01CFAAB0 的开头 点击右键 ---beginning of block (意思是 从这个字节开始)




再移动到 官方的CG36.smg的结尾行01CFBFF0 ,在最后一个字节的点击右键----end of block (这个字节结束)




这个时候,,我们会看到 官方的CG36.smg冲 01CFAAB0到 01CFBFF0 都被选中了

我们在选中的字段中,,点击右键---Edit----copy block ---Normally( 也可以用快捷键的 Ctrl+C 复制)


复制好了,,我们再回到 自己的CG36.smg中.,,在最后一个字节数点击右键 ---Edit---Clipboard Data----Paste (也可以快捷键的 Ctrl+V粘贴)



会有个什么警告提示,,,,英文的看不懂,,,直接点击确定就OK了,,,我们再去看下我们的CG36.smg,也是 01CFBFF0 结尾了,,说明我们复制正确了 (跟官方的一样大小)




校验完成了,,保存,,(保存会有一些提示,,直接点击确定就OK了)


下面你有2种选择


第一种,,,比较古老的,,高手都说 修改刷机包要跟官方的一样大小,,,所以我们就用古老的方法

保存我们修改好的CG36.smg ,,我们点击右键查看一下大小 ----30,392,320 字节 ---跟官方的一样大小

这时我们修改hmg文件了

在教程的第一篇还是第二篇,,我说了 用 SBF-Recalc 1.2.8.exe 解压sbf文件会有一个头文件 hmg和一个RAMDLD.smg结尾文件

其中这个hmg就是记录各个CG的sum值和大小字节数,,,用SBF-Recalc 1.2.8.exe打包时候,,,会自动检测 各个CG的大小,,,如果你做的一个CG跟hmg文件中的记录的大小的一样的话,,,就会被认为sum值一样,,就不会checksum值,,,如果我们直接打包 刷机后,,就会出现sum值的错误,,开机就会失败

所以我们需要修改hmg里面sum值,,,,

首先第一步,,我们打开 SBF-Recalc 1.2.8.exe,,点击 OPen CG-folder 选择了放hmg文件的文件夹,,就会在 SBF-Recalc 1.2.8.exe出现各个CG的sum值


在check一行的下面列出了,,各个CG的sum值,,看下CG36的,,是 3680

我们再用 一个工具 checksum.exe 检测我们自己制作CG36.smg的sum值

点击 windows的左下角的----开始---运行--输入cmd (就会出现一个dos界面)

在里面输入路径,,比如我的checksum.exe放在 D:\\z6_CG中,,CG36.smg放在 E:\\cygwin\\home\\Administrator\\自己制作的CG36.smg


就在dos中输入 D:\\z6_CG\\checksum.exe E:\\cygwin\\home\\Administrator\\自己制作的CG36.smg
结果出来了,,截图一下



结果就是 sum值为 290C


原来的CG36的sum值为 3680
自己做的CG36是sum值 290C

用winHex打开 hmg文件,,Ctrl+AIT+F .查找 8036 (WinHex的sum值跟我们看到的是相反的,,比如sum值为 1234 ,winHex就是3412 懂了吗???)



找到了8036,,一个hmg中一般只可能有一个8036,,好了,,我们用鼠标点击到8036的8上面,,输入 0C29 ,,截个图



改好了,,OK.,,保存

我们再用 SBF-Recalc 1.2.8.exe看下 ,,截个图




是不是CG36的check值变成了 290C 表示我们成功

下面介绍第二种方法,,比较简单的



上面我们说了 如果CG36,smg的字节数跟官方的一样大,,用一定要修改hmg文件,,实在麻烦,,,假如我们的CG36.smg跟官方的不一样呢,,,用SBF-Recalc 1.2.8.exe打包的时候,,就会自动checksum值,,和修改hmg文件的sum值,,是不是很方便,,,


那么设置CG36.smg为好大呢.......有个经验,,,设置为比官方的CG36.smg少16个字节,,是可以正常开机的

用WinHex打开我们已经修改好的CG36.smg ,,鼠标移动到最后一行(也就是 01CFBFF0行) 这一行全部都是FF文件 ,我们就手动删除这一行的内容,,

在最后一行的开头 点击右键 --beginning of block 在最后一行的结尾 点击 --end of block ,,这时我们选中了16个字节,,在选中的字节上,,点击右键 ---Edit---remove ( 也可以用键盘上的 Delete ) 会有一个提示,,点击确定,,,我们就删除了最后一行的16个字节了,,保存一下

我们点击右键查看一下大小 30,392,304 字节
官方的是 30,392,320 字节
是不是刚刚少了16字节



这时你不修改 hmg文件,,SBF-Recalc 1.2.8.exe会自动帮你checksum值的,,,方便嘛,,,我的最新的6月包的CG36.smg 就只有 30,392,304 字节

CG46跟Cg36一样的方法,,,大家不会那么笨嘛,,要学会 融汇变通




下面说一个 WinHex的填充空白字节的技术

比如我们现在的CG43.smg只有 36,864 字节 ..你想把它做成50,000字节的,,怎么办呢




做一个减法 50000-36864=13136 说明我们需要填充 13136字节


用WinHex打开CG43.smg,,把鼠标移动在结尾的字节,,点击右键----Edit--Paste Zero Bytes (也用 Ctrl+0 这个0是零,是数字)


会有提示.点击 确定,,再输入 13136


点击OK ,好了,,但是这个只是填充的00字节,,截图



现在我们要把00字节变成FF字节,,用Ctrl+Ait+H ,,输入 第一行为 00 第二行为 FF ,最下面有个 Replace in block only 要打上勾 (意思是,,只在选中的字段中替换)



点击确定 ,,



替换好了,,保存,,查看一下属性 ,,,发现CG43.smg的字节数为50,000字节,,表示成功了




OK了 ,这个教程都把我整累了,,,教程也应该有个结束了,,,下个教程就讲 制作完整刷机包

特雷泽盖 发表于 2009-6-19 14:41

Re:z6制作刷机包教程系列之七  WinHex修改smg和hmg文件

大白菜 发表于 2009-6-19 14:59

Re:z6制作刷机包教程系列之七  WinHex修改smg和hmg文件

前来学习!谢谢!

麦田的守望者 发表于 2009-6-19 14:59

Re:z6制作刷机包教程系列之七  WinHex修改smg和hmg文件

学习了`~~

daopk1 发表于 2009-6-19 15:23

Re:z6制作刷机包教程系列之七  WinHex修改smg和hmg文件

首页吗???

ghxdghxd 发表于 2009-6-19 15:26

好好好限

daopk1 发表于 2009-6-19 15:48

Re:z6制作刷机包教程系列之七  WinHex修改smg和hmg文件

在来首页

daopk1 发表于 2009-6-19 15:49

Re:z6制作刷机包教程系列之七  WinHex修改smg和hmg文件

在来sh首页

huichen02 发表于 2009-6-19 16:56

Re:z6制作刷机包教程系列之七  WinHex修改smg和hmg文件

正气浩扬 发表于 2009-6-19 21:22

Re:z6制作刷机包教程系列之七  WinHex修改smg和hmg文件

支持鱼儿!
页: [1] 2 3 4
查看完整版本: z6制作刷机包教程系列之七 WinHex修改smg