新手必读:补丁基础教程

补丁基础教程
可能是 2128的坛子起步比较晚的缘故,现在有很多机油对补丁这个东西觉得很难搞明白,特别是一些需要自己diy的补丁,看到那些代码就晕了(我刚开始也是这样的^_^那个晕哦…) 。其实想把每个补丁的意思搞明白很简单,应用补丁更是简单,所以写了这篇文章送给小2坛子上的所有机油,2128也好,3118也好,A55也好,不管你用的什么机器,不会用补丁的,不理解补丁原理的,耐心看下去吧 。
先说刷补丁的工具,是V_klay 。但是由于V_klay的用法以前的机油已经讲过很多次了,教程也有好几篇,我在这里也不打算再费劲去写他,大家可以看看相关的文章,这里推荐RainMoon的《 详解V-Klay》 这篇,已经详细得不能再详细了 。
为了完全迎合新人的需要,在这篇文章里我尽量甩掉生涩的专业词汇,抛开复杂的汇编程序,只讲最基本的原理和应用 。老鸟请不要笑哦 ^_^ 这里面也有我这半年来的成长过程中的真实体会和慢慢摸爬滚打积累的一些经验,希望对大家有用 。
第一节补丁的基础知识
我跟周围的人说到“补丁”的这个词的时候,他们大多数的反映是“补丁是什么?有什么用??手机也要打补丁么?”,其实在这个论坛上怀有这个疑问的应该也有吧,那我们先来说一下什么是补丁 。
很难给补丁下一个完整的定义,什么是补丁?我想:
改善手机功能,使我们的爱机能够更好的为我们服务的代码段就可以称之为“补丁” 。
可能有的人会问,那些代码是表示什么意思呢?怎么使用这些呢?这个就是对 V_klay的格式搞不清楚了,我们先从一个简单的例子来讲解一些相关的知识 。
例 1:2128的#键快捷方式的修改
说明: #键加右软键由“读小区广播”到“未接来电”
4a77f0:7502 a400;字串ID
这个可以说是一个标准的补丁,先来说一说他的结构:
例如在这个补丁中的第二行是 4a7c50 : DAc110cfDAcaf49d ;函数 ,这一行的结构 分为以下四个部分:
①: 4a7c50 :要写入补丁的地址,说明补丁要修改的地方是在手机内存的 4a7c50这个位置,相当于手机内存单元的门牌号码,以冒号结束,这是固定的格式 。
②: DAc110cf旧数据,相当于以前在 4a7c50这个屋里住的良好市民 。
③: DAcaf49d新数据,相当于把 dac110cf赶出家门自己住进去的恐怖分子 。^_^
④:大家一定注意到了补丁代码的后面常常跟有文字,这些也是补丁所必须的么?当然不是! ";"(英文的分号)后面是注释的内容,是为了说明补丁的作用,对补丁的功能是没有影响的 。
再来解释一下这个补丁的功能是如何实现的 :这个补丁的意思是要实现把待机时的 #键的功能由原来的“读小区广播”变成“未接来电” 。
大家可能注意到了,在每个功能函数前都有 DA这两个字母,他的意思就是call,意思是叫他后面跟的这个地址上的函数出来工作 。
所谓函数入口地址,也就是 c110cf和caf49d,也是手机内存里的门牌号码,分别住的是实现“读小区广播”和“未接来电”这个功能的程序模块 。为什么是的,我们不管它,好用就行 。
当 V_klay执行完“4a7c50:dac110cf daCAF49d”这一句之后,我们手机上的#键的功能就已经变成“未接来电”了,但是当你按下#键,你会发现在右软键上的还是 “读 CB”这几个字 。所以需要找到这几个字住的地方,把他们赶出去,换上“未接来电”这几个字住进去 。
在这个补丁里: 7502表示的就是在屏幕上显示“ 读 CB ”这几个字,而 4a77f0就是“ 读 CB” 在手机内存里的地址,a400则表示恐怖分子啦 ^_^
这个补丁可以按自己的需要定制,只需要你把新数据的函数入口地址和字串 ID换成你需要的功能,相关的函数地址和字串可以看“2128补丁汇总” 。比如下面这个就是把#键换成”转移设定” 。

推荐阅读