>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Shell

Hoe verborgen gegevens en telemetrie uit Android halen via schone ADB

Android Forensics Logo

Wanneer ik een testapparaat met een onstabiele bug of verdacht gedrag in handen krijg, schiet het standaard Android Studio Logcat-venster vaak tekort. Ik wil snel een systeemmomentopname maken: welke accounts zijn gekoppeld, hoe vaak de telefoon opnieuw is opgestart, wat er op de achtergrond draait, en hoe de batterij is verbruikt.

De meeste mensen zoeken in zulke gevallen meteen naar root-rechten of downloaden zware GUI-hulpprogramma's. In werkelijkheid kan de standaard Android Debug Bridge (ADB) enorme hoeveelheden gegevens uitvoeren zonder software van derden. Het AndroidForensics-project van ontwikkelaar Douglas Fresh Habian verzamelt al deze commando's in één naslaggids en twee kant-en-klare Bash-scripts.

Wat er in de repository zit

Essentieel gezien is de repository een spiekbriefje en automatisatiescriptset voor forensisch onderzoek en diepgaande diagnose van Android-apparaten. Het project richt zich op het werken met apparaten zonder root-rechten, hoewel sommige low-level commando's meer onthullen op engineering builds.

De repository bevat twee hoofd uitvoerbare bestanden:

  1. extract.sh — primair triage- en gebruikersgegevensverzamelingsscript. Het extraheert systeemeigenschappen, netwerkconfiguratie, lijsten van geïnstalleerde pakketten, actieve services en probeert content providers te lezen.
  2. dumpsys.sh — systeemtelemetrie-verzamelaar. Het script bevraagt meer dan twee dozijn interne Android-subsystemen via het dumpsys-hulpprogramma en organiseert logs in aparte tekstbestanden.

Elke uitvoering maakt een aparte map met een tijdstempel, waar resultaten van elk individueel commando netjes worden opgeslagen. Dit voorkomt rommel in de terminal en helpt om de systeemstatus op een specifiek moment vast te leggen.

Nuttige commando's om aan je arsenaal toe te voegen

De README bevat zowel basis getprop-aanroepen als niet voor de hand liggende one-liners met output-parsing via grep, sed en awk.

Account- en e-mailadresgegevens verzamelen

Via de accountmanager kun je snel achterhalen aan welke services de telefoon is gekoppeld en alle geregistreerde e-mailadressen verzamelen:

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

Voor het zoeken naar e-mailadressen stelt de auteur een regex rechtstreeks op de systeemdump voor:

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

Dit commando is handig wanneer je snel moet controleren of een vorige tester vergeten is om uit werkaccounts uit te loggen op een gedeelde testbank.

Herstartteller en systeemtijdlijn

Soms reproduceert een bug pas na een koude herstart, maar de gebruiker beweert dat de telefoon nooit is uitgeschakeld. Je kunt dit verifiëren via globale instellingen:

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

En als je het algehele beeld van resourceverbruik en app-activiteit over tijd wilt begrijpen, komen de statistiekcommando's te hulp:

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

Toegang tot content providers

Om contacten, belgeschiedenis en berichten te extraheren, maakt het script directe queries naar systeem-URI's:

# Список контактов и номеров телефонов
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 is een belangrijke technische beperking. Vanaf Android 11 heeft Google het beveiligingsmodel aanzienlijk aangescherpt. Op nieuwere OS-versies resulteert het rechtstreeks bevragen van content://sms/ of contacten via ADB zonder speciale machtigingen of root in een toegangsfout. Echter, op oudere testapparaten (Android 9-10) of aangepaste ontwikkelaarsbuilds werken deze commando's nog steeds betrouwbaar.

Hoe de automatisering werkt

Als het handmatig uitvoeren van commando's saai wordt, automatiseren scripts de routine. Om te beginnen hoef je alleen de repository te klonen en uitvoeringsmachtigingen te verlenen:

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

Wanneer ./extract.sh wordt gestart, controleert het script eerst of adb is geïnstalleerd, pingt verbonden apparaten en start de verzameling.

Tijdens de werking voert extract.sh verschillende parallelle taken uit:

  • Maakt een map met de naam ADB_Report_20251025_163200.
  • Bevraagt apparaateigenschappen (ro.product.model, ro.build.version.release, ro.serialno).
  • Maakt een momentopname van de laatste regels van de systeemlog via adb logcat -d.
  • Start op de achtergrond het genereren van een volledig rapport adb bugreport zonder de terminal te blokkeren.
  • Geeft bij voltooiing een gekleurde samenvattings tabel uit met de groottes van alle opgeslagen bestanden.

Het tweede script, dumpsys.sh, is uitsluitend gericht op het diagnosticeren van systeemservices. Het bevraagt sequentieel meminfo, wifi, power, location, sensorservice, netstats en nog 15 services, waarbij elke output wordt opgeslagen in wifi.txt, meminfo.txt, en zo verder. Als een service niet beschikbaar is, markeert het script deze als gecrasht en gaat door met de werking.

Waar dit in de praktijk van pas komt

Het project heeft verschillende voor de hand liggende toepassingsgebieden:

  • QA en mobiele app-testing. Het dumpsys.sh-script helpt binnen enkele seconden een complete apparaatstatuscontext te verzamelen voordat je een complex bugreport over geheugenlekken of stroomverbruik indient.
  • Apparaataudit voor overdracht. Als een pool van testapparaten rondgaat in het team, is het nuttig om snel een opschoon- en verificatiescript uit te voeren om te zorgen dat niemands accounts of zware achtergrondprocessen op de smartphone achterblijven.
  • Eerste incident triage. Beveiligingsspecialisten krijgen een snelle manier om een smartphone-statusdump vast te leggen zonder verdachte APK's te installeren en zonder onnodige wijzigingen aan het bestandssysteem aan te brengen.

AndroidForensics probeert het wiel niet opnieuw uit te vinden of volwaardige forensische pakketten zoals Autopsy te vervangen. De kracht van de repository ligt ergens anders — het neemt standaard Android command-line-hulpprogramma's, verpakt ze in een leesbaar formaat en bespaart tijd op het handmatig schrijven van bash-pipelines.

Als je regelmatig Android-smartphones op je computer aansluit voor debugging, testing of beveiligingsanalyse, voeg dan deze scripts toe aan je lokale toolkit. Ze starten in seconden op en vinden vaak dingen die door de mand vallen tijdens een snelle blik op de GUI.

Gerelateerde projecten