发到知乎竟然被删掉,我也不知道我到底违反了哪条。唉,别人的毕竟是别人的。虽然博客园也是别人的

前言

我对聊天记录的备份比较执着,也在这上面折腾过不少。碰到过不少令人头疼的麻烦,在这里分享一下经验。

关于聊天记录的备份、导出,你的手机可能是以下几种情况的一种:

  1. 手机已经ROOT
  2. 手机没有ROOT但是已经解锁OEM
  3. 手机没有ROOT也没有解锁OEM
  4. 手机原生支持带应用数据的备份软件(比如华为)

原理

安卓QQ的聊天记录储存于

data\data\com.tencent.mobileqq\databases\你的QQ.db

这个文件就是我们备份和导出的核心,只要能拿到这个文件剩下的工作就简单了。

情况1

这种情况最为简单,直接访问这个目录取出文件即可

情况2

这种情况也比较简单,因为已经解锁OEM,所以在ROOT时并不会再清除数据。那么只要在获取ROOT权限后操作就和情况1一样了

情况3

[2020.04.04更新]在QQ官方更新了聊天记录备份功能之后,可以先将数据备份到电脑,然后再把数据导入到一个root过的设备(比如模拟器),再提取db文件。

也可以用之前的方法如下。

比较难,当初我就是这种情况。网上搜了大半天也没有个结果,然后隔一段时间再搜还是没有。终于,在无数次探索失败后,集各家之所长,融会贯通搜索到的东西,总结出一套解决办法。

解决的思路是利用ADB命令行来备份整个apk和应用数据。ADB命令里有这样一个功能,但是必须是应用允许备份才可以。不幸的的是QQ现在已经把这个功能给关掉了,不过我们可以通过降级用以前版本的QQ来实现这个功能(你也可以反编译QQ把那个功能给打开,如果你愿意的话)。然而,降级安装并不是直接就能安装的。最近看到有个应用叫核心破解,好像是解决这个问题的。我们这里说另一个方法。还是利用ADB,有个命令是卸载应用的同时保留原有数据,就是用这个命令先把原来的QQ卸载掉,但是还会保存原有数据,再安装支持备份的那个版本的QQ,再利用ADB命令备份应用和应用数据。拿到应用数据后找到情况1的那个文件。

具体的操作如下

1.卸载QQ但保留数据

adb -d uninstall com.tencent.mobileqq

[2020/02/16]更新:今天我想降级安装微信翻到这篇文章发现上面的命令写错了(希望没有坑害到人)正确的命令应该是

adb uninstall [-k] <package> - remove this app package from the device ('-k' means keep the data and cache directories)

对于QQ应该是

adb uninstall -k com.tencent.mobileqq

卸载后再次安装可能还是会出现应用程序未安装的提示(反正我是这样),重启一下手机就可以了

2.安装支持备份的QQ版本

下载该版本QQ

3.备份应用及数据

adb backup com.tencent.mobileqq

另外,我提供的这个版本的QQ不仅支持ADB备份,而且还内置聊天记录导出为TXT功能。真不知道为什么后来腾讯把这个功能给删掉了。我们也可以通过降级安装的方法用这个QQ的官方导出功能。

从db文件导出聊天记录

这个网上有资料,但是比较少,感兴趣的可以搜一下。当初我折腾这个也是一波三折。我把这个功能写成了一个python脚本,可以很方便的使用了。当然你要会一点python。

roadwide/qqmessageoutput​github.com

如果觉得不错也请给个star鼓励一下啊~

情况4

利用系统自带的备份应用,备份后找到db文件,然后用上述脚本就可以导出了。

总结

说实话,我写的比较简略,没有一些基础知识可能看不懂。但是我觉得我写的是最全的,因为情况3我真的找了很久都没有找到解决办法。所以,如果你看不懂,请学习相关的知识后再来看。我这里提供的比较重要的是思路、老版本QQ和导出脚本,其他的很多东西没办法一一讲到,毕竟大家的基础都不一样。当然,也欢迎评论指正。

最后,最最重要的一点是数据无价!任何一步操作前请明白你在干什么,知道会有怎样的后果,事先请通过其他方法备份一些你觉得非常重要的聊天记录、图片等,做好万全的准备。

最后祝大家都能备份或者导出自己珍贵的聊天记录

