最近手机存储快满了,看了一下占用,发现大多是来自 QQ 的聊天图片文件,打算清理一波,但又只想清理部分群聊的,于是研究了一下,写了一个程序。原本是打算做一个 app 的,但是没那么多时间,就只写了一个命令行程序。
项目地址:https://github.com/h4ckm310n/Android-QQ-Pic-Cleaner
需要注意的是,这个需要有 root 权限(要访问 QQ 的数据库以及聊天图片目录),且只支持旧版(非 NT 版本)的 QQ ,例如我的版本是 8.9.58.11175 。运行之前建议做好备份,以免出现意外导致数据丢失。
简单来讲就是读取数据库中特定对象的聊天记录,异或解密( key 同样在 data 目录中)之后进行 protobuf 反序列化,得到图片的 MD5 ,再对其 CRC64 得到图片文件名,具体的实现过程我参考的是https://github.com/QQBackup/QQ-History-Backup。
(具体参数说明见 GitHub 页)
列出用户 1234 的所有好友和群聊:
android-qq-pic-cleaner -q 1234 -l
删除用户 1234 的好友 2345 、3456 及群聊 4567 、5678 、6789 的聊天图片:
android-qq-pic-cleaner -q 1234 -f 2345:3456 -g 4567:5678:6789
模拟删除用户 1234 的好友 2345 的聊天图片(但实际并没有删除):
android-qq-pic-cleaner -q 1234 -f 2345 --dry-run
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.