Windows Phone 7 短信备份工具

by shinichi_wtn 2012-05-19 10:17

历史简介

在Windows Mobile时代,有各种各样的备份短信的软件,定期备份短信已经成了一种习惯,毕竟短信一定程度上是岁月与记忆的载体。但是Windows Phone 7平台,却没有提供相应的API供开发者访问,让人很难接受,在很长的时间内,大家在探寻抽取(extract)短信的方法,在Windows Phone UserVoice(用户心声)网站上http://wpdev.uservoice.com/forums/110705-app-platform/,短信访问接口(SMS Access API)排在第一位,可见该功能对用户是必不可少的。然而,Mango的推出也没有提供相应的功能,有些失望。

没有官方的方法,只能用户们自己探索了,endeffekt最先发现了store.vol(相关帖子),不过那时还没有人能够从store.vol里提取出完整的短信信息;8个月之后Thunder_发现了CommsBackup.xml这个文件,这是Windows Phone自身备份的短信文件(明文存储),经过实验,得知WP系统会定期备份所有短信(一般是每天或者每两天,但是时间并不固定),并存放在\Application Data\Microsoft\Outlook\BackupVols\CommsBackup.xml 这个文件中。从这时开始,终于有可能将短信备份出来了。于是我开发了一个小App,自动将CommsBackup.xml取出,并解码,从而实现了短信的导出功能,由此诞生了Windows Phone下的短信备份工具SMSBackup V0.1,并第一时间在智机网做了分享,然后逐渐有了V0.2、V0.3等等(V0.3开始支持英文,并开始在xda论坛上发布)。

但是CommsBackup.xml是系统生成的,我们没法控制其生成的周期和频率,所以很多时候我们并不能得到所有短信,比如没有最近一至两天的短信。于是我打算探其根本,从store.vol入手,由于store.vol是EDB数据库,在MSDN上学习了EDB API,然后开始探索store.vol的内部结构,逐渐搞定从里面直接读取短信的方法。0.7版开始,软件有了质的变化,直接从store.vol里抽取短信,从而不再依赖于CommsBackup.xml,随时都能得到所有的短信:)

随着WP7 Root Tools 0.9的发布,更多的机器可以使用短信备份了(包括三星二代机、LG机型等),感谢Heathcliff74。

从2012年1月13日发布0.1版,到2012年5月19日发布的0.9版,软件已经基本上趋于稳定和成熟,未来在功能上不会做太大的变化,主要是性能和细节的优化。由于空闲时间有限,所以功能上不可能满足每个人的需求,但是基本的功能都已经实现,0.8版加入了备份MSN和Facebook聊天记录的功能,0.9版则增加了导出csv格式的功能,具体的版本历史可以见后文。

软件功能

  1. 自动导入store.vol里的短信/MSN和Facebook聊天记录,并分页显示,能够按照会话和发送时间两种方式排序,能够按照联系人、起始时间、关键词筛选短信
  2. 短信导出(支持导出到IsolateStorage和导出到SkyDrive,支持导出txt、xml、csv三种文件格式) 如果将短信导出到软件的IsolateStorage里面,可以通过任何一款IsolateStorage工具将该文件下载到电脑上(软件的ID为09125ea9-95de-469a-aedc-22e35389ab0a); 如果将短信导出到SkyDrive,可以自定义导出文件名并上传,然后到SkyDrive上SMS文件夹中下载即可。
  3. 消息与联系人还原,你可以在任何时候使用该软件备份系统重要的数据库store.vol与PimIndex.vol(一般在刷机之前),然后在刷机之后把他们再放回系统,即可实现还原,(该功能并不完美,仅限专业用户,教程可以参见我在智机网发布的帖子)。

兼容性说明

只有Fully-Unlock或者已获取Root权限的机器才能成功运行该软件,因为使用了Native函数,具体的兼容情况如下:

  • DFT ROM(理论上支持)
  • 所有支持WP7 Root Tools 0.9的机型,包括三星一代二代机、HTC一代机、LG(理论上支持,需要安装WP7 Root Tools 0.9并将本软件加入信任列表即可,可以到这里下载安装WP7 Root Tools)

