自己写的黑莓手机IPD编辑工具BBerIPD

黑莓手机的“桌面管理器”能把手机里的信息备份成IPD文件,也能导入IPD文件,这很方便。但在bbs.maxpda.com论坛里没有找到合适的IPD查看、编辑工具。

对我来说,能通过电脑来管理手机的“记事本”、“地址簿”,能导出手机里的“短信”内容是我最想要的,论坛里的IPDManager没办法打开仅包含这些内容的IPD文件,IPDEditor又依赖于.NET Framework 2.0,而我的电脑安装有这个Framework仍不能使用,所以我抽空研究了一下这几类信息的格式,自己写了一个BBerIPD工具,主要功能是:查看和编辑“记事本”、“地址簿”,查看“短信”内容,将选择的内容复制出来。

注意:修改后需要使用“导出IPD”功能才会生效!

先来看一下主界面:

提示一下IPD的导入和导出方法,使用“桌面管理器”,见图:

目前暂时只完成了“记事本”的查看和编辑功能,该工具导出的IPD文件全使用UTF-8编码,导入的IPD文件暂只支持UTF-8(我的8800只导出这种格式)和Unicode Big Endian(8800 4.2.1.74 Simulator导出这种格式)编码。

地址簿的格式已经分析完成,抽空再完成其查看和编辑功能,短信内容抽空再分析。

目前只在8800真机(4.5.0.55)和8800 Simulator上测试过。

2008-09-02 Update:支持地址簿的查看和编辑功能;记事本自动按“标题”排序,地址簿自动按“姓氏(LastName)+名字(FirstName)”排序;支持在现有数据的基础上“追加”新的IPD文件的数据。

Update2:支持短信的查看功能。

2008-09-19 Update:在查看和编辑窗体中可以通过“上一条”、“下一条”按钮继续查看或编辑,而不需要关闭后再打开来查看或编辑另一条。

2008-11-7 Update:地址簿支持多个E-Mail,用分号“;”分隔;增加支持Message的查看功能,可以方便查看邮件内容。

2008-12-29 Updated:修正重复点“加载”时Messages出现重复项的问题;修正有些短信的号码显示不正常的问题、内容有时出现乱码的问题。详见附件中《Readme.txt》。

2009-03-02 Updated:Messages和SMS Messages支持多选删除和导出成单独的IPD文件。

2009-03-23 Updated:修正追加后Messages和SMS Messages导出出错的问题;Messages和SMS Messages自动按时间倒序排序;增加AutoText的查看和编辑功能(需要借助Excel来编辑csv文件)。

2009-03-26 Updated:AutoText增加支持应用的语言,支持的语言有:All、Chinese、English、EnglishGB(即United Kingdom)、EnglishUS(即United States)。
受maxpda上IPDEditor.exe的启发(相关链接),给AutoText增加应用语言的支持,通过这个工具将五笔输入法的内容导出成csv文件,然后修改语言成EnglishGB(参见修改好的csv文件),导入修改后的csv文件并导出成IPD文件。给手机安装English (United Kingdom)语言,并导入最新的五笔输入法IPD文件,这样在输入五笔时切换到English (United Kingdom)输入法,在输入英文时切换到English (United States)输入法即可,解决了之前安装五笔输入法内容后输入英文超级麻烦的问题。

2009-06-25 Updated:增加“地址簿加拼音首字母”功能,从网上找到《百家姓》拼音对照表,外加自己觉得常用的一些字比如“大、小、阿、老、我”等,还加了一些遇到的在《百家姓》里没有姓氏(未包含的姓氏只有慢慢收集后再一起添加进去,本来可以使用配置文件让个人自己修改的,但考虑到这是绿色小工具,就尽可能少的依赖其它文件)。小技巧:自己常用的联系人建议首字母改成A,这样总会在地址簿的最前面找到。

2009-12-10 Updated:右击菜单增加去重复功能;地址簿增加标题、公司、职称、PIN和备注等编辑项。

2010-03-30 Updated:右击菜单增加去除电话号码前缀功能(去除+86、17951、12593等);短信增加时间字段。

