手动(重新)加密WhatsApp备份文件解决聊天记录转移问题
解决Root后WhatsApp无法备份及聊天记录迁移问题
我之前刷自定义ROM并Root后也碰到过WhatsApp官方备份失效的情况,好在你已经拿到了关键资源——未加密的msgstore.db和旧备份,咱们可以通过手动迁移的方式把聊天记录转到新手机上,步骤如下:
先理清楚手头的资源
你现在有两个核心文件:- 几个月前的旧加密备份(
msgstore.db.crypt12):这是官方备份生成的加密文件,一般存在旧手机内部存储的WhatsApp/Databases目录下 - 当前未加密的
msgstore.db:通过Root权限从旧手机/data/data/com.whatsapp/databases/提取的最新聊天记录,这个是最有价值的,包含你最近的所有对话
- 几个月前的旧加密备份(
选择迁移方式(二选一)
直接迁移最新记录(推荐)
如果你只需要保留最新的聊天记录,完全可以跳过旧备份,直接用未加密的msgstore.db操作:- 新手机上先安装WhatsApp,完成语言选择、手机号验证到登录前的步骤,然后完全退出应用(不要后台挂着)
- 用Root文件管理器或者ADB命令(开启USB调试后),把旧手机的
msgstore.db复制到新手机的/data/data/com.whatsapp/databases/目录下 - 修改文件权限:把
msgstore.db的权限改成和目录下其他数据库文件一致(通常是rw-rw-rw-,或者对应WhatsApp的用户权限u0_aXX) - 重新打开WhatsApp,它会自动识别并加载本地的聊天记录
合并新旧记录(进阶操作)
如果你想同时保留旧备份里的历史对话,需要用SQLite工具(比如电脑端的SQLite Browser)手动合并:- 把旧加密备份
msgstore.db.crypt12解密(输入你的备份密码即可通过专用工具解密),得到未加密的旧msgstore.db - 用SQLite Browser分别打开新旧两个
msgstore.db,重点合并messages表数据(注意按timestamp字段排序,避免重复覆盖) - 合并完成后,把最终的
msgstore.db按照上面直接迁移的步骤放到新手机对应目录
- 把旧加密备份
关键注意事项
- 新旧手机必须使用同一个WhatsApp账号,否则无法加载本地数据库
- 操作前一定要备份新手机上的现有WhatsApp数据,避免意外丢失
- 如果新手机没有Root,可以通过开启USB调试模式,用ADB命令推送文件到对应目录(命令示例:
adb push msgstore.db /data/data/com.whatsapp/databases/)
内容的提问来源于stack exchange,提问作者Syntic
相关产品推荐
相关产品推荐