版本历史

  • V0.9版功能改进说明:
    1、减小内存占用
    2、加速短信读取算法,速度为之前版本的近2倍
    3、增加导出CSV的选项
    4、Facebook聊天就将会显示好友名(而不是0.8版本中的ID号码)
    5、在设置页面切换备份模式(sms模式与msn模式)
  • V0.8版功能改进说明:
    1、增加读取与备份MSN消息的功能,在菜单中可以切换备份模式(sms模式与msn模式)
    2、优化短信列表的界面,采用Metro风格,与系统短信程序的界面类似
    3、改进联系人识别算法
    4、优化对WP7 Root Tools的支持
  • V0.7版功能改进说明:
    1、直接从store.vol里抽取短信,不再依赖于CommsBackup.xml
    2、对Fully-Unlock的ROM做了优化
    3、增加更多的设置选项,取消了退出确认
  • V0.6版功能改进说明:
    1、支持备份store.vol与PimIndex.vol文件,还原PimIndex.vol可以解决只还原store.vol导致无法搜索联系人的问题。
    2、增加文件操作允许的最大时长至15秒(老版本为6秒),当CommsBackup.xml和store.vol体积较大时(>10MB)出错的可能性大大降低。
  • V0.5版功能改进说明:
    1、增加在导出时应用筛选的功能(在设置中可以设置),该功能允许导出部分筛选后的短信
    2、优化设置选项,取消“保存”按钮,所有选项都会自动保存并立刻应用
    3、修复V0.4在部分情况下可能出现“Value Does not fall within the expected range”的BUG
  • V0.4版功能改进说明:
    1、与联系人紧密集成,软件会读取手机的联系人并进行号码匹配,若短信的发送号码在联系人中可以找到,则显示联系人名称,不在联系人中则显示电话号码,同时导出功能也加入联系人名称。
    2、新增短信筛选功能,可以按照联系人、起始时间与关键词对短信进行筛选,方便短信的快速过滤和搜索。
    3、新增数据库store.vol还原功能,可以在刷机后还原短信和联系人信息(仅限专业用户)
    4、修复V0.3以txt格式上传SkyDrive时,可能出现文本上传不全的BUG
    5、其他的细节改进和优化
    V0.4已知BUG:在某些情况下会出现"导入短信失败: Value Does not fall within the expected range",已经发现问题原因,将会在下一版本中修复(感谢hanf和红色名伶的反馈)
  • V0.3版功能改进说明:
    1、增加了中英双语言支持
    2、修复了V0.2版在上传SkyDrive可能出现程序自动退出的BUG
    3、其他细微的BUG修复
    v0.3已知BUG:在SkyDrive上传txt时文本可能上传不全甚至为空,已在V0.4版中修复!
  • V0.2版功能改进说明:
    1、增加了导出txt的功能,可阅读性更强,并且体积更小
    2、增加了上传SkyDrive的功能,觉得IsolateStorage下载文件不方便的童鞋可以直接上传到SkyDrive(建议短信很多但流量很少的童鞋通过Wifi上传,一般来说1000条短信导出txt在100KB左右)
    3、新增了LG机型的支持(根据机友反馈,还是不能正常工作,另外根据XDA大神指点,目前LG是没有希望了)
    4、新增备份系统短信数据库store.vol到IsolateStorage的功能
    5、修复了V0.1在某些情况下不能自动更新短信的BUG
    V0.2已知BUG:在SkyDrive上传时可能会导致程序立即退出,已在V0.3版中修复!

软件下载

SMSBackup V0.9下载地址

DBank下载地址:http://dl.dbank.com/c08aemvh98

Q&A

  1. Q:为什么我的手机不能导入短信,提示导入失败?
    A:请确保短信备份软件兼容你的手机,请查看兼容性说明
  2. Q:为什么无法部署软件?
    A:请确保短信备份软件兼容你的手机,请查看兼容性说明
  3. Q:为什么不上市场?
    A:因为使用了Native函数,M$是不允许的,即使上了市场,你的手机没有完全解锁,一样无法使用
  4. Q:将来还会持续更新吗?
    A:这要看个人的时间安排,以及软件是否有急需修复的BUG

软件截图

  

  

Comments (4) -

Henry People's Republic of China
5/8/2013 4:26:09 AM #

smsbackup  这个软件,我在导出xml格式的短信时碰到一个问题,我试验了0.6  0.8  0.9  版本,都会出现一个,“导出失败,”,hexadecimal value 0x11, is an invalid character  ”   但是导出其它格式的的时间,就不会出现错误,另外这个还可以开发一下,网上有个小软件,是把你这个软件导出的sml格式的,转换为另外一个xml格式,(但是中间不知道怎么软件的),转换过以后的文件,可以直接用360手机助手或者手机助手,直接导入安卓的手机,我想这个有些人是用得到的,你们可以开发一下,谢谢!如果可以的话,麻烦可以告诉我,我的那个错误的问题要如何解决吗,因为我也是需要xml格式的,所以导成其它格式的也不好用,谢谢!

Reply

shinichi_wtn People's Republic of China
5/8/2013 9:51:17 PM #

你好,谢谢你反馈这个问题,应该是短信内容或联系人中有XML不支持的特殊字符造成的,我修改了一下程序,你可以试试,下载地址http://dl.vmall.com/c048eksy20。 另外,360手机助手没有用过,而且没用Android手机,所以如果要把短信导到Android手机里面,你可以试试网上那个小工具~

Reply

People's Republic of China
6/29/2014 10:09:41 PM #

你好!可以寻求你的帮助么?这个软件实在不会用啊!谢谢你!

Reply

People's Republic of China
6/29/2014 10:10:23 PM #

主要问题我发在了你的邮箱里面,希望可以得到你的帮助。

Reply

Pingbacks and trackbacks (1)+

(仅用于Gavatar)

  Country flag

biuquote
  • Comment
  • Preview
Loading

About

shinichi_wtnI'm Shinichi_wtn

Software Engineering Manager at Microsoft

[More...]


Month List