极速的 Android 端 NTQQ 数据库密钥提取、解密及聊天记录导出工具。遵循 KISS 原则与 Unix 哲学, 针对移动端闪存优化 I/O 策略, 最小化读写磨损。
- Root 权限
- sqlcipher 二进制文件
- python
qq-dump 会使用 termux 的二进制文件, 进入 Termux 使用以下命令补全依赖
pkg install -y sqlcipher git coreutils python你需要一款终端模拟器, 例如 termux/termux-app
git clone https://github.com/miniyu157/qq-dump.git ~/.local/bin/qq-dump-mainln -s ~/.local/bin/qq-dump-main/qq-dump ~/.local/bin/qq-dump如果指定了其它软链接名称, 则下文用法中替换为你的自定义名称
Note
确保 ~/.local/bin 位于 PATH 环境变量中
Tip
qq-dump 会尝试自动更新, 若想要禁用更新, 新建一个 .dev 空文件在 qq-dump 根目录即可
qq-dump chat /sdcardqq-dump key [--raw]--raw: 获取机器可读的原始数据, 通常用于管道操作
qq-dump db [--raw] [--use-disk] [path=db_output/]--raw: 简化输出, 通常用于管道操作
--use-disk: 改为使用磁盘读写临时文件, 默认使用 /tmp (tmpfs)
PATH: 指定一个新的输出路径, 需要确保那个文件夹存在。默认为 db_output/
Tip
如果你追求更快的速度, 可以直接指定输出目录为 /tmp
Note
如果脚本所在文件夹的 ./db_list.txt 存在且非空, 则仅解密列表中指定的数据库,
默认有 nt_msg.db 和 profile_info.db, 每行一个文件名
qq-dump chat <OUTDIR>这个命令内部调用了 ./dumpdb --raw /tmp, 中间文件 100% 存在于内存中, 速度极快
QQ DUMP 内嵌了 miniyu157/QQRootFastDecrypt 中的 python 脚本。我修改了部分参数解析, 还未做更多的优化和适配
虽然 QQRootFastDecrypt 仓库已经归档, 但是其中的 export_chats.py 完成度非常高, 它是 100% 由 LLM 完成的, 所以难以维护
我正在写最新的功能, 查看 提交记录 以了解详情, 例如从 4f38eae 开始
chat_export/LICENSE 中的署名 "KlxPiao", 就是我的另一个笔名
- db = database
- key = k
启动 ./mock 即可模拟 Android 的文件系统环境, 前提是安装了 proot 和 mksh。
它会将一些 Android 文件夹映射到 ./.mock_env 中, 例如:
/data/user/0/com.tencent.mobileqq/.../sdcard/tmp
以及你安装的 mksh, 它让 qq-dump 以为 /system/bin/sh 存在, 实际上指向 /usr/bin/mksh 之类的位置,
如果没有安装 mksh, 则回退到 bash, 但这可能导致兼容性问题
解密算法思路源自 QQBackup/QQDecrypt
本项目采用 GNU General Public License v3.0 (GPLv3) 进行授权。 详见 LICENSE 文件。
Copyright (C) 2025 Yumeka miniyu157@163.com