“董师傅,我碰到问题了!经朋友推荐在我的iPhone上安装了iGotya来防止手机丢失,输错几次密码之后,然后发现短信全都不见了,只是显示‘信息(-1)’,新短信也无法查看,怎么才能找回我的短信啊?”
为了未雨绸缪,我安装了iPhone防盗软件iGotya,为了测试是否能够防盗,我故意输错密码,第一次不能进入手机,第二次可以进入手机, 但看不到任何APP,连设置也看不到,可以打电话,发短信。本来以为没什么,进入短信就傻了眼:我的短信全都不见了,只能在标题栏看到“信息(-1)”的 字样。我以为是被iGotya锁住的原因,锁屏后再输入正确的密码,仍然看不到短信,这下彻底没辙了。虽然我在iGotya设置了输错密码超过10次就抹 掉数据,但我可以确定只输错过最多三四次。
而且我发现,在这个状态下如果收到新短信,进入“短信”后就消失,无法保存,只会显示有未读短信,但是始终无法查看。
后来我经过一番探究,终于找到解决办法!这个问题是因为短信相关文件的属性中“所有者”被iGotya改成了root,而未获取root权限的用户就无法看到短信内容了。要解决这个问题,需要从Cydia安装iFile——一款iOS平台上极为强大的文件浏览器。
先从后台退出短信进程,再运行iFile,定位到“/var/mobile/Library/SMS”,找到sms.db-wal然后删除之 (如图)。然后将sms.db和sms.db-shm两个文件的属性中的“所有者”和“组”修改为“mobile”;访问权限中,用户设为“读取,写入, 执行”;组和全局设为“读取,写入”即可。
再把“/var/mobile/Library/SMS”文件夹下几个文件夹的属性所有者和组都从root改成mobile。最后将iFile后台退出,这时候不要打开短信!直接关机重启,你就发现久违的短信回来了。
董师傅点评:
要完美恢复短信是有一个前提,就是要求短信的数据库sms.db完好无损,如果丢失或者被覆盖,那很不幸,短信没救了。你可以看看以前在电脑上是否备份过,如果备份过,可以用iTools将以前备份的sms.db覆盖回去。