
androidqf (Android Quick Forensics) hilft schnell forensische Beweise von Android-Geräten zu sammeln, um potenzielle Spuren von Kompromittierung zu identifizieren.
androidqf (Android Quick Forensics) ist ein tragbares Tool, das die Erfassung relevanter forensischer Daten von Android-Geräten vereinfacht.
androidqf soll ein einfaches und portables plattformübergreifendes Dienstprogramm sein, um schnell Daten von Android-Geräten zu erfassen. Es ist in seiner Funktionalität mvt-android ähnlich. Im Gegensatz zu MVT ist androidqf jedoch so konzipiert, dass es auch von technisch nicht versierten Benutzern einfach ausgeführt werden kann. Die mit androidqf extrahierten Daten können mit MVT analysiert werden.
Dieses Repository ist ein Fork von androidqf, der vom Sicherheitslabor von Amnesty International gewartet wird. Das Tool androidqf wurde ursprünglich von Claudio Guarnieri entwickelt.

Ausführbare Binärdateien für Linux, Windows und Mac sollten im aktuellen Release verfügbar sein. Falls Probleme beim Ausführen der Binärdatei auftreten, kann es hilfreich sein, sie selbst zu bauen.
Dieses Projekt verwendet GoReleaser für automatisierte Builds und Releases. So bauen Sie lokal:
GoReleaser installieren:
go install github.com/goreleaser/goreleaser@latest
Einen Snapshot-Build ausführen (ohne Veröffentlichung):
./build_locally.sh
Dies erstellt Binärdateien für alle Plattformen im dist/-Verzeichnis, einschließlich einer universellen Binärdatei für macOS, die sowohl auf Intel als auch auf Apple Silicon funktioniert.
Der traditionelle Makefile-Ansatz kann weiterhin verwendet werden. Dazu müssen Go 1.23+ sowie make, git, unzip und wget installiert sein. AndroidQF enthält ein cross-kompiliertes collector-Modul, das auf dem Zielgerät läuft, um forensisch relevante Informationen zuverlässiger zu extrahieren.
Zuerst das collector-Modul bauen:
make collector
Dann AndroidQF für die gewünschte Plattform kompilieren:
make linux
make darwin
make windows
Diese Befehle erzeugen Binärdateien in einem build/-Ordner.
Distributionspakete können auf die Einbettung der gebündelten ADB- und Collector-Binärdateien verzichten, indem sie mit dem unbundle-Build-Tag gebaut werden:
go build -tags unbundle -o build/
Wenn dieses Tag aktiviert ist, erwartet androidqf:
adb muss über den System-PATH verfügbar sein./usr/lib/androidqf/android-collector/ mit den von androidqf erwarteten Namen installiert sein, z. B. collector_arm und collector_arm64.Paketierer können die gebündelten Binärdatei-Assets aus assets/ entfernen, bevor sie bauen, aber das assets/-Paketverzeichnis und seine Go-Quelldateien müssen erhalten bleiben. Der unbundle-Build importiert immer noch das assets-Paket, und der Build schlägt fehl, wenn das gesamte assets/-Verzeichnis gelöscht wird.
Das Release-Container-Image wird in der GitHub Container Registry veröffentlicht:
docker pull ghcr.io/mvt-project/androidqf:latest
Um von einem über USB verbundenen Android-Gerät unter Linux zu sammeln, den USB-Bus durchreichen und ein Ausgabeverzeichnis mounten:
docker run --rm -it --privileged \
-v /dev/bus/usb:/dev/bus/usb \
-v "$(pwd)/output:/output" \
ghcr.io/mvt-project/androidqf:latest -fast -output /output
Sie können das Image auch lokal für eine veröffentlichte Version bauen:
docker build --build-arg VERSION=1.8.3 -t androidqf .
[!TIP] Siehe Acquisition archives für das Archivformat, Integritäts-Hashes, Verschlüsselung und die Handhabung großer Dateien. Für ein Wörterbuch der gesammelten Dateien siehe das Drittanbieter- SocialTIC AndroidQF Output File Dictionary.
Stellen Sie vor dem Start von androidqf sicher, dass das Ziel-Android-Gerät über USB mit Ihrem Computer verbunden ist und USB-Debugging aktiviert ist. Die offizielle Dokumentation erklärt, wie das geht. Beachten Sie jedoch, dass Android-Telefone verschiedener Hersteller möglicherweise andere Navigationsschritte erfordern.
Sobald USB-Debugging aktiviert ist, können Sie androidqf starten. Es wird zunächst versuchen, sich über die USB-Brücke mit dem Gerät zu verbinden. Das Android-Telefon sollte dann auffordern, die Host-Schlüssel manuell zu autorisieren. Bestätigen Sie diese, idealerweise dauerhaft, damit die Aufforderung nicht erneut erscheint.
Nun sollte androidqf ausgeführt werden und ein Akquisitions-Zip-Archiv im aktuellen Arbeitsverzeichnis (oder im mit -output angegebenen Verzeichnis) erstellen. Während der Ausführung wird androidqf einige Auswahlmöglichkeiten anbieten: Diese Eingabeaufforderungen pausieren die Akquisition, bis Sie eine Auswahl treffen. Achten Sie darauf.
Die folgenden Daten können extrahiert werden:
| Daten | Optional? | Ausgabepfad(e) |
|---|---|---|
| Ein vollständiges Backup oder ein Backup von SMS- und MMS-Nachrichten. | ✅ | backup.ab |
| Die Ausgabe des getprop-Shell-Befehls mit Build-Informationen und Konfigurationsparametern. | getprop.txt | |
| Alle Systemeinstellungen | settings_*.txt | |
| Die Ausgabe des ps-Shell-Befehls mit einer Liste aller laufenden Prozesse. | processes.txt | |
| Die Liste der Systemdienste. | services.txt | |
| Eine Kopie aller Systemprotokolle. | logs/, logcat.txt | |
| Die Ausgabe des dumpsys-Shell-Befehls mit Diagnoseinformationen über das Gerät. | dumpsys.txt | |
| Eine Liste aller installierten Pakete und zugehörigen Verteilungsdateien. | packages.json | |
| Kopie aller installierten APKs oder nur derer, die nicht als System-Apps markiert sind. | ✅ | apks/* |
| Intrusion-Logging-Protokolle. Enthalten private Daten wie den Navigationsverlauf. | ✅ | intrusion_logs/* |
| Eine Liste der Dateien auf dem System. | files.json | |
| Eine Kopie der in Temp-Ordnern verfügbaren Dateien. | tmp/* | |
| Ein Bugreport mit System- und App-spezifischen Protokollen, ohne private Daten. | bugreport.zip |
Jede Akquisition enthält auch acquisition.json, command.log, wenn Protokollausgabe erzeugt wurde, und hashes.csv. Die Hash-Liste zeichnet den SHA-256-Digest jedes vorhergehenden Klartext-Archiveintrags auf und enthält sich selbst nicht. Fehlgeschlagene Geräte-Pulls werden nicht als Archiveinträge übernommen. Einzelheiten finden Sie unter Acquisition archives.
Bei der Ausführung einer androidqf-Sammlung werden die folgenden Optionen angeboten:
Möchten Sie ein Backup des Geräts erstellen?
...
? Backup:
▸ Nur SMS
Alles
Kein Backup
Diese Optionen beziehen sich auf Daten, die vom Gerät durch Ausführen des adb backup-Befehls im Hintergrund gesammelt werden. Wenn Kein Backup ausgewählt wird, wird der adb backup-Befehl nicht ausgeführt.