Эмулятор Android: как контролировать сетевой трафик? - PullRequest
115 голосов
/ 16 марта 2010

Как я могу отслеживать сетевой трафик, отправленный и полученный от моего эмулятора Android?

Ответы [ 10 ]

96 голосов
/ 04 апреля 2010

Существует два способа захвата сетевого трафика напрямую с эмулятора Android:

  1. Скопируйте и запустите ARM-совместимый двоичный файл tcpdump на эмуляторе, возможно записав вывод на SD-карту (например, tcpdump -s0 -w /sdcard/emulator.cap).

  2. Запустите emulator -tcpdump emulator.cap -avd my_avd, чтобы записать весь трафик эмулятора в локальный файл на вашем ПК

В обоих случаях вы можете проанализировать файл pcap с помощью tcpdump или Wireshark как обычно.

20 голосов
/ 12 апреля 2012

Также возможно использовать http-прокси для мониторинга http-запросов от эмулятора. Вы можете передать флаг -http-proxy при запуске нового эмулятора для установки прокси (Пример отрыжка ) для мониторинга трафика Android. Пример использования ./emulator -http-proxy localhost:8080 -avd android2.2. Обратите внимание, что в моем примере я использую Burp, и это порт прослушивания 8080. Более подробную информацию можно найти здесь .

10 голосов
/ 26 июня 2013

Для OS X вы можете использовать Charles , это просто и удобно.

Для получения дополнительной информации, пожалуйста, ознакомьтесь с эмулятором Android и блогом Чарльза Прокси .

6 голосов
/ 29 июня 2016

В текущем выпуске Android Studio неправильно применен аргумент -tcpdump. Я все еще смог захватить дамп, передав соответствующий параметр в qemu следующим образом:

tools/emulator -engine classic -tcpdump dump.cap -avd myAvd
5 голосов
/ 04 апреля 2010

Да, Wireshark будет работать.

Я не думаю, что существует какой-либо простой способ отфильтровать трафик исключительно эмулятора, поскольку он поступает с того же src IP.

Возможно, лучшим способом было бы настроить очень пустую среду VMware и запускать там только эмулятор, по крайней мере, таким образом, не было бы слишком большого фонового трафика.

4 голосов
/ 20 октября 2011

Вы можете использовать Fiddler для мониторинга http-трафика:

http://aurir.wordpress.com/2010/03/22/tutorial-getting-android-emulator-working-with-fiddler-http-proxy-tool/

Вы также можете использовать Fiddler2 здесь .

3 голосов
/ 13 февраля 2018

Теперь можно напрямую использовать Wireshark для захвата трафика эмулятора Android.Существует плагин extcap под названием androiddump , который делает это возможным.Вам необходимо иметь исполняемый файл tcpdump в образе системы, работающий на эмуляторе (в большинстве современных образов он есть, протестированный с образами API 24 и API 27) и adbd, работающий от имени пользователя root (просто запустите adb root),В списке доступных интерфейсов в Wireshark (только в версии Qt, у устаревшего GTK + его нет) или в списке, показанном tshark -D, должно быть несколько интерфейсов Android, позволяющих прослушивать трафик Bluetooth, Logcat или Wifi, например:

android-wifi-tcpdump-emulator-5554 (Android WiFi Android_SDK_built_for_x86 emulator-5554)

2 голосов
/ 13 января 2017

Вы можете использовать http://docs.mitmproxy.org/en/stable/install.html

Он прост в настройке и не требует дополнительных настроек.

Я изучаю различные инструменты, но считаю, что это действительно хорошо и просто.

2 голосов
/ 19 ноября 2015

Вы можете отслеживать сетевой трафик из Android Studio.Перейдите к Android Monitor и откройте вкладку Network.

http://developer.android.com/tools/debugging/ddms.html

UPDATE: Monitor Android Device Monitor устарел в Android Studio 3.1.Подробнее в https://developer.android.com/studio/profile/monitor

2 голосов
/ 03 апреля 2014

Вы можете запустить эмулятор с помощью команды -avd Adfmf -http-proxy http://SYSTEM_IP:PORT. Я использовал HTTP Analyzer, но он должен работать для всего остального. Более подробную информацию можно найти здесь: http://stick2code.blogspot.in/2014/04/intercept-http-requests-sent-from-app.html

...