返回

学习笔记 | 旧版本 QQ 聊天记录导出

想看一看旧手机上的聊天记录,没想到这么困难。

起因与结果

闲来无事,注意到了七八年前使用过的旧手机,希望查看上面曾经的 QQ 聊天记录。

然而手机十分老,QQ 版本也很老。手机上的 QQ 因版本过久无法打开,但更新到最新版也因为手机版本过低无法安装。总而言之,这个手机不可能打得开 QQ 了。

网上聊天记录导出方法有许多种,然而我这旧手机不能 ROOT,自带的备份软件备份不了 QQ,会提示权限错误。捣鼓了半天没有可行方法,可谓是山重水复疑无路。

所幸找到了这篇文章,其中提到的第四种方法,尝试过后成功导出记录。

但有必要事先说明:不清楚是我的设备的问题还是方法本身的问题,总之虽然成功导出但只有一部分,并没有达成符合预期的效果,但至少看到了以前的部分聊天记录还是颇为欣慰,毕竟也只剩下这一个办法了。

当然其实后面又想到了别的方法,可能会有更好的效果,后文会提到。

我的情况

手机 Android 版本为 4.3,内存空间寥寥无几,系统过旧无法安装新版 QQ,未解锁 OEM,无法 ROOT,可以开启开发者模式使用 adb 调试。手机上安装有远古版本 QQ,也无法使用。手机自带备份软件,但无法备份 QQ,会显示权限错误。

导出方法

工具

由于资源比较难找,这里我将导出过程中我所使用的工具打包分享,均来自于网络,不一定适合所有情况。

» QQ_recovery.zip «

原理

旧版(非 QQNT 版本)QQ 的聊天记录相关文件主要存储于

/data/data/com.tencent.mobileqq/

下的 databases/<QQ号>.dbdatabases/slowtable_<QQ号>.db 以及 files/kc,只需要获取到这三个文件我们就可以导出基本的聊天消息文字记录,更多的图片、语音等也在该目录下可导出。

获取该文件一般需要 ROOT,因此这里我们只能使用别的方式,我们可以利用 adb 的备份功能将该文件提出出来。

使用 adb 备份

首先手机开启开发者模式,允许 usb 调试,然后连接 adb。

AndroidManifest.xml 中有一个参数为 allowBackup,表示该软件是否允许使用 adb 备份。尽管我手机上已经是七八年前的版本,但该属性已设置为 false,但好在发现 QQ 更远古的版本中该属性还是 true,因此这里我们需要保留数据卸载并安装允许备份的版本。

保留数据卸载:

adb uninstall -k com.tencent.mobileqq

安装允许备份的旧版后,进行备份:

adb backup com.tencent.mobileqq

备份时需要在手机上点击同意,备份可能需要一些时间,会在当前目录下生成一个扩展名为 .ab 的备份文件。

如果备份文件只有 1kb 那就是失败了,可能是软件版本不对或 adb 与设备 Android 版本不对应。旧版 Android 不兼容高版本 adb,我这里 4.3 使用 1.0.32 版本的 adb 是可以的。

提取数据

提取出数据后,我们这里使用 android-backup-extractor.ab 中提取文件:

java -jar abe.jar unpack backup.ab backup.tar

之后直接解压即可。

导出聊天记录

这里使用的是 QQ-History-Backup 这个库。

在导出的文件夹里找出我们需要的文件之后,放入对应的文件夹内,接着按照教程使用该工具导出即可。

另一种或可行方法

在备份完之后,.ab 文件其实也可以使用 adb 将其恢复到其他设备上(例如模拟器)。

我们可以选择在新设备上将 QQ 更新到最新版尝试打开,也可以从可以 root 的新设备上更方便的直接拿到我们需要的文件。

这两种方法我都没有试过,或许效果比我更好。

附录

参考文献

  1. 安卓QQ聊天记录导出、备份完全攻略 - roadwide - 博客园

  2. GitHub - QQBackup/QQ-History-Backup: 【停更】QQ/TIM 聊天记录导出为 HTML,支持图片、语音,可 GUI 与 非 GUI 操作 (Python)

  3. GitHub - Yiyiyimu/QQ-History-Backup: QQ聊天记录备份导出,支持无密钥导出,图片导出。无需编译有GUI界面。Backup Chating History of Instant Messaging QQ.

  4. GitHub - roadwide/qqmessageoutput: 安卓QQ聊天记录导出

  5. GitHub - 117503445/qq_get_message: 2020年从安卓QQ数据库提取聊天记录

  6. 利用adb备份app的数据 - 小七闲 - 博客园

  7. ADB读取和备份安卓应用数据(无Root)_adb backup-CSDN博客

  8. GitHub - nelenkov/android-backup-extractor: Android backup extractor

版权信息

本文原载于 reincarnatey.net,遵循 CC BY-NC-SA 4.0 协议,复制请保留原文出处。

CC BY-NC-SA 4.0
最后更新于 Jun 07, 2024 19:02 CST
本博客所有内容无特殊标注均为失迹原创内容,复制请保留原文出处。
Built with Hugo
Theme Stack designed by Jimmy, mod by Korita
© Licensed Under CC BY-NC-SA 4.0