>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
Shell

Comment extraire des données et télémétrie cachées d'Android via ADB propre

Android Forensics Logo

Quand je mets la main sur un appareil de test avec un bug capricieux ou un comportement suspect, la fenêtre Logcat standard d'Android Studio montre souvent ses limites. Je veux rapidement prendre un instantané du système : quels comptes sont liés, combien de fois le téléphone a redémarré, ce qui s'exécute dans les services en arrière-plan, et comment la batterie a été consommée.

La plupart des gens cherchent immédiatement les droits root ou téléchargent des utilitaires GUI lourds. En réalité, le Android Debug Bridge (ADB) standard peut produire d'énormes quantités de données sans logiciel tiers. Le projet AndroidForensics du développeur Douglas Fresh Habian rassemble toutes ces commandes dans un guide de référence unique et deux scripts Bash prêts à l'emploi.

Ce qu'il y a dans le dépôt

Essentiellement, le dépôt est une antisèche et un ensemble de scripts d'automatisation pour la forensique et les diagnostics profonds des appareils Android. Le projet se concentre sur le travail avec les appareils sans droits root, bien que certaines commandes de bas niveau révèlent davantage sur les builds d'ingénierie.

Le dépôt contient deux fichiers exécutables principaux :

  1. extract.sh — script principal de triage et de collecte des données utilisateur. Il extrait les propriétés système, la configuration réseau, les listes de paquets installés, les services actifs, et tente de lire les fournisseurs de contenu.
  2. dumpsys.sh — collecteur de télémétrie système. Le script interroge plus de deux dizaines de sous-systèmes internes Android via l'utilitaire dumpsys et organise les logs dans des fichiers texte séparés.

Chaque exécution crée un dossier séparé avec un horodatage, où les résultats de chaque commande individuelle sont neatly stockés. Cela élimine l'encombrement du terminal et aide à capturer immédiatement l'état du système à un moment précis.

Commandes utiles à ajouter à votre arsenal

Le README inclut à la fois des appels getprop de base et des one-liners non évidents avec analyse de sortie via grep, sed et awk.

Collecte des données de compte et d'adresse e-mail

Via le gestionnaire de comptes, vous pouvez découvrir rapidement quels services le téléphone est lié et rassembler toutes les adresses e-mail enregistrées :

adb shell dumpsys account | grep -i com.*$ -o | cut -d' ' -f1 | cut -d} -f1 | grep -v com$

Pour rechercher des adresses e-mail, l'auteur suggère une regex directement sur le dump système :

adb shell dumpsys | grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b"

Cette commande est utile quand vous avez besoin de vérifier rapidement si un testeur précédent a oublié de se déconnecter des comptes de travail sur un banc de test partagé.

Compteur de redémarrages et chronologie système

Parfois un bug ne se reproduit qu'après un redémarrage à froid, mais l'utilisateur prétend que le téléphone n'a jamais été éteint. Vous pouvez le vérifier via les paramètres globaux :

adb shell settings list global | grep "boot_count=" | cut -d= -f2 | head -n 1 | xargs echo "Booted:" | sed 's/$/ times/g'

Et si vous avez besoin de comprendre l'image globale de la consommation de ressources et de l'activité des applications au fil du temps, les commandes de statistiques viennent à la rescousse :

adb shell dumpsys usagestats
adb shell dumpsys batterystats
adb shell settings list system

Accès aux fournisseurs de contenu

Pour extraire les contacts, l'historique des appels et les messages, le script effectue des requêtes directes aux URI système :

# Список контактов и номеров телефонов
adb shell content query --uri content://contacts/phones/ --projection display_name:number

# Журнал звонков
adb shell content query --uri content://call_log/calls

# База входящих и исходящих SMS
adb shell content query --uri content://sms/

Voici une limitation technique importante. À partir d'Android 11, Google a considérablement renforcé le modèle de sécurité. Sur les nouvelles versions de l'OS, interroger directement content://sms/ ou les contacts via ADB sans permissions spéciales ou root entraînera une erreur d'accès. Cependant, sur les anciens appareils de test (Android 9–10) ou les builds développeur personnalisés, ces commandes continuent de fonctionner de manière fiable.

Comment fonctionne l'automatisation

Si l'exécution manuelle des commandes devient fastidieuse, les scripts automatisent la routine. Pour commencer, il suffit de cloner le dépôt et d'accorder les permissions d'exécution :

git clone https://github.com/DouglasFreshHabian/AndroidForensics.git
cd AndroidForensics
chmod +x extract.sh dumpsys.sh

Quand ./extract.sh est lancé, le script vérifie d'abord si adb est installé, ping les appareils connectés, et lance la collecte.

Pendant l'exécution, extract.sh effectue plusieurs tâches en parallèle :

  • Crée un répertoire nommé ADB_Report_20251025_163200.
  • Interroge les propriétés de l'appareil (ro.product.model, ro.build.version.release, ro.serialno).
  • Prend un instantané des dernières lignes du log système via adb logcat -d.
  • Démarre en arrière-plan la génération d'un rapport complet adb bugreport sans bloquer le terminal.
  • À la fin, affiche un tableau récapitulatif coloré avec les tailles de tous les fichiers enregistrés.

Le deuxième script, dumpsys.sh, est exclusivement axé sur le diagnostic des services système. Il interroge séquentiellement meminfo, wifi, power, location, sensorservice, netstats et 15 autres services, en enregistrant chaque sortie dans wifi.txt, meminfo.txt, etc. Si un service est indisponible, le script le marque comme planté et continue l'exécution.

Où cela s'avère utile en pratique

Le projet a plusieurs domaines d'application évidents :

  • QA et test d'applications mobiles. Le script dumpsys.sh aide à collecter un contexte complet de l'état de l'appareil en quelques secondes avant de déposer un rapport de bug complexe sur les fuites de mémoire ou la consommation d'énergie.
  • Audit d'appareil avant remise. Si un pool d'appareils de test circule dans l'équipe, il est utile d'exécuter rapidement un script de nettoyage et de vérification pour s'assurer qu'aucun compte d'autre personne ni processus lourd en arrière-plan ne reste sur le smartphone.
  • Tri initial d'incident. Les spécialistes de la sécurité obtiennent un moyen rapide de capturer un dump de l'état d'un smartphone sans installer d'APK douteux et sans apporter de modifications inutiles au système de fichiers.

AndroidForensics ne cherche pas à réinventer la roue ni à remplacer des packages forensiques complets comme Autopsy. La force du dépôt réside ailleurs — il prend les utilitaires de ligne de commande Android standard, les conditionne dans un format lisible, et fait gagner du temps sur l'écriture manuelle de pipelines bash.

Si vous connectez régulièrement des smartphones Android à votre ordinateur pour le débogage, les tests ou l'analyse de sécurité, ajoutez ces scripts à votre boîte à outils locale. Ils se lancent en quelques secondes et trouvent souvent des choses qui échappent lors d'un rapide coup d'œil à l'interface graphique.

Projets similaires