家人的安卓手机短信息因操作失误被全部删除,因为里面有非常重要的短信,问我能不能找回来。

环境:

  • 三星S6 Edge+
  • 安卓6.0

1. 安卓的短信息数据库

安卓的短信息是用SQLite数据库存储在/data/data/com.android.telephony/databases/mmssms.db中。 有兴趣的可以打开看看,需要稍微懂点数据库。

  • 安卓:RE管理器就自带SQLite查看器
  • PC:SQLite Database Browser

存放短信的表(sms表),存放彩信的表(pdu表,part表)。

2. 删除(重命名)WAL文件

WAL(预写日志)模式,当事务对数据库进行修改时,将修改后的页面存入WAL文件中,而不写回原数据库。所有连接数据的操作都必须使用WAL,然后在在数据库文件夹下生成一个后缀为-wal的文件保存操作日志。 短信息数据库的WAL文件就在/data/data/com.android.telephony/databases/mmssms.db-wal,我们要做的就是重命名(代替删除,如果该方法不适合你还可以重命名回来)为000mmssms.db-wal

2.1. 重命名方法

  • 有ROOT权限:用文件管理工具,比如RE文件管理器重命名,可能需要重启设备。
  • 无ROOT权限:有些设备暂时没有ROOT方案时,我们可以借助第三方Recovery中的文件管理来重命名。比如给手机刷入TWRP-Recovery,里面就有文件管理器。至于怎么刷,这个不同品牌手机不一样,需要你百度一下。