zoukankan      html  css  js  c++  java
  • 安卓QQ聊天记录导出、备份完全攻略

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

    前言

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

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

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

    原理

    安卓QQ的聊天记录储存于

    datadatacom.tencent.mobileqqdatabases你的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和导出脚本,其他的很多东西没办法一一讲到,毕竟大家的基础都不一样。当然,也欢迎评论指正。

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

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

  • 相关阅读:
    [Linked List]Convert Sorted List to Binary Search Tree
    [Linked List]Reorder List
    [Linked List]Insertion Sort List
    解剖Nginx·模块开发篇(4)模块开发中的命名规则和模块加载与运行流程
    解剖Nginx·模块开发篇(3)ngx_http_hello_world_module 模块的基本函数实现
    解剖Nginx·模块开发篇(2)ngx_http_hello_world_module 模块基本结构定义
    解剖Nginx·模块开发篇(1)跑起你的 Hello World 模块!
    Nginx 源码完全注释(11)ngx_spinlock
    Nginx 源码完全注释(10)ngx_radix_tree
    Nginx源码完全注释(9)nginx.c: ngx_get_options
  • 原文地址:https://www.cnblogs.com/roadwide/p/11220211.html
Copyright © 2011-2022 走看看