2010-05-02 Updated:增加支持CSV文件的导入/导出

2010-09-25 Updated:增加功能:在浏览短信时区分是[接收]还是[发送]。

2010-09-26 Updated:莓友的需求是无度的,昨天刚把短信的[收/发]加上,今天双希望把电话号码前的+86之类的干掉,还说最好能加上号码的姓名。行,都满足你们了!不过如果短信是单独的IPD文件的话需要先导入带有通讯录的IPD才能显示姓名哦。电话号码前那个“|”别说是多余的,没有它你在Excel里打开时你的电话号码就是一科学记数x.xxE+xx. (注:如果加载IPD时短信显示在通讯录前需要重新加载一次才能匹配到收发者的姓名

2010-09-27 Updated:考虑到智能识别短信编码等有误判的问题,因此开放这个功能给使用者选择。默认情况下不检查是否是纯ASCII码(即是否是纯英文),这个的结果是纯英文会显示乱码,解决办法是钩上“检查ASCII”再加载一次,反过来也一样。

2010-10-19 Updated:右键菜单增加短信的排序方式选择:时间倒序、电话号码,常用于排序后删除不必要的短信然后导出。

2010-11-14 Updated:支持Address Book – All格式的解析,优先解析Address Book;支持去除通讯录姓名首字母。

2011-02-28 Updated:联系人添加了“类别”项,在添加类别时如果有多项要用半角逗号(,)来分隔;修正了几个小错误。

2012-01-23 Updated:通讯录增加手机2、住宅传真、昵称和网址部分,排序时如果同名还按号码再排。

安装English (United Kingdom)语言的方法:
1. 搜索ROM安装目录下的“en_GB”关键字,如图:

2. 下载CodLoader,运行并钩选右击菜单的“显示系统模块”,将上图中中间四个文件选中拖到CodLoader窗体,选中并安装。根据需要选安装第1和第5个cod文件。

小技巧:双击一条记录与右击菜单的第一个菜单功能一样;使用Shift或Ctrl配合鼠标键可以多选。

下载包:BBerIPD.zip

Tags: ,

236 Responses to “自己写的黑莓手机IPD编辑工具BBerIPD”

  1. lynlyn说道:

    lordong你好,请教一个问题,如何让软件在读取IPD文件时支持中文显示而不乱码?

  2. lordong说道:

    @lynlyn BBerIPD自动就把编码转为中文显示的,如果出现乱码可能是那个ipd使用了不一样的编码,我手头没有其它机型所以没办法处理所有编码。除非遇到这种情况时莓友能给我一份样本

  3. pAOPO说道:

    希望将拼音缩写 弄在公司栏目里面!还有有的姓名识别不出来首位字母

    • lordong说道:

      目前只加了536个姓,没办法一一找全,只有收集一些反馈然后再补上了
      另外现在很多人都不用公司这一栏,所以暂时不考虑对这些辅助栏做太多的处理。你可以考虑手工改,或者导出成csv到Excel里去改

  4. bartonchen说道:

    lordong你好,不知道能不能写对“ChCustomWordsCollection”IPD的编辑的软件呢,这个是黑莓自带输入法词库,如果能编辑的话,对增加自带输入法词库内容是非常非常方便的,或许就可以把搜狗拼音输入法的词库给复制或导入进去了,这样自带输入法就完美的完美了,只是提一个想法!不知道实现的困难程度,勿怪!

    • lordong说道:

      有不少人提到这个自定义词库的事,我没用过所以没去关心(我用AutoText的五笔),看来我有必要抽空加这个功能了

  5. 屈志国13935956664说道:

    我的黑莓手机丢了,但是光ipyou个备份,怎么能找出电话号码?

  6. 屈志国13935956664说道:

    我的黑莓手机丢了,但是有个备份,怎么能找出电话号码?

    • lordong说道:

      如果备份的是IPD文件的话你直接用这个软件浏览找到那个备份文件并点打开即可,地址簿部分可以导出成IPD或CSV文件

  7. BBER说道:

    每天都来看一下lordong有没有更新BBerIPD,能编写和修改“ChCustomWordsCollection”的软件确实有很大的诱惑力啊

    • lordong说道:

      我在8800的语言里面添加了“快捷方式”和“自定义单词表”,但导出的IPD没有“ChCustomWordsCollection”这一项,我目前还找不到这两部分保存到哪里,以什么格式存储,所以暂无法更新。

  8. BBER说道:

    我能从我的8320中提取“ChCustomWordsCollection”,如果你需要的话,我可以通过邮件发给你

    • lordong说道:

      我在8320的模拟器上试了一下也没有你说的“ChCustomWordsCollection”,很怪。
      你可以发一份到我的邮箱(博客首页上有),不过这样凭空添加一项可能不兼容,就当研究一下吧

  9. lordong说道:

    关于“ChCustomWordsCollection”,我分析了一下其结构,发现IPD里存储的是黑莓拼音输入法的字库所对应的汉字编码(或索引,未确认),至少没看到与我们常用的GB2312或GBK,甚至UTF-8、Unicode等编码有任何关联。
    比如“呵”字会有两个编码:00 49 04(输a时)和04 49 01(输入he时),所以在未获得期汉字编码规则的情况下暂不会做这方面的更新。

  10. BBER说道:

    黑莓的手机系统里面支持的文字编码包括有UTF-8.ISO-8859-1.US-ASCII.UTF-16BE.windos-1252.UTF-16LE.GB2312.windows-1250,我就知道这几个,可能还有更多吧,除去你上面说的那些,有没有可能是它们其中的某个呢?

    • lordong说道:

      我对比过它存储的编码,与GB2312等对不上号,比如我们在拼音输入法输入“a”显示的那个几字它们存储的编码是“00 49 0x”,变化的是最后一位,但又顺序又跟GB2312的编码顺序或显示的顺序对不上号,所以怀疑其拼音输入法内部对汉字又定制了一套特殊的编码,每个汉字由三个字节来指定。如果是这样,得不到其编码库是很难实现自动生成“ChCustomWordsCollection”的。

  11. BBER说道:

    唉,万恶的RIM啊!!!

  12. David Wei说道:

    能否增加导入CVS短信的功能?因为目前黑莓还没有同步短信的功能,如果可以增加的话就太好了。

    • lordong说道:

      这个不好弄,因为短信存储格式里还有一些字段没有解析清楚,你可以考虑用ipd方式存储,这样就可以合并了。

      • David Wei说道:

        可是我是Windows Mobile,怎么保存成ipd阿?

        • lordong说道:

          也对,ipd只是黑莓的特色。不过既然Windows Mobile能保存成CSV,你可以考虑用这种格式来以文件方式保存。说实在的把所有短信都导入黑莓里,既占空间找起来也不方便。

  13. wl3768说道:

    你好:
    我在用这个软件内容很好,但用下来有点问题,我的ipd可以导出联系人,怎么用这个软件时看不到呢?导出的ipd和csv或excel的文件全是空的这是为什么?
    还有就能不能加个查看通话记录和导出的功能,还有就是短信那里看不出那个是进那个是出的这个能加吗?

    • wl3768说道:

      补充:
      我是从8100导到9700里的,但8100的ipd文件删除了,现在只有9700的ipd文件了,跟这个有关吗?rom是5.0的dm是最新的

    • lordong说道:

      你选择ipd文件后点“加载”按钮看看列表里有没有内容,有说明解析成功,没有的话可能是支持rom5.0的dm格式有变化没能解析成功。目前我手头没有支持rom5.0的黑莓,所以没法测试,改天下个模拟器试试。
      你说的短信进/出区分有莓友跟我说过,抽空我加一下。通话记录这个功能平时用得少所以没加,必要的时候我会考虑加上的。

  14. 下载不成啦说道:

    麻烦给我邮箱发一个好吧?下载不到了
    cpj168@gmail.com

    • lordong说道:

      这两天没注意到空间提供商所做的修改,这个改动直接导致了所有的附件链接失效。
      现已修复,可以直接下载。

  15. seven说道:

    呵呵,多谢了,我主要用导出短信保存编辑,
    使用那个 BBERsmsmanager的时候时间是错误的。
    这个BBerIPD正好使用了,
    我想问一下,短信导出csv的时候,能不能添加一个列,表明是发出还是收到的?

  16. lzllt说道:

    您好!这个软件真是蛮好,如果在导出CSV短信时能加上收发者姓名、并且电话号码是正常显示(里面没有+号,单元格为文本格式)就真是太完美了,能否再改进下呵?谢谢!永远支持您!

  17. 黑莓粉丝说道:

    黑莓粉丝转载谢谢

  18. 阿邪说道:

    用了一段时间了,很不错的工具,感谢作者

  19. 职业流氓说道:

    我用这个软件打开N个IDP,只能看到部分IDP的电话本 这个是什么道理呢

    • lordong说道:

      难道是传说中的格式不赚容?是不是DM6.0导出的结果?或者是ROM6.0导出的?
      我手头没有相关格式的IPD,暂无法检查。

  20. 职业流氓说道:

    如果老大需要IDP样本 我可以提供,我的IDP都是用DM4.6导出的~有8800 8900 9000的样本

    • lordong说道:

      我的DM也是4.6的,导出8800一点问题都没有,ROM是4.5的。
      你如果愿意可以提供一些不含个人隐私的IPD样来发到我的邮箱(首页右上角自我介绍部分写有),测后就删除,你放心好了。

  21. bart说道:

    lordong,导入csv格式的通讯录存在丢失的情况,比如:
    1.有多个手机号码的单个联系人,只保留了一个号码。
    2.有的联系人只有邮箱联系方式,导入后消失了。
    技术问题我没有什么研究,不知道是否能改进BBerIPD的这些操作体验?谢谢。

    另外,以前用wm手机,利用91助手导出的csv通讯录BBerIPD识别不了,而从hotmail.com导出的csv格式的通讯录是可以识别的,只是有丢失的情况。

    • bart说道:

      补充:
      1.有多个手机号码的单个联系人,只保留了一个号码。———-基本上都是如此,非小概率事件。
      2.有的联系人只有邮箱联系方式,导入后消失了。—————邮箱地址不见了。

      用的是最新的9.27的版本。

    • lordong说道:

      关于从CVS文件导入请参考前面“2010-05-02 Updated”部分的说明,链接:/wp/post/687.html

  22. bart说道:

    关于通讯录添加首字母的功能:

    通讯录1-205条顺利添加首字母。超过205条,没有自动添加首字母。

    • lordong说道:

      在处理添加首字母时是没有区分条目数的,区别的可能是部分姓氏拼音我没有收集进软件,参见“2009-06-25 Updated”部分的说明。

      • bart说道:

        我表述的不是那么清楚,在添加首字母过程中,我的通讯录只有205项起作用,其他的未添加进去。

  23. bart说道:

    新功能需求:
    http://bbs.maxpda.com/viewthread.php?tid=476810&extra=&page=1
    这个是利用calendar自带的功能导入IPD文件实现农历,能否添加BBerIPD支持Calendar的编辑和导入导出?谢谢。

    • lordong说道:

      我想了一下,用IPD方式导入日历会冲抵用Google Sync同步的日历,对我来说我就不会选择这样的用法。
      我记得有人写了Google Calendar的农历脚本可以导入到Calendar里去,这样通过Google Sync同步到黑莓后应该自动就有农历了。
      综合考虑,暂时决定不花时间去解析Calendar的格式。

      • bart说道:

        google calendar 无法同步农历到黑莓的calendar,只能同步几个农历节日,这个是非常不方便的。

        看来这个还是要加上啊,\(^o^)/~

  24. Louis说道:

    多谢,软件非常好,能不能导入短信的时候真对列进行选择排序呢,这样可以有选择性的删除短信,然后再导入到手机里

  25. Louis说道:

    搞了很久也没搞定,呵呵,有没有可能把短信 导出为CSV 编辑完后,再导入呢

    • lordong说道:

      短信的格式太复杂了,没法都解析,所以只提供删除和导出功能。你如果想合并的话可以用“追加”功能把IPD文件都合并起来,再使用“去重复”功能,最后导出你想要的格式即可。

  26. Louis说道:

    辛苦楼主了,呵呵,非常感谢你的回复,其实不导出编辑也可以的,在bberipd导入的短信后,可不可以按列进行排序呢,比如按电话号码排序,然后可以批量删除,BBerSMSManager这款软件,可以排序,但无法批量删除,会报错

    • lordong说道:

      短信默认情况是按时间倒序排列的,这也是用得最多的排列。支持按电话号码排序也是可行的,不过需要修改一些代码,等有时间了再考虑吧,不错的建议。

  27. sixfox说道:

    楼主辛苦了!很好的工具!

  28. Louis说道:

    多谢楼主的回复,呵呵,每天晚上这个时候上线也是为了看一下你的回复,其实我想到的是,是否可以进行选择性排序,如像EXCEL表格那样,可以选择用什么样的列进行排序,比如可以选择按时间,按电话号或者按人名,可以进行列的选择排序,这样就多了几样选择,像表格的方式了,呵呵,楼主的这款软件,多一些功能将成为黑莓的第三方软件的又一大亮点,呵呵,再次感谢楼主的回复,辛苦了

    • bart说道:

      赞同!

      其实手机常用的功能就短信、电话(contact)、calendar这些,功能贴心的IPD编辑处理工具会是非常方便的黑莓系统工具。

    • lordong说道:

      其实写这个软件的初衷主要是方便通讯录和记事本的编辑,后面是根据需要慢慢补功能的,从Update记录可以看到更新历程。
      列表的定位主要是简单展示,所以不希望在上面花太多的功夫。其实导出成CSV文件后用Excel打开,就可以想干嘛就干嘛。当然在合适的时候可以考虑加上短信的选择排序功能。

  29. 笑眯眯的狗说道:

    我用的黑莓8800,4.5.0.174rom DM是4.2的 无论是导出还是查看短信,都没有联系人的姓名

    • lordong说道:

      那要看你导出的IPD文件有没有包含通讯录部分,如果有并排在短信之后那要重点一下“加载”按钮,因为短信里的姓名是依赖于通讯录的。
      参见文章里2010-09-26的更新说明。

  30. xtjxj说道:

    兄弟,你这个软件很好用,能否请你增加一个最重要的功能?就是把黑莓通讯录的分组信息也导出来啊,现在网上都没有一个解决方案,700个人想倒进黑莓,但是需要分几个组,要是在黑莓里面一个一个的分组都要疯了。这个功能可以实现吗?

    • lordong说道:

      这个功能估计比较麻烦,我自己都没有用过分组功能,等有空再分析看看吧。

  31. Louis说道:

    楼主辛苦了
    多谢楼主的回复,《其实我想到的是,是否可以进行选择性排序,如像EXCEL表格那样,可以选择用什么样的列进行排序,比如可以选择按时间,按电话号或者按人名,可以进行列的选择排序,这样就多了几样选择,像表格的方式了,呵呵,楼主的这款软件,多一些功能将成为黑莓的第三方软件的又一大亮点》

    上面的问题,主要是导入BBERIPD后,无法选择性排序批量删除某些特定的短信,如果导出到EXCEL 是可以批量的修改删除,但修改完了就无法再导入黑莓了,这个问题一直比较头痛。呵呵

  32. Louis说道:

    有些朋友的手机里会有两三千条短信,但有些短信又必须保留,有些短信又没有用,比如:10086的一些公共短信,如果按时间一条条的删没有效率,如果可以在bberIPD上直接排序删除那就真的是一大福音了,呵呵,导出到EXCEL是可以快速编辑和删除,只是无法再导回到黑莓了。楼主为了大家的幸福,您辛苦了,多谢,多谢

  33. bart说道:

    1.用DM6备份,到出来的备份IPD文件,address book没办法读取、单独到处也是空白的。
    2.还是强烈建议对calendar进行解析,农历啊农历,如果有办法将calendar的农历和节日加到bb的calendar中也可以,或者可以支持导入、修改ics文件也不错,\(^o^)/~。我都是拿calendar当闹钟、记事、做计划。。。中国人还是要有农历比较方便。

    • bart说道:

      还有calendar的农历循环,也很好用,更智能点。

      另:google calendar的农历好像无法导入BB的calendar中。

      • bart说道:

        googlelunarcalendar.exe可以解决 农历循环 的问题,导出ICS文件,为google calendar 所用。

  34. Louis说道:

    按电话号排序的功能其实已经非常好用了,呵呵,这样真的就可以批量选择性删除短信了,真的非常感谢楼主的辛苦,大家提出的意见楼主都非常认真的回复,这款软件一定会成为黑莓最好的第三方软件,呵呵,不断完善。再次多谢

    BBERIPD,这个窗口现在不能最大化,呵呵

  35. foxcl说道:

    关于message的排序功能有一个小问题:

    按时间倒序排列是没有问题,但是想切到“电话号码”排列时,做不到同时按时间排列。如果可以同时按时间排列,那会更方便。。希望能改进,谢谢

  36. foxcl说道:

    如果,我是说如果显示的表格的文字的字体能自定义下,那就真的是perfect了。。

  37. ifun说道:

    很棒的作品,一直在找,在这如愿,谢谢,再接再厉

  38. bart说道:

    对了,通讯录加首字母的功能,有添加功能,有没有办法加上去除首字母的功能?

    • foxcl说道:

      貌似新版本已经有这个功能了吧。可以除去联系人的前缀

      • lordong说道:

        新版没这个功能,竟然有这样的功能需求,我OUT了,抽空改改。

        • bart说道:

          吼吼,总要给人一个后悔的机会吧。

          中文版的5.0系统貌似都支持通讯录首字母查询,所以,如果有人要升级手机,就不需要首字母了。

          • foxcl说道:

            之前用的9500的OS5.0确实支持中文通讯本了。不过对于用全键盘的,觉得还是有按前缀查找的方便。。

            不过加个小功能还是不错的。

        • bart说道:

          另外:强烈建议lordong看看我上面关于calendar的留言。

          吼吼

  39. lordong说道:

    关于Calendar,我更愿意写生成Google Calendar农历脚本的工具,导入到Google Calendar后通过Google Sync同步到黑莓。功能要比googlelunarcalendar.exe强。
    这个方法可行,我在考虑开放些什么功能,比如自定义提醒之类的,是否农历、阳历都支持,是否支持CSV文件的导入导出等。

  40. asen说道:

    博主你好,新版本的DM导出的ipd,用BBerIPD加载,不能显示具体信息,只会显示Addrees Book,而不显示具体的电话号码.

  41. poison说道:

    我反复试了几个版本,都不能正常看到电话号码~同87楼~

  42. poison说道:

    问题已解决,我用的是4.6版的,8310。在备份电话号码时用AD BOOK 备份,而不是用AD BOOK—ALL 来备份,就可以用最新版的BBERIPD来打开了~请87楼的看一下,也是不是这个问题~感谢lordong!用你的软件一年多了~备份了很多东西~嘿嘿~

  43. lordong说道:

    @poison
    目前的版本确实不处理Address Book – All,而对于ROM4.6或ROM5.0,在使用任意的DM版本导出的地址簿只保留了All那一项,我在抽时间解析这个All项。

  44. poison说道:

    @lordong lordong,你的软件太小了,功能又是那么的强大,对于我备份的编辑通讯薄起到了非常大的作用,感谢!那等你解决了,我再升级我的硬件,我的硬件快支持不住了,呵呵!

  45. lordong说道:

    1114更新,支持Address Book – All的解析,增加去除通讯簿首字母功能。

  46. Aaron说道:

    Very interesting. Do you have a facebook or twitter page I can follow you on?

Leave a Reply