分享
 
 
 

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

王朝other·作者佚名  2008-12-27
窄屏简体版  字體: |||超大  

本人通过对M55通讯录的文件格式做详细的“解剖”,彻底分析出了通讯录的内部格式构成,这样我们就可以对通讯录进行优化了,比如减肥、拼音查询优化等等,这些都是用官方软件所无法办到的。

本文可以供西门子的爱好者参考,当然对懂得软件编程的开发人员来说,我想应该是目前国内首次公开的关于M55宝贵的技术资料了,不知西门子会不会找我算账……,^_^

本文是针对M55通讯录做的研究,但同样适合于西门子55系列的其他手机,如S57/SL55。

一、综述

M55的通讯录是由三个文件组成的,放在动态内存的Address book目录下,这个目录是隐藏的,所以通过手机的文件管理器是看不到的,但通过数据线借助电脑,用DES软件可以清楚的看到这个隐藏目录以及这个目录里的四个文件,也是隐藏的。

这个四个文件为别为5f08.adr, 7f08.adr, 9f08.adr和.lock文件,有别于45系列(6618/3618/6688)通讯录的5f02.adr, 7f02.adr, 9f02.adr,因为55系列(s57/sl55/m55)手机的通讯录作了许多改进和升级。

其中5f08.adr是用来存放每一条通讯录的具体内容的,按条逐次存放。我称之为记录文件。

7f08.adr里存放的是每一条通讯录在5f08.adr文件中的地址,便于检索。我称之为索引文件。

9f08.adr是由手机动态生成的,事实上备份通讯录只要拷贝前两个文件就可以了。

.lock文件固定为0字节,对于我们研究和改进通讯录没有什么关系,不用管它。

二、M55通讯薄记录文件格式(5f08.adr)

5f08.adr由文件头和其后的通讯录记录构成:

(一)、文件头: 68字节;

2字节:代表记录头中包含字段的数目,一般为29个字段,即总为1D 00;

2字节:代表记录(电话)条目个数,比如若通讯录中有18条记录,则位12 00;

剩余64字节总是:

00 00 00 00 01 00 13 01 93 01 13 01 93 02 13 01

13 01 13 08 93 00 9A 01 9A 01 0A 02 4A 00 A9 00

A9 00 A9 00 A9 00 A9 00 08 00 08 00 08 00 08 00

08 00 82 00 14 00 24 00 35 00 08 00 08 00 3A 00

(二)、记录:

每一条记录都是由以下30个字段构成,其中的记录头记录剩余29个字段的长度。

0.记 录 头:58字节,表示每条记录各字段占空间的字节长度,用2个字节表示,依次为:

姓、名、公司、街道、城市、国家、来电图片、备用(包括群组,名称前6字)、电子邮件、电子邮件2、网址、邮政编码、私人电话、公司电话、移动电话、传真、传真 2、五个电话存在标志、修改时间、内部识别号、生日重要记事地址、生日、备忘提示标志、语音拨号标记、检索拼音等29项。共占用58个字节;

1.姓 :在中国固定为2字节,没有使用这个字段,总为00 00。

2.名 字 :长度按实际字数计,最长50字节,UNICODE16码(即不论是汉字还是英文,每个字都占两个字节),最长为24个字,结束符为00 00。

3.公司名称 :长度按实际字数计,最长34字节,UNICODE16码,最长为16个汉字,结束符为00 00。

4.街 道 :长度按实际字数计,最长82字节,UNICODE16码,最长为40个汉字,结束符为00 00。

5.城 市 :长度按实际字数计,最长34字节,UNICODE16码,最长为16个汉字,结束符为00 00。

6.国 家 :长度按实际字数计,最长34字节,UNICODE16码,最长为16个汉字,结束符为00 00。

7.来电图片 :存放来电图片在动态内存中的路径,如A:\Pictures\Me.JPG,长度按实际字数计,长度几乎没有限制,UNICODE16码,结束符为00 00。

8.备 用 :固定18字节,由群组类型和重复信息组成。

其中群组类型占头2字节,30为名片、31为家人、32为朋友、33为同事、34为VIP、35为休闲玩伴、36为秘密好友、37为生意伙伴、38为物件接收、39为未设定群组,结束符为00。

然后是重复信息16字节,最多重复名字中的6个汉字,名字不足6个字的用00补足,最后4个字节总为00 00 00 00。

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最后创建新的记录。

如果以后添加新的条目则曾经被标记为DD的空间也不会在被利用了,只会在5f08.adr最后继续添加新条目,这个限制是由Flash这种特殊的存储介质限定的。

因此,如果你对你的通讯录反复修改的话,5f08.adr文件内部会出现许多不能被再利用的空间(内部碎片),文件就会变的越来越“胖”。

五、笨拙的拼音检索

M55的通讯录如果按拼音排序的话,可以通过输入拼音字母来检索通讯录条目,这个设计很好,但西门子的软件人员没有把它做的更好,检索拼音只用了人名的第一个字“姓”的拼音来做检索,这样同姓的就会有大量的重复。如果能按人名的每个字的第一个拼音字母检索就好了。

六、软件预告

关于通讯录“减肥”的和拼音检索优化的软件我已经编的差不多了,在我的手机上已经实现了,如要查找刘海涛,只需输入lht,就可直接定位,我的通讯录有150来条,这种拼音检索几乎没有重复的,效率很高!

但还有一些东西要优化,估计最后的版本会在一个星期内就推出的。届时我还会写一个专题来讨论,并无偿给蝎友们提供这个软件的使用权。欢迎大家使用并评测!敬请期待……

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有