新手必讀:補丁基礎教程

補丁基礎教程
可能是 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補丁匯總” 。比如下面這個就是把#鍵換成”轉移設定” 。

推薦閱讀