改进的更换g808 v305内置铃声的新方法

目前g808内置铃声的修改的讨论越来越热烈 , 虽然已经能够成功实现 , 但总的来说过程还是复杂一些 , 而且每次修改耗时较长(约10~20分钟) , 并且稍有差错就有可能出现无法开机等后果 , 我在第一次试验时就因为搞错地址而造成无法开机 。所以这些天我一直在研究一种更简单方便的方法 。经过几天摸索终于找到一种新的修改铃声方法 。
根据网友七彩飘虫一开始修改铃声的思路 , 及与七彩飘虫、xyzhang等网友的一些探讨所得到的启发 , 我终于完成了单独置换内置铃声的方法 , 具体思路就是找到和弦铃声文件后 , 配合floader对写入文件的要求增加16字节对应的文件头 。这样就能够将这个文件直接写进手机 , 达到替换铃声的目的 。我这样替换任一首铃声由于只改写了铃声数据 , 不需要再写入大量的数据 , 写入时间一般在几秒钟就可完成 , 而且更改铃声的灵活性更好 。七彩飘虫网友所提到的floader会增加写入代码的情况 , 我分析了铃声内部的文件头结构 , 刚好我增加部分的位置原来都是0 , 修改后不会影响到铃声 , 试验结果也证明了这一点 。下面我以一个具体的实例来说明过程 。
我以“母鸡下蛋”来代替“南斯拉夫舞曲” 。
1、用ultraedit打开“母鸡下蛋.mmf”文件 。用“HEX插入”操作在文件最开头插入16字节的数据 。
2、修改这16个字节的数据为“88 1E 2E 01 01 41 2E 01 02 00 04 00 64 00 79 22” , 这点非常重要 , 也是修改的关键 。
其中第1~4个字节是写入手机的起始地址 , 也就是内部铃声文件头开始+0C(10进制为12 , 文件名的长度) , 参考我的g808内置铃声地址可得到南斯拉夫舞曲(内部名字为neoslavonic)的地址为2e1e7c 0c=2e1e88,手机内的数据是从0x1000000开始 , 所以写入地址为0x12e1e88 , 对应这4个字节即为 88 1E 2E 01 。要替换其他铃声按相应的地址修改即可 。
第5~8个字节为结束地址 , 为写入起始地址+铃声长度 , 起始地址为刚才得到的0x012e1e88 , 母鸡下蛋的铃声长度为2279(16进制) , 所以得到结束地址为012E1E88 2279=012E4101.
第9~14个字节保持这样不要改变 。
第15~16字节为铃声文件的长度 。也即我们要写入的“母鸡下蛋”的长度:2279 。
4、这样就完成了文件的修改 , 将文件另存为“母鸡下蛋.bif” 。
5、打开floader,文件名选我们刚才做好的“母鸡下蛋.bif” 。选择write写入即可 。
完成这些步骤后 , 马上就可以开机来欣赏我们的成果了 。
总结一下我们只需要对mmf文件增加一个16字节的文件头 , 而且要确定的是1~3 , 5~7 , 15~16 , 8个字节的数据 。然后按升级步骤做就可以了 , 既简化了步骤 , 又提高了速度和可靠性 , 同时也增加了灵活性 。
原则上还是要用小铃声代替内置的大铃声 , 并且在使用内置铃声地址时要注意我给出的地址和铃声长度是指G808的V305版本 , 其他版本的手机和软件需要大家依照同样的方法去改 。
希望对大家有所帮助 , 使大家的铃声能各有各精彩 。欢迎大家探讨 , 更希望大家有好的铃声不要忘记发一个给我:lingf@netease.com!
特别感谢七彩瓢虫为大家做了那么多的贡献 , 同时也感谢xyzhang、桔子酸了等热心网友 。

    推荐阅读