V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
h4ckm310n
V2EX  ›  Android

安卓 QQ(非 NT 版本)清理指定好友或群的聊天图片文件(需 root)

  •  
  •   h4ckm310n · 96 天前 · 2978 次点击
    这是一个创建于 96 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近手机存储快满了,看了一下占用,发现大多是来自 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

    3 条回复    2024-09-14 12:32:46 +08:00
    ellermister
        1
    ellermister  
       96 天前
    同样推下我之前搞得 微信清理,清理所有的群!保留好友关系记录、聊天记录、资源。

    https://github.com/ellermister/wechat-clean
    lonelyparasol
        2
    lonelyparasol  
       96 天前
    mark 一下, 微信的有点兴趣
    ysxb1145
        3
    ysxb1145  
       95 天前 via Android
    微信也是如此,需要 root 权限
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3377 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 00:41 · PVG 08:41 · LAX 16:41 · JFK 19:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.