全站搜索
自定内容

文章正文
豌豆荚备份通讯录恢复案例
作者:管理员    发布于:2017-06-14 00:55:22    文字:【】【】【
摘要:客户三星手机使用豌豆荚对通讯录进行备份对手机进行了刷机操作,然后再导入通讯录时豌豆荚报错,数据无法导入!
故障文件:device_2017_06_07_22_00_07.contacts

故障现象:豌豆荚的通讯录备份文件,备份后再进行导入时失败

故障分析:先对文件进行分析,WINHEX中查看发现为ZIP格式,直接改扩展名进行解压缩发现如下图所示多个文件
经过在WINHEX查看发现为XML文件,既然是XML格式那为毛导入备份会报错?格式不对?经过用之前写的XML校验程序对比发现大体格式是正常的。由于客户只要通讯录,时间比较紧张就不在研究这方面了,直接下手进行XML提取恢复

处理过程:
原本想的很简单XML直接提取名字和电话就可以了,结果一看XML内容,发现豌豆荚把联系人属性和电话号码分开在两个不同的文件中进行保存,即上图中Countacts_0.plist和Contacts_2.plist,这两个文件中的XML子项又通过KEY的编码进行关联。最麻烦的是,由于通讯录中有各个不同国家人员的姓名,客户使用了不同国家的语言进行了标注,然后在联系人中又进行了多个备注(安卓联系人允许有多个备注),也就是说一个联系人属性在XML中会有多个子项!这对抽取XML来说是个不小的困难

通过不断调试XML提取程序,最后基本上完美提取了这两个XML文件,大约700多个联系人成功提取,如下图:
在处理的过程中,发现之所以会报错可能是和备注中不同国家语言有关系,一些特殊的字符串在XML是不允许被使用的,这会导致XML解析时出错,可能就是这个原因导致了导入失败!
脚注信息
 晋ICP备12008728号-1   客服邮箱:cpx-cym@163.com  客服QQ1:490476236   客服QQ2:908138976
51客服