通俗一点说就像这样,还是用书的目录为例
第一章 ------------- 1
第一节 ------------- 1
第二节 ------------- 15
.
如果我们把目录改成这样
第一章 ------------- 1
第一节 ------------- 15
第二节 ------------- 15
当我们按照第一节标识的页码去找的时候,找到的是第二节,而不是第一节,表现在手机里面的现象就是,当你选中第一首歌的时候,播放的是第二首歌.
好了,原理就是这样,如何去改呢,听我慢慢讲.
改书的目录我们知道要改页码,但是要改bin的指针,我们要改哪里呢?
bin里面的指针都存放在一些固定的位置.
第一首歌的指针在1d1994,我首先要找到这个位置,看看里面写的是什么,Alt G 写上地址0x1d1994,我们可以看到,这里写着的是00 00 63 00,因为指针存储的时候是从低位到高位存,所以要把这段数据翻过来看,也就是00 63 00 00
也就是第一首歌的开始位置630000,好了,我们再往后看B7 03 63 00,也就是第二首歌的开始位置6303B7,往后都是铃声开始的地址.我们可以修改这些指针,指向不同的位置,就可以简单的改变铃声了,我们把1d1994的数据改成B7 03 63 00,这样第一首歌就指向第二首歌的位置了,我们还可以用这样的方法改其他铃声,但是这样改出来的铃声还是原有bin里面的铃声,没有新的东西.
替换铃声的工具我只用过MMFMan,我就用这个工具来替换铃声,给大家讲讲吧,如果熟悉了bin的结构,直接做音乐盒就可以了,不用这些替换工具也可以.
用MMFMan打开xb03原版bin,找一首想要替换的歌曲,新的歌曲要小于你打算替换的歌曲,我用49.mmf吧,就是<<月亮惹的祸>>,替换新歌曲,保存,这时候用这个新bin刷机就会听到新的铃声了,但是歌曲名还没有改.
歌曲名在bin里面也是像mmf铃声一样,按照字节流来存放的,有固定的地址,通过指针可以调用,我们可以直接替换原来位置的文字来改歌名,也可以在空位置写上新的名字,然后改这个歌名的指针,把它指向你插入歌名的位置.
我先来说说第一中方法,文字在bin里面是用UTF-8格式来存储的,不能直接看到文字,都是乱码,怎么找呢,我们可以把中文的歌名转成UTF-8字节流,然后查这个字节流的位置.
比如我们把<<月亮惹的祸>>转成UTF-8格式就是E6 9C 88 E4 BA AE E6 83 B9 E7 9A 84 E7 A5 B8,我们在ultraedit里面打开bin文件,查找这段代码,会在4FBBD1和504EC2的位置找到它,为什么会有两个呢,一个是用来选铃声的,一个是在电话本里面选铃声的,其实一个就够了,两次调用的时候都指向这里就可以,为什么写两次,不明白,浪费!!
好了,可以动手改了,把你要写的文字转成UTF-8格式,一共可以写15个字节,也就是5个汉字,如果要是写多了,后面的数据就会往后错,地址就乱了,不足5个字,可以用00补足,注意要写的是16进制代码,而不是中文.
比如我要写痴心绝对,转成UTF-8就是E7 97 B4 E5 BF 83 E7 BB 9D E5 AF B9这是4个汉字,后面还要用00 00 00补足空位,来保持文件的完整性.
也就是用E7 97 B4 E5 BF 83 E7 BB 9D E5 AF B9 00 00 00来替换掉原来的E6 9C 88 E4 BA AE E6 83 B9 E7 9A 84 E7 A5 B84FBBD1和504EC2的地方都要修改!
好了替换文字的第一中方法讲完了,我再讲讲第二种方法,如果你像替换的铃声或文字比较长,原来的位置写不开,就可以用这第二种方法.
打开xb03原版bin,到地址630000,我们可以看到,在它前面有很多FF FF FF ....组成的数据,这些是没有用到的空间,从607eb0到630000都是没有用到的,可以随便用!
为了计算方便,还是找一个整数地址比较方便,我们从610000开始.
如果我们想加入一个64K的单曲,就可以从610000开始写,打开一个单曲bin,全部复制,然后回到原版bin,用鼠标选中610000到620000的数据,这正好是64K,把拷贝好的数据替换进去.
推荐阅读
- EG890B的终极DIY全过程
- DIY C550音频数据线
- 真人铃声DIY
- 自己DIY索爱K506C的MP3铃声!
- 用Netscape 7.0浏览器寻找DIY机素材
- DIY个性书法艺术待机图
- win10磁盘碎片整理教程
- G900版本升级DIY之经验谈
- DIY565挂绳方法共享
- QPST在刷机中的应用---“小C” DIY之一