MTK芯片---完美的格式化方法

bluedyness

普通会员
2006-09-20
8
0
0
MTK芯片之格式化技巧篇

------向那些在盒子上坚持开源的前辈们致敬 ^_^

众所周知,MTK手机出现软件故障,格式化 FAT area 后部分机子都是能修复的!能不写当然是最好,毕竟现在市面上的机子太杂了,同一款机子都有可能有几个版本且互不通用,更不用提那些所谓的什么什么加密了!

由此又引发一个问题:格式化的时候到底应该从哪里开始格呢?

更让人郁闷的是,网上不是有一箩筐标榜着的必杀鸡(哦...貌似是必杀技 呵呵)的咚咚,为啥有些人那么背~~照着那些地址段一格就死!真是没天理阿!!!想像一下哦,光16M的字库就有好几个地址段阿,运气不好的格死再碰到个所谓的加密连写都写不回去了,还不把人给晕死?

呵呵!这段时间因为一直在做些MTK方面的程序,解密阿,NAND字库写入什么的,整天都在分析字库文件,由此有了些小发现,格式化也是其中之一,在这里就为大家做个详细教程,希望能给那些战斗在一线的维修员们一些小帮助!
首先请大家准备好一个16进制的编辑软件,我用的是010 Editor,大家可以随意!
注意:这里没有涉及到8M字库,那些就格最后一兆吧,呵呵!还有些早期的机子不适合用这种方法找!

NOR 字库:

1: 先用16进制编辑软件打开你备份的免拆或48资料,nor字库很简单,都是在文件开始的0x1000h之内,往下翻翻就可以看到了,要不然也可以直接搜索HEX字节:“00000100 00000000 00000000”,见下图,你会看见什么?0000 F000 ,0000 1000;呵呵,这个就是我们要找的格式化地址了,前面4个字节那个就是开始地址,后面的就是格式化的长度!但是我们还要转换一下,因为数值是按低位字节存放在低地址中,高位字节存放在高地址中的方式存储的,不明白为什么这么做的可以找点电脑基础类的书参考一下!

开始地址:0000 F000 =0x00F00000 长度: 0000 1000=0x00100000 这是个16MB的字库也就是格最后一兆了!
2:这个文件的格式化地址是:开始地址:0000 E000 =0x00E00000 长度: 0000 2000=0x00200000


3:这个文件的格式化地址是:开始地址:0000 E000 =0x00E00000 长度: 00E0 1F00=0x001FE000
呵呵~~ 这个地址很特别吧,不知道的肯定格死!

4:这个文件的格式化地址是:开始地址:0000 8000 =0x00800000 长度: 0000 2000=0x00200000
这个更特别哦,如果你照着这个格,一般不会不开机,但肯定会开机后不正常,因为0x00800000这个并不是FAT的真正开始地址,至于怎么判断FAT的真正开始地址由于涉及到一些很敏感的东西我这里就不说了,可行的解决方法就是如果长度是0x00200000 那么你就把开始地址设为0x00E00000,其它类推!
NAND 字库:

1:NAND字库如果我们备份的是免拆资料,那么默认都是page+spare,如果是拆机资料那么就仅仅是PAGE了!我们要做的是在全字库文件中把第一个ROM文件给找出来,那么我们就搜索HEX 字节(不是ASCII 字符串哦)“18f09fe518f09fe518f09fe518f09fe5”这个是ROM文件固定的文件头!找到它之后就简单了,也象NOR字库那样往下翻翻就看到,这里前面的几个字节变成了“FFFF 0100 0000 0000 0000 0000”

2:这个128M文件的格式化地址是:开始地址:0000 0002 =0x02000000 长度: 0000 0006=0x06000000

3:这个64M文件的格式化地址是:开始地址:0000 9001 =0x019000000 长度: 0000 7002=0x02700000


4:这个32M文件的格式化地址是:开始地址:0000 8001 =0x01800000 长度: 0000 8000=0x00800000



加一8M的

0000 6000 =0x00600000 长度: 0000 2000=0x00200000