
androidqf (Android Quick Forensics) aide à rassembler rapidement des preuves médico-légales à partir d'appareils Android, afin d'identifier des traces potentielles de compromission.
androidqf (Android Quick Forensics) est un outil portable conçu pour simplifier l'acquisition de données forensiques pertinentes depuis les appareils Android.
androidqf se veut un utilitaire simple et portable, multiplateforme, permettant d'acquérir rapidement des données à partir d'appareils Android. Ses fonctionnalités sont similaires à celles de mvt-android. Cependant, contrairement à MVT, androidqf est conçu pour être facilement utilisé même par des utilisateurs non techniques. Les données extraites par androidqf peuvent être analysées avec MVT.
Ce dépôt est un fork de androidqf maintenu par le Laboratoire de sécurité d'Amnesty International. L'outil androidqf a été initialement développé par Claudio Guarnieri.

Les binaires exécutables pour Linux, Windows et Mac devraient être disponibles dans la dernière version. Si vous rencontrez des problèmes pour exécuter le binaire, vous pouvez le compiler vous-même.
Ce projet utilise GoReleaser pour les compilations et les publications automatisées. Pour compiler localement :
Installez GoReleaser :
go install github.com/goreleaser/goreleaser@latest
Lancez une compilation snapshot (sans publication) :
./build_locally.sh
Cela créera des binaires pour toutes les plateformes dans le répertoire dist/, y compris un binaire universel pour macOS qui fonctionne à la fois sur Intel et Apple Silicon.
Vous pouvez toujours utiliser l'approche traditionnelle avec Makefile. Vous aurez besoin de Go 1.23+ installé, ainsi que de make, git, unzip et wget. AndroidQF inclut un collector cross-compilé qui s'exécute sur l'appareil cible pour extraire de manière plus fiable les informations forensiques pertinentes.
Construisez d'abord le module collector :
make collector
Ensuite, compilez AndroidQF pour la plateforme de votre choix :
make linux
make darwin
make windows
Ces commandes généreront des binaires dans un dossier build/.
Les paquets de distribution peuvent éviter d'intégrer les binaires ADB et collecteur regroupés en compilant avec la balise de compilation unbundle :
go build -tags unbundle -o build/
Lorsque cette balise est activée, androidqf s'attend à ce que :
adb soit disponible dans le PATH du système./usr/lib/androidqf/android-collector/ en utilisant les noms attendus par androidqf, tels que collector_arm et collector_arm64.Les empaqueteurs peuvent supprimer les ressources binaires incluses de assets/ avant la compilation, mais le répertoire du paquet assets/ et ses fichiers source Go doivent rester présents. La compilation unbundle importe toujours le paquet assets, et la compilation échouera si tout le répertoire assets/ est supprimé.
L'image conteneur de la version est publiée sur GitHub Container Registry :
docker pull ghcr.io/mvt-project/androidqf:latest
Pour effectuer une acquisition à partir d'un appareil Android connecté par USB sous Linux, passez le bus USB et montez un répertoire de sortie :
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
Vous pouvez également construire l'image localement pour une version publiée :
docker build --build-arg VERSION=1.8.3 -t androidqf .
[!TIP] Consultez Archives d'acquisition pour le format d'archive, les hachages d'intégrité, le chiffrement et la gestion des fichiers volumineux. Pour un dictionnaire des fichiers collectés, voir le dictionnaire de fichiers de sortie AndroidQF de SocialTIC (tiers).
Avant de lancer androidqf, vous devez avoir l'appareil Android cible connecté à votre ordinateur via USB, et vous devez avoir activé le débogage USB. Veuillez vous référer à la documentation officielle pour savoir comment procéder, mais sachez que les téléphones Android de différents fabricants peuvent nécessiter des étapes de navigation différentes des valeurs par défaut.
Une fois le débogage USB activé, vous pouvez lancer androidqf. Il tentera d'abord de se connecter à l'appareil via le pont USB, ce qui devrait amener le téléphone Android à vous demander d'autoriser manuellement les clés de l'hôte. Assurez-vous de les autoriser, idéalement de manière permanente afin que l'invite ne réapparaisse pas.
Maintenant, androidqf devrait s'exécuter et créer une archive zip d'acquisition dans votre répertoire de travail actuel, ou dans le répertoire fourni avec -output. À un moment donné de l'exécution, androidqf vous proposera des choix : ces invites suspendront l'acquisition jusqu'à ce que vous fassiez une sélection, alors soyez attentif.
Les données suivantes peuvent être extraites :
| Donnée | Optionnelle ? | Chemin(s) de sortie |
|---|---|---|
| Une sauvegarde complète ou une sauvegarde des messages SMS et MMS. | ✅ | backup.ab |
| La sortie de la commande shell getprop, fournissant des informations de construction et des paramètres de configuration. | getprop.txt | |
| Tous les paramètres système | settings_*.txt | |
| La sortie de la commande shell ps, fournissant une liste de tous les processus en cours. | processes.txt | |
| La liste des services du système. | services.txt | |
| Une copie de tous les logs du système. | logs/, logcat.txt | |
| La sortie de la commande shell dumpsys, fournissant des informations de diagnostic sur l'appareil. | dumpsys.txt | |
| Une liste de tous les paquets installés et des fichiers de distribution associés. | packages.json | |
| Copie de toutes les APK installées ou de seulement celles non marquées comme applications système. | ✅ | apks/* |
| Logs de journalisation d'intrusion. Contient des données privées telles que l'historique de navigation. | ✅ | intrusion_logs/* |
| Une liste des fichiers sur le système. | files.json | |
| Une copie des fichiers disponibles dans les dossiers temporaires. | tmp/* | |
| Un rapport de bogue contenant des logs système et spécifiques aux applications, sans données privées incluses. | bugreport.zip |
Chaque acquisition contient également acquisition.json, command.log lorsque des logs ont été produits, et hashes.csv. La liste de hachages enregistre le digest SHA-256 de chaque entrée d'archive en texte clair précédente et ne s'inclut pas elle-même. Les extractions échouées de l'appareil ne sont pas enregistrées comme entrées d'archive. Voir Archives d'acquisition pour plus de détails.
Les options suivantes sont présentées lors de l'exécution d'une collecte androidqf :