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

前言

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

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

  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. Apollo配置中心--安装使用-docker

    官网:https://github.com/ctripcorp/apollo Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推 ...

  2. IE浏览器卡死提示是否停止运行此脚本的解决办法

    IE浏览器经常卡死,报是否停止运行此脚本,严重影响使用体验,下面小编教大家怎么解决这个问题,供大家参考! 1.启动IE浏览器,点击上方菜单栏位的工具,如下图所示 2.在工具栏位选择internet选项 ...

  3. python mysqldb批量执行语句executemany

    MySQLdb提供了两个执行语句的方法,一个是execute(),另一个是executemany() execute(sql) 可接受一条语句从而执行 executemany(templet,args ...

  4. C编程遇到的一些小细节

    1  typedef int ElemType  -->  typedef int ElemType; 此处要加分行(:),要区别  #defin a 20 此处不需要加分号:#define是预 ...

  5. Matlab数据标准化——mapstd、mapminmax

    Matlab神经网络工具箱中提供了两个自带的数据标准化处理的函数——mapstd和mapminmax,本文试图解析一下这两个函数的用法. 一.mapstd mapstd对应我们数学建模中常使用的Z-S ...

  6. 100道MySQL常见面试题总结

    原文链接:https://juejin.im/post/5d351303f265da1bd30596f9 前言 本文主要受众为开发人员,所以不涉及到MySQL的服务部署等操作,且内容较多,大家准备好耐 ...

  7. laravel hash密码生成和密码验证

    在laravel中 登录表单中的密码是用hash来生成的. 在生成密码需要用到 laravel框架中的方法(都是laravel封装好了的) bcrypt($password)方法,直接将获取到的pas ...

  8. C#条码生成及打印实例代码

    ";//条码 ; ; //打印按钮 private void button1_Click(object sender, EventArgs e) { //实例化打印对象 PrintDocum ...

  9. 解决WPF下popup不随着window一起移动的问题

    /// <summary> /// Popup帮助类,解决Popup设置StayOpen="True"时,移动窗体或者改变窗体大小时,Popup不随窗体移动的问题 // ...

  10. Python常用代码2

    用matplotlib画图时,若设置全部行输出,会得到包括图标在内的所有输出结果. plt.show() 输出全部行,参数为“all”:输出最后一行,参数为“last_expr”