咨询从.backup提取的mmssms.db及关联文件恢复短信至其他手机的方法
恢复mmssms.db短信到另一台手机的可行方案
我来分享几个经过实际验证的方法,帮你把从备份里提取的mmssms.db(以及关联的mmssms.db-wal、mmssms.db-shm文件)里的短信恢复到另一台手机上:
方法1:SQLite导出+第三方APP导入(无Root也能用)
这是最通用的方法,适合大多数没有Root权限的手机:
- 把
mmssms.db拷贝到电脑,用SQLite浏览器(比如SQLite Studio)打开文件 - 分别导出
sms和mms两张表的数据为CSV格式(注意保留表头,方便后续导入识别) - 在目标安卓手机上安装支持CSV短信导入的APP(比如「短信备份恢复助手」这类工具)
- 把导出的CSV文件传到目标手机,打开APP选择「从CSV导入」,按照提示完成导入即可
方法2:利用短信备份工具识别.db文件
很多主流短信备份工具支持直接读取mmssms.db,步骤如下:
- 在目标手机上安装「SMS Backup & Restore」这类工具(本地操作即可,无需联网)
- 找到该APP的默认备份目录(一般是手机存储的
SMSBackupRestore文件夹) - 把你的
mmssms.db重命名为工具自动生成的备份格式(比如sms-202405201234.db,可以先让工具做一次空备份,参考它的命名规则) - 打开APP,选择「恢复」选项,工具会自动识别到这个.db文件,确认后就能完成恢复
方法3:Root环境下直接替换数据库(适合同版本安卓)
如果目标手机已经Root,且和原手机安卓版本接近,直接替换数据库是最快捷的:
- 把
mmssms.db、mmssms.db-wal、mmssms.db-shm这三个文件(如果存在的话)一起拷贝到目标手机的/data/data/com.android.providers.telephony/databases/目录下 - 用文件管理器或ADB命令修改文件权限为
rw-r--r--(即644),命令示例:chmod 644 /data/data/com.android.providers.telephony/databases/mmssms.db chmod 644 /data/data/com.android.providers.telephony/databases/mmssms.db-wal chmod 644 /data/data/com.android.providers.telephony/databases/mmssms.db-shm - 重启目标手机,打开短信APP就能看到恢复的内容了
注意事项
- 一定要带上
-wal和-shm文件,这两个是SQLite的临时日志文件,缺失的话可能会导致部分短信丢失 - 不同安卓版本的
mmssms.db结构可能有差异,跨大版本(比如安卓10到安卓14)恢复时,优先用方法1或方法2,避免直接替换出现兼容性问题 - 如果导入后部分短信显示异常,可以检查CSV导出时是否遗漏了字段,或者尝试用不同的导入工具
内容的提问来源于stack exchange,提问作者Maranatha




