2011-11-04 12 views
5

Attualmente è necessario eseguire il debug delle comunicazioni tra la mia applicazione e il server. Sono stato in grado di catturare i pacchetti lanciando l'emulatore con l'interruttore tcpdump:Come posso ottenere una visualizzazione live del tcpdump dall'emulatore Android in Wireshark su OSX?

%emulator -tcpdump emulator.cap @MyDroid 

Il problema che ho, è che ho bisogno di spegnere l'emulatore prima di poter aprire il file emulator.cap in Wireshark. Altrimenti, Wireshark si lamenterà che l'acquisizione è incompleta. Questo processo è molto molto lento. Mi piacerebbe essere in grado di ottenere una visualizzazione live del file emulator.cap in Wireshark.

Sembra che questo dovrebbe essere possibile utilizzando i tubi. Sto facendo il mio sviluppo su OS   X e ho provato Way 1 e Way 2 da questa guida: http://wiki.wireshark.org/CaptureSetup/Pipes.

Almeno mi consente di visualizzare un'istantanea dell'acquisizione, ma non riesco a ottenere una vista che si aggiorni in tempo reale. Facendo clic sul pulsante di aggiornamento in Wireshark non si aggiornano i pacchetti catturati. Devo chiudere e riaprire Wireshark per ottenere un aggiornamento (che è molto più veloce del rilancio dell'emulatore).

Quali sono i passaggi per visualizzare una cattura dal vivo dall'emulatore Android in Wireshark su OS   X?

risposta

2

Inizia creando una pipe denominata e apri Wireshark per leggerlo. Quindi, dirigere il comando tcpdump dell'emulatore per scrivere nella stessa named pipe. Wireshark sembra essere sensibile all'aver fatto le cose in questo ordine, altrimenti si lamenterà del formato di libcap.

Qui ci sono i comandi:

%mkfifo /tmp/emulator 
%wireshark -k -i /tmp/emulator & 
%emulator -tcpdump /tmp/emulator @MyDroid 

Aggiornamento:

Dopo aver utilizzato questo per un po ', sembra essere fragili. Ho avuto Wireshark lamentarsi di un pacchetto, e l'unico modo per recuperare era di passare attraverso tutti questi passaggi di nuovo. Esiste una soluzione migliore/più robusta?

Problemi correlati