背景
作为一个技术玩家,手机不ROOT真是怎么都不舒服。不ROOT没有掌控感:预装不能卸载、广告不能拦截、高级一点的应用不能安装…不能忍,于是今天又闲不下来折腾了下,结果又踩坑了。妈的,安卓手机品牌多样,真是踩坑无穷尽。这次倒是想到提前各种备份,还是栽在了短信恢复这事上。虽然现在短信已经用的不多了,有用的信息并不像以前那样多,但强迫症如我还是不恢复不舒服斯基。本篇博文主要想就锤子手机刷机root之后的短信恢复问题做一简单分享。绝对全网独家,别无他所,转载请注明出处,谢谢!
问题描述
刷机root过程略去不表,我是2.6.2系统,使用手机端kingroot获取root权限成功。在root之前使用优优刷机助手备份了各种数据。优优刷机助手备份的短信格式是”.csv”格式的,因此本篇分享的方案也仅对”.csv”格式的备份文件起作用。
在备份完成获取root成功后,本欲使用优优刷机助手继续恢复数据,怎料在恢复短信的时候提示要更改默认短信应用才行,没截图了,找了一张豌豆荚的,提示一样:
解决方案
卧槽!意想不到啊。折腾了半天都不行,后来想到,都是数据而已,如果我先给自己发几条短信,然后用手机自带的备份软件备份了,然后再用之前的备份文件替换这个临时的备份文件,再使用自带的备份软件恢复回来不就好了吗!
结果不行…查看了一下两个文档,发现”.csv”虽然在WIN下是用Excel打开,但也只是纯文本而不是二进制数据。于是乎想到,把备份的文件格式调整为和手机备份软件一致的格式不就OK了。
实施方案
对原理不感兴趣的可以直接略过该部分,直接阅读下一个部分。
这里把手机软件临时备份的文件叫做”ori.csv”,自己的备份数据叫做”new.csv”。
分别截取二者的前几行看一下:1
2
3
4
5
6
7
8
9
10
11
12### ori.csv
"address","person","date","date_sent","protocol","read","status","type","reply_path_present","subject","service_center","locked","error_code","seen","body"
"106575170001",,"1472639004199","1472639002000","0","0","-1","1","0",,"+861380057xxxx","0","0","1","【支
付宝】账户njh**@126**于08月31日18时23分在阿里巴巴(中国)有限公司成功付款1.00元"
"1065730312919757920",,"1472627502937","1472627499000","0","1","-1","1","0",,"+861380057xxxx","0","0","1","【阿里云】2016云栖大会旗舰场10月杭州启动。马云、王坚、胡晓明等阿里大佬现身与您探讨计算未来!http://tb.cn/Uu7LAUx 回td退订"
### new.csv
d_id,_id,联系人,姓名,类型,已读,时间,date,主题,呼叫中心,"短信内容"
11,9,`95188,"",收件箱,0,2016-02-26 09:34:24,`1456450464747,,,"【支付宝】贵账户njh**@126**于02月26日09时34分通过(余额)消费3.00元。详询95188"
11,11,`95188,"",收件箱,0,2016-02-26 12:26:46,`1456460806735,,,"【支付宝】贵账户njh**@126**于02月26日12时26分通过(余额)消费5.00元。详询95188"
11,13,`95188,"",收件箱,0,2016-02-26 16:16:22,`1456474582793,,,"【支付宝】eric.w…向您付款500.00元,已存入您的支付宝njh*@126.*,备注:实现网返款。详询 d.alipay.com/z"
从两个文件的格式上可以看出来,手机原生可以识别的格式中有很多默认的字段,我们可以直接赋值,备份文件中有用的字段其实只要对应的”联系人”,”date”,”短信内容”三个列的字段,并且分别对应原生格式的”address”,”date”,(“date_sent”可以使用同一个值),”body”字段。
于是乎我们只要编写一个简单的shell脚本处理一下即可:
1 |
|
运行一把,当前目录下的message.csv文件就可以用来替换原生备份文件来恢复啦。
使用方法
如果拥有Linux环境的朋友想必不用说就知道怎么运行了,鉴于大部分网友并不具有Linux环境,因此先说一下怎么在win下面使用。
- 安装Win下终端环境
点击下载安装Babun - 安装好以后打开babun
1
2
3
4
5
6
7//为方便起见,将备份资料拷贝到D盘下,并起名new.csv
//然后在D盘新建一个文本文档,将上一节的代码复制进去,并将后缀改为".sh"
//然后在babun中运行
cd D:
dos2unix.exe gen.sh
sh gen.sh
//运行完以后看看是不是生成了一个message.csv的新文件
替换以后就可以使用手机自带的备份软件恢复了。