安卓QQ聊天记录导出、备份完全攻略的更多相关文章

  1. Linux 磁带机备份完全攻略

    一.确定数据备份策略 首先必须确定在备份过程中操作哪些文件.在商业环境中,这是非常困难的一个决定,而且会产生严重的影响.如果备份了太多数据,会导致备份系统的成本过于庞大,会削减其他方面的开支.如果没有 ...

  2. 安卓APP动态调试-IDA实用攻略

    0x00 前言 随着智能手机的普及,移动APP已经贯穿到人们生活的各个领域.越来越多的人甚至已经对这些APP应用产生了依赖,包括手机QQ.游戏.导航地图.微博.微信.手机支付等等,尤其2015年春节期 ...

  3. 如何找回QQ聊天记录、语音、图片?

    多图长图预警,本教程适用于 安卓手机 认真仔细看完答案的成功几率翻倍哟! 请各位认真看答案!求您了~ 2020年/4/4日 更新 人民不会忘记,祖国不会忘记,我们不会忘记,先烈不朽. 调整答案顺序,使 ...

  4. android微信聊天记录导出到电脑【微信安卓版技巧】

    微信,对它又爱又恨!爱的是微信能替代很多手机通话短信,恨的是有些较早前的手机不能友好支持,比如ytkah之前用的i8000,挺上手的,就是没办法装微信,当时工作需要必须用微信,只好忍痛割爱买了个and ...

  5. 把QQ聊天记录插入数据库中

    最近在做毕设,其中一个环节是分析qq聊天记录,在分析之前需要先把qq聊天记录导出,然后存入数据库中,qq聊天记录导出后是文本文档,导出方式: 1.登录qq后,点击任意一个好友,查看与他的聊天记录,点击 ...

  6. QQ聊天记录分析

    今天我们用R语言来处理一下.我们会用到一下技术:. (1)正则表达式 (2)词频统计 (3)文本可视化 (4)ggplot2绘图 (5)中文分词 一.数据处理 首先我们要讲QQ聊天记录导出成txt文件 ...

  7. QQ聊天记录快速迁移

    QQ聊天记录快速迁移 在工作中大家经常会用到QQ来沟通,但是很多时候在其它设备上登录QQ就无法查看到之前的聊天记录和图片,这是因为电脑上的QQ聊天记录一般都是保存在电脑本地硬盘里,所以我们在换设备登录 ...

  8. SQL Server 备份和还原全攻略

    原文:SQL Server 备份和还原全攻略 一.知识点 完全备份: 备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件.(在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份, ...

  9. QQ聊天记录备份助手 v1.0——搜索、备份、恢复QQ聊天记录文件,重装系统必备

    项目地址 https://github.com/guoyaohua/QQBackUp 开发环境 Netbean JAVA 功能描述 自动搜索硬盘中的QQ聊天记录文件 可选择的备份QQ数据记录 还原QQ ...

随机推荐

  1. java报错:The reference to entity "characterEncoding" must end with the ';' delimiter.

    java关于报错:The reference to entity "characterEncoding" must end with the ';' delimiter. Java ...

  2. Gamma阶段第七次scrum meeting

    每日任务内容 队员 昨日完成任务 明日要完成的任务 张圆宁 #91 用户体验与优化https://github.com/rRetr0Git/rateMyCourse/issues/91(持续完成) # ...

  3. Ribbon核心组件IRule及配置指定的负载均衡算法

    Ribbon在工作时分为两步: 第一步:先选择 EurekaServer,它优先选择在同一个区域内负载较少的Server: 第二步:再根据用户指定的策略,在从Server取到的服务注册列表中选择一个地 ...

  4. 用idea如何把一个写好的项目传到GitHub上

    原文地址:https://blog.csdn.net/u010775025/article/details/79219491 一.登录到自己的GitHub上,创建一个新的仓库如下图springboot ...

  5. TeamViewer 一款远程控制软件

    TeamViewer 一款远程控制软件,可以在任何防火圈和Nat代理的后台用于远程控制的应用程序. 主要功能:桌面共享和文件传输. 使用前提:两台计算机上同时运行TeamViewer, 使用方法:如果 ...

  6. react项目中怎么使用http-proxy-middleware反向代理跨域

    第一步 安装 http-proxy-middleware npm install http-proxy-middleware 我们这里面请求用的axios,在将axios安装一下 npm instal ...

  7. PriorityQueue详解

    美人如斯!好好看文章! 前言 java中关于Queue队列的实现繁多(关于Queue可以移步至我的另一篇文章:<Queue介绍>),每种实现根据自身的特性都有相应的应用场景.这里我们就来聊 ...

  8. SQL Server返回DATETIME类型,年、月、日、时、分、秒、毫秒

    SQL Server返回DATETIME类型的年.月.日,有两种方法,如下所示: DECLARE @now DATETIME=GETDATE() --第一种方法 SELECT @now,YEAR(@n ...

  9. ABP 执行sql语句

    由于业务繁琐,用EF比较麻烦,需要用到sql语句,然后网上找了很久,找到的例子都是老版本的,新版本有先声明已经去掉,不能用了 在这里做个小记 首先注入实例 private readonly IDbCo ...

  10. C#汉字转为Unicode编码

    主要用于生成json格式时,将汉字转成Unicoude编码,防止页面乱码. protected string GetUnicode(string text) { string result = &qu ...