注意:此项目当前不再维护。一个独立的复刻(fork)可在 MVT项目 下找到。
androidqf(Android Quick Forensics)是一个便携式工具,用于简化从Android设备获取相关取证数据的过程。

适用于Linux、Windows和Mac的可执行二进制文件应在最新发布中找到。如果运行二进制文件遇到问题,你可以自行构建。
要构建androidqf,你需要安装Go 1.18+。还需要安装 make。准备好后,你可以克隆仓库,并根据所选平台运行以下任一命令:
make linux
make darwin
make windows
这些命令将在 build/ 文件夹中生成二进制文件。
在启动androidqf之前,你需要通过USB将目标Android设备连接到计算机,并且需要启用USB调试。请参考官方文档了解如何操作,但也要注意,不同制造商的Android手机可能需要与默认设置不同的导航步骤。
启用USB调试后,你可以继续启动androidqf。它将首先尝试通过USB桥接连接设备,这会导致Android手机提示你手动授权主机密钥。确保授权,最好是永久授权,这样就不会再次出现提示。
现在androidqf应该正在执行,并在你放置androidqf可执行文件的同一路径下创建一个获取文件夹。在执行过程中的某个时刻,androidqf会提示你一些选择:这些提示会暂停获取过程,直到你做出选择,所以请注意。
获取完成后,请确保禁用USB调试和开发人员选项,或者无论如何将设备恢复到原始配置。
将androidqf获取的数据存放在未加密的驱动器上可能会使你自己,尤其是那些你从中获取数据的人,面临重大风险。例如,你可能会在问题边境被拦截,你的androidqf驱动器可能被扣押。原始数据不仅可能暴露你旅行的目的,还可能包含非常敏感的数据(例如已安装应用程序列表,甚至短信)。
理想情况下,你应该完全加密驱动器,但这可能并不总是可行。你也可以考虑将androidqf放在一个VeraCrypt容器中,并随身携带VeraCrypt副本以挂载它。然而,VeraCrypt容器通常只受密码保护,你可能会被迫提供密码。
或者,androidqf允许使用提供的age公钥对每次获取进行加密。最好,这个公钥属于一个密钥对,而最终用户不拥有,或者至少不携带私钥。这样,即使在胁迫下,最终用户也无法解密获取的数据。
如果将一个名为 key.txt 的文件放在与androidqf可执行文件相同的文件夹中,androidqf将自动尝试压缩和加密每次获取,并删除原始的未加密副本。
一旦你取回加密的获取文件,你可以使用age解密,如下所示:
$ age --decrypt -i ~/path/to/privatekey.txt -o <UUID>.zip <UUID>.zip.age
请记住,通过高级取证技术,总是有可能恢复至少一部分未加密数据——尽管我们正在努力减轻这种情况。
androidqf的目的是促进对可能成为复杂移动间谍软件攻击目标的人员(特别是民间社会成员和边缘化社区)的设备进行 同意取证分析。我们不希望androidqf允许对非同意个体进行隐私侵犯。因此,本许可的目标是禁止将androidqf(以及任何其他同样许可的软件)用于 对抗性取证 目的。
为了实现这一目标,androidqf根据 MVT License 1.1 发布,该许可证是对 Mozilla Public License v2.0 的改编。此修改后的许可包含一个新条款3.0,“同意使用限制”,它允许仅在其数据被提取和/或分析的人员(“数据所有者”)明确同意的情况下使用许可软件(以及任何从其派生的 “更大作品”)。