Круглосуточный захват пакетов в Android с помощью tcpdump

Я хотел бы получать захваты трафика данных на уровне пакетов (.pcap) в Android в течение недели (если возможно, в нескольких файлах).

Я думал, что смогу использовать tcpdump через Shark, однако обнаружил, что захват прекращается через некоторое время. Самый большой захват пакетов, который я получил, составляет около 40 МБ. Я обнаружил, что tcpdump останавливается/вылетает при смене сетевого интерфейса. Например, когда телефон подключен к 3G, когда я запускаю tcpdump из Shark, я вижу процесс tcpdump, работающий до тех пор, пока я не включу WiFi.

В Galaxy S2 при подключении через WiFi у меня есть следующие интерфейсы (полученные с помощью netcfg в оболочке adb): lo, svnet0, usb0, sit0, eth0. Когда я подключаюсь через 3G, я получаю pdp0 вместо eth0.

Можно ли запустить tcpdump круглосуточно и без выходных? Или какой-либо способ проверить, когда он работает, и если он остановится, снова запустить его из приложения Java? Проверка процесса tcpdump или что-то в этом роде? Или отслеживать состояние сети и запускать tcpdump каждый раз, когда сеть меняется?

Я просмотрел: ReadLine в TCPDump-Buffer иногда блокируется до тех пор, пока не уничтожит tcpdump, но это не решает мою проблему полностью.

Я использую рутированные устройства.

7
задан Community 23 May 2017 в 12:04
поделиться