iphone手機接收到通過飛信發送的短信時,號碼會顯示12520+對方手機號碼,這種短信在iphone上會被識別為獨立的會話,而不是與同一個人的普通短信在同一個會話中,通過修改系統默認的匹配模式可以實現匹配飛信前綴號碼的功能。
請注意同一個會話中如果包含了飛信短信,普通文本短信之后,可能導致iMessage短信無法使用
我們修改的最終目的是讓iphone將同一個人的飛信短信和普通短信放到同一個會話中。修改前需要以下準備工作
1. 設備需要越獄且為IOS 5.0.1系統(其它系統偏移量有差異,請根據文章后面介紹的文件結構自行計算)
2. 一個在電腦上訪問iphone上文件的文件管理工具
3. 一個十六進制編輯器(ultraEdit之類的即可)
要修改的文件是/System/Library/PrivateFrameworks/AppSupport.framework/Default.phoneformat
將此文件拷貝到電腦上,用十六進制編輯器打開,尋址到0x00002416處,將之后的三個179##改為125##
保存文件,將文件復制回iphone,覆蓋原文件。然后重啟SpringBoard
再打開信息,就會發現12520前綴的短信已經正確顯示為聯系人的名字了。
|
![]() 二維碼掃描下載 |
|||
分類:通訊管理
評分:![]() |
||||
大小:32MB 支持平臺:Android、Apple、Windows、Symbian、Windows Phone |
Default.phoneformat文件的大致結構和偏移量的計算方法:
文件開頭的4個字節代表支持的國家個數,IOS 5.0.1的這一字段為E9 00 00 00,十進制即為233。即IOS 5.0.1支持233個國家的卡號
接下來就是每個國家的信息,一條接一條,一共233條,每條信息都是12個字節,這12個字節分別代表的是
0-3:國家代碼,ASCII碼的數字
4-7:國家縮寫,ASCII碼的字母
8-11:偏移量,指向該國家號碼匹配規則等數據的起始地址
在文件的開頭部分,用肉眼就可以發現在0x000000AC處中國的信息,如下
38 36 00 00 63 6E 00 00 18 19 00 00 | 8 6 . . c n . . . . . . |
86是中國電話號碼的國家代碼
cn是中國的縮寫
而十六進制的18 19 00 00代表的是偏移量0x00001918(注意此處的順序要顛倒一下!!)
計算中國的數據區的偏移量:
第一個國家的數據區地址 = 4字節(國家個數計數器)+ 12(字節每個國家)* 233(個國家) = 0xAF0
中國的偏移量 = 0xAF0 + 0x1918 = 0x2408
然后前面就有一些亂七八糟的計數器,往后找8個字節就是前綴區了,就到了我們要修改的0x00002416了,這個數據就是這么算出來的。