tcpdump unter Android (root)


Für eine kleine Bastelei unter Linux benötige ich einen Sniffer. Interessanterweise gibt es keine gute App dafür. Ein paar habe ich ausprobiert aber da war nichts brauchbares bei. Also habe ich mal schnell gesucht, was es gibt.

Voller Freude dann direkt festegesllt, dass es TCPDump auch für Android gibt. Dies erfordert natürlich Root Zugriff.

Die Installation ist etwas ungewöhnlich. Letzlich wird einfahc nur ein Binary kopiert. Dafür hier hier die Schritte, was alles gemacht werden muss.

1.) ADB Root Zugriff muss aktiv sein

Einstellungen => Systm => Entwickleroptionen => Root-Debugging

2.) ADB mit Root Zugriff starten

adb root

3.) Evtl. muss dann System mit RW Rechten gemountet werden

adb remount system

4.) Nun kann man TCPDump herunterladen und passen kopieren. (hier als Beispiel mit der 4.9.3)

wget https://www.androidtcpdump.com/download/4.9.3.1.9.1/tcpdump
adb push tcpdump /system/xbin/tcpdump

5.) Evtl. muss man dann auch auch noch mal das Execute Recht setzen:

adb shell chmod +x /system/xbin/tcpdump

Danach kann man TCPDump dann z.B. im Terminal auf dem Android Phone oder auch über die adb shell gestartet werden.

Ein paar nützliche Befehle noch:

Zeige alle Interfaces an:

tcpdump -D

Verbose Logging auf allen Interface und schreibe ein pcap File:

tcpdump -vv -i any -s 0 -w /mnt/sdcard/dump.pcap