iOS 5.0.1系统下自动匹配中国移动飞信12520前缀

iOS 5.0.1系统下自动匹配中国移动飞信12520前缀

2012/2/27 9:15:18来源:www.pc6.com作者:lff我要评论(0)

  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前缀的短信已经正确显示为联系人的名字了。

  -------------------------------------------------------------------------------------------------

  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了,这个数据就是这么算出来的。

阅读本文后您有什么感想? 已有 人给出评价!

  • 0 囧
      囧
  • 0 恶心
      恶心
  • 0 期待
      期待
  • 0
      难过
  • 0 不错
      不错
  • 0 关注
      关注
  • 最新评论
  • 热门评论
共有评论(0)条 查看全部评论
高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲

注:您的评论需要经过审核才会显示出来