西门子M55通讯录内部格式之彻底解剖( 二 )


9.电子邮件 :长度按实际字数计,最长51字节,ASCII码,最长50个字符,结束符为00,无该项时长度为1即只含结束符 。
10.电子邮件2:长度按实际字数计,最长51字节,ASCII码,最长50个字符,结束符为00,无该项时长度为1即只含结束符 。
11.网址 :长度按实际字数计,最长65字节,ASCII码,最长64个字符,结束符为00,无该项时长度为1即只含结束符 。
12.邮政编码 :长度按实际字数计,最长9字节,ASCII码,最长8个字符,结束符为00,无该项时长度为1即只含结束符 。
13.私人电话 :长度按实际电话位数计,最长21字节,BCD码(即一个字节可以记录两位号码),号码最长40位,奇数位电话以十六进制数F结束,偶数为FF 。
如若电话为01012345678,则记为10 10 32 54 76 F8,如电话为0291234567,则记为20 19 32 54 76 FF 。
14.公司电话 :长度按实际电话位数计,最长21字节,BCD码,号码最长40位,奇数位电话以十六进制数F结束,偶数为FF 。
15.移动电话 :长度按实际电话位数计,最长21字节,BCD码,号码最长40位,奇数位电话以十六进制数F结束,偶数为FF 。
16.传真 :长度按实际电话位数计,最长21字节,BCD码,号码最长40位,奇数位电话以十六进制数F结束,偶数为FF 。
17.传真2:长度按实际电话位数计,最长21字节,BCD码,号码最长40位,奇数位电话以十六进制数F结束,偶数为FF 。
18.私电标志 :固定1字节,FF为没有私人电话,81为有 。
19.公电标志 :固定1字节,FF为没有公司电话,81为有 。
20.移电标志 :固定1字节,FF为没有移动电话,81为有 。
21.传真标志 :固定1字节,FF为没有传真,81为有 。
22.传真2标志:固定1字节,FF为没有传真2,81为有 。
23.修改时间 :固定16字节,ASCII码,格式为年月日8字节 ’T’ 时分秒6字节,结束符为00;如20030801T195803,代表该记录是在2003/08/01的19:58:03做的最后修改 。
24.内部标识 :固定2字节,二进制码,每条通讯录都不一样 。
25.重要记事地址:固定4字节,二进制码,当创建了生日提醒时,则记录重要记事的入口地址,没有生日提醒则为00 00 00 00 。
26.生日 :固定6字节,正整数表示,日(2字节)月(2字节)年(2字节);如生日为1976/11/01,则记录为01 00 0B 00 B8 07 。
27.备忘提示 :固定1字节,01表示生日备忘提示打开,00表示关闭 。
28.语音拨号标记:固定1字节,二进制第1位代表私电是否有语音拨号,为1代表有,0代表没有;依次第2位代表公电,第3位代表移动电话,第4位代表传真,第5位代表传真2;如该条目的私电和移动电话有语音拨号记录,则该字段为05;
29.检索拼音 :最长7字节,ASCII码,取姓名第一个字的拼音,最长长度为6,结束符为00;没有则为1个字节00;如若名字为张三,则这里存放zhang的ASCII码,为7A 68 61 6E 67 00 00 。
若不计来电图片路径,总长最长为635个字节内,若考虑来电图片路径则每条记录的总长不应该超过1024个字节 。
三、M55通讯录索引文件格式(7f08.adr)
7f08.adr由每条通讯录记录的索引构成,无其它内容 。
索引:固定4字节,记录通讯录条目在5f08.adr中的偏移地址,每一个条目的格式为ww xx yy zz 。
代表该条目在5f08.adr记录文件中的偏移地址为zzyyxxww 。最高位有特殊作用,即当最高位为1时表示该记录已经删除 。
四、越来越胖的通讯录
当对手机的通讯录进行删除时,手机只是简单的把7f08.adr中该条目的最高为置为1,然后把5f08.adr对应地址空间全写为DD,头一字节写为EE,表示此空间无效 。
当对手机的通讯录进行编辑时,如果存储新编辑的条目需要的空间大于原来的空间时,手机是先把原记录删除(操作同上),然后在5f08.adr最后创建新的记录 。

推荐阅读