發到知乎竟然被刪掉,我也不知道我到底違反了哪條。唉,別人的畢竟是別人的。雖然博客園也是別人的
前言
我對聊天記錄的備份比較執着,也在這上面折騰過不少。碰到過不少令人頭疼的麻煩,在這里分享一下經驗。
關於聊天記錄的備份、導出,你的手機可能是以下幾種情況的一種:
- 手機已經ROOT
- 手機沒有ROOT但是已經解鎖OEM
- 手機沒有ROOT也沒有解鎖OEM
- 手機原生支持帶應用數據的備份軟件(比如華為)
原理
安卓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版本
3.備份應用及數據
adb backup com.tencent.mobileqq
另外,我提供的這個版本的QQ不僅支持ADB備份,而且還內置聊天記錄導出為TXT功能。真不知道為什么后來騰訊把這個功能給刪掉了。我們也可以通過降級安裝的方法用這個QQ的官方導出功能。
從db文件導出聊天記錄
這個網上有資料,但是比較少,感興趣的可以搜一下。當初我折騰這個也是一波三折。我把這個功能寫成了一個python腳本,可以很方便的使用了。當然你要會一點python。
如果覺得不錯也請給個star鼓勵一下啊~
情況4
利用系統自帶的備份應用,備份后找到db文件,然后用上述腳本就可以導出了。
總結
說實話,我寫的比較簡略,沒有一些基礎知識可能看不懂。但是我覺得我寫的是最全的,因為情況3我真的找了很久都沒有找到解決辦法。所以,如果你看不懂,請學習相關的知識后再來看。我這里提供的比較重要的是思路、老版本QQ和導出腳本,其他的很多東西沒辦法一一講到,畢竟大家的基礎都不一樣。當然,也歡迎評論指正。
最后,最最重要的一點是數據無價!任何一步操作前請明白你在干什么,知道會有怎樣的后果,事先請通過其他方法備份一些你覺得非常重要的聊天記錄、圖片等,做好萬全的准備。
最后祝大家都能備份或者導出自己珍貴的聊天記錄