>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
Shell

Versteckte Daten und Telemetriedaten von Android über sauberes ADB extrahieren

Android Forensics Logo

Wenn ich ein Testgerät mit einem schwer fassbaren Fehler oder verdächtigem Verhalten in den Händen halte, stößt das Standard-Logcat-Fenster von Android Studio oft an seine Grenzen. Ich möchte schnell einen System-Snapshot erstellen: welche Konten verknüpft sind, wie oft das Telefon neu gestartet wurde, welche Dienste im Hintergrund laufen und wie der Akkuverbrauch aussieht.

Die meisten Menschen greifen in solchen Fällen sofort zu Root-Rechten oder laden sich umfangreiche GUI-Programme herunter. In Wirklichkeit kann die Standard-Android-Debug-Bridge (ADB) enorme Datenmengen ohne zusätzliche Software ausgeben. Das AndroidForensics-Projekt des Entwicklers Douglas Fresh Habian sammelt all diese Befehle in einem einzigen Referenzleitfaden und zwei gebrauchsfertigen Bash-Skripten.

Was sich im Repository befindet

Im Wesentlichen ist das Repository ein Spickzettel und eine Sammlung von Automatisierungsskripten für Forensik und Tiefendiagnose von Android-Geräten. Das Projekt konzentriert sich auf die Arbeit mit Geräten ohne Root-Rechte, obwohl einige Low-Level-Befehle auf Engineering-Builds mehr Informationen liefern.

Das Repository enthält zwei hauptsächliche ausführbare Dateien:

  1. extract.sh — primäres Triage- und Benutzerdaten-Sammlungsskript. Es extrahiert Systemeigenschaften, Netzwerkkonfiguration, Listen installierter Pakete, aktive Dienste und versucht, Content-Provider auszulesen.
  2. dumpsys.sh — System-Telemetrie-Sammler. Das Skript fragt über zwei Dutzend interne Android-Subsysteme über das dumpsys-Dienstprogramm ab und organisiert die Protokolle in separaten Textdateien.

Jede Ausführung erstellt einen separaten Ordner mit Zeitstempel, in dem die Ergebnisse jedes einzelnen Befehls übersichtlich gespeichert werden. Dies beseitigt Terminal-Unordnung und hilft, den Systemzustand zu einem bestimmten Zeitpunkt sofort zu erfassen.

Nützliche Befehle für Ihren Werkzeugkasten

Die README enthält sowohl grundlegende getprop-Aufrufe als auch nicht offensichtliche Einzeiler mit Ausgabe-Parsing über grep, sed und awk.

Konto- und E-Mail-Adressdaten sammeln

Über den Account-Manager können Sie schnell herausfinden, welche Dienste mit dem Telefon verknüpft sind, und alle registrierten E-Mail-Adressen erfassen:

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

Für die Suche nach E-Mail-Adressen schlägt der Autor einen Regex direkt auf dem System-Dump vor:

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

Dieser Befehl ist nützlich, wenn Sie schnell überprüfen müssen, ob ein vorheriger Tester vergessen hat, sich von Arbeitskonten auf einem gemeinsamen Testplatz abzumelden.

Neustart-Zähler und System-Zeitachse

Manchmal tritt ein Fehler nur nach einem Kaltstart auf, aber der Benutzer behauptet, das Telefon sei nie ausgeschaltet worden. Sie können dies über globale Einstellungen überprüfen:

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

Und wenn Sie ein Gesamtbild der Ressourcennutzung und App-Aktivität im Zeitverlauf benötigen, kommen die Statistikbefehle zum Einsatz:

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

Zugriff auf Content-Provider

Um Kontakte, Anrufverlauf und Nachrichten zu extrahieren, führt das Skript direkte Abfragen an System-URIs durch:

# Список контактов и номеров телефонов
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/

Hier gibt es eine wichtige technische Einschränkung. Ab Android 11 hat Google das Sicherheitsmodell erheblich verschärft. Auf neueren OS-Versionen führt das direkte Abfragen von content://sms/ oder Kontakten über ADB ohne spezielle Berechtigungen oder Root zu einem Zugriffsfehler. Auf älteren Testgeräten (Android 9–10) oder benutzerdefinierten Developer-Builds funktionieren diese Befehle jedoch weiterhin zuverlässig.

So funktioniert die Automatisierung

Wenn das manuelle Ausführen von Befehlen mühsam wird, automatisieren Skripte die Routine. Um zu beginnen, klonen Sie einfach das Repository und erteilen Ausführungsberechtigungen:

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

Wenn ./extract.sh gestartet wird, prüft das Skript zunächst auf installiertes adb, pingt verbundene Geräte und startet die Datensammlung.

Während des Betriebs führt extract.sh mehrere parallele Aufgaben durch:

  • Erstellt ein Verzeichnis namens ADB_Report_20251025_163200.
  • Fragt Geräteeigenschaften ab (ro.product.model, ro.build.version.release, ro.serialno).
  • Erstellt einen Schnappschuss der letzten Zeilen des Systemprotokolls über adb logcat -d.
  • Startet im Hintergrund die Generierung eines vollständigen Berichts adb bugreport, ohne das Terminal zu blockieren.
  • Gibt nach Abschluss eine farbige Zusammenfassungstabelle mit den Größen aller gespeicherten Dateien aus.

Das zweite Skript, dumpsys.sh, konzentriert sich ausschließlich auf die Diagnose von Systemdiensten. Es fragt sequenziell meminfo, wifi, power, location, sensorservice, netstats und 15 weitere Dienste ab und speichert jede Ausgabe in wifi.txt, meminfo.txt und so weiter. Wenn ein Dienst nicht verfügbar ist, markiert das Skript ihn als abgestürzt und fährt mit dem Betrieb fort.

Wo dies in der Praxis nützlich ist

Das Projekt hat mehrere offensichtliche Einsatzbereiche:

  • QA und mobiles App-Testing. Das dumpsys.sh-Skript hilft, in wenigen Sekunden einen vollständigen Gerätezustand-Kontext zu erfassen, bevor ein komplexer Bug-Report zu Speicherlecks oder Akkuverbrauch erstellt wird.
  • Geräte-Audit vor Übergabe. Wenn ein Pool von Testgeräten im Team zirkuliert, ist es nützlich, schnell ein Bereinigungs- und Verifizierungsskript auszuführen, um sicherzustellen, dass keine fremden Konten oder ressourcenintensive Hintergrundprozesse auf dem Smartphone verbleiben.
  • Initiale Incident-Triage. Sicherheitsspezialisten erhalten einen schnellen Weg, einen Smartphone-Zustands-Dump zu erfassen, ohne dubiose APKs zu installieren und ohne unnötige Änderungen am Dateisystem vorzunehmen.

AndroidForensics versucht nicht, das Rad neu zu erfinden oder vollwertige forensische Pakete wie Autopsy zu ersetzen. Die Stärke des Repositorys liegt woanders — es nimmt Standard-Android-Kommandozeilentools, verpackt sie in ein lesbares Format und spart Zeit für das manuelle Schreiben von Bash-Pipelines.

Wenn Sie regelmäßig Android-Smartphones zum Debuggen, Testen oder zur Sicherheitsanalyse an Ihren Computer anschließen, fügen Sie diese Skripte Ihrem lokalen Toolkit hinzu. Sie starten in Sekunden und finden oft Dinge, die bei einem flüchtigen Blick auf die GUI übersehen werden.

Ähnliche Projekte