para - Emulador de Android: ¿cómo controlar el tráfico de red?
koplayer no se conecta a internet (10)
Ahora es posible usar Wireshark directamente para capturar el tráfico del emulador de Android. Hay un complemento extcap llamado androiddump que lo hace posible. Necesita tener un ejecutable tcpdump
en la imagen del sistema que se ejecuta en el emulador (la mayoría de las imágenes actuales lo tienen, probado con imágenes API 24 y API 27) y adbd
ejecutándose como root en el host (simplemente ejecute la adb root
). En la lista de interfaces disponibles en Wireshark (solo la versión Qt, la GTK + obsoleta no la tiene) o la lista que se muestra con tshark -D
debe haber varias interfaces Android que permiten detectar el tráfico Bluetooth, Logcat o Wifi, por ejemplo:
android-wifi-tcpdump-emulator-5554 (Android WiFi Android_SDK_built_for_x86 emulator-5554)
¿Cómo controlo el tráfico de red enviado y recibido desde mi emulador de Android?
Hay dos formas de capturar el tráfico de red directamente desde un emulador de Android:
Copie y ejecute un binario tcpdump compatible con ARM en el emulador, escribiendo salida en la tarjeta SD, tal vez (por ejemplo,
tcpdump -s0 -w /sdcard/emulator.cap
).Ejecute
emulator -tcpdump emulator.cap -avd my_avd
para escribir todo el tráfico del emulador en un archivo local en su PC
En ambos casos, puede analizar el archivo pcap con tcpdump o Wireshark de la forma habitual.
Para OS X puedes usar Charles , es simple y fácil de usar.
Puede iniciar el emulador con el comando -avd Adfmf -http-proxy http://SYSTEM_IP:PORT
. Utilicé HTTP Analyzer, pero debería funcionar para cualquier otra cosa. Más detalles se pueden encontrar aquí: http://stick2code.blogspot.in/2014/04/intercept-http-requests-sent-from-app.html
Puede supervisar el tráfico de red desde Android Studio. Vaya a Android Monitor y abra la pestaña Red.
Puede usar http://docs.mitmproxy.org/en/stable/install.html
Es fácil de configurar y no requerirá ajustes adicionales.
Repaso varias herramientas, pero me pareció muy bueno y fácil.
Sí, wireshark funcionará.
No creo que haya una forma fácil de filtrar únicamente el tráfico del emulador, ya que proviene de la misma IP de src.
Quizás la mejor manera sea configurar un entorno VMware muy simple y solo ejecutar el emulador allí, al menos de esa manera no habría demasiado tráfico de fondo.
También es posible usar el proxy http para monitorear las solicitudes http del emulador. Puede pasar -http-proxy
cuando se inicia un nuevo emulador para establecer el proxy (ejemplo de burp ) para monitorear el tráfico de Android. Ejemplo de uso ./emulator -http-proxy localhost:8080 -avd android2.2
. Tenga en cuenta que en mi ejemplo estoy usando Burp, y está escuchando el puerto 8080. Puede encontrar más información here .
Una versión actual de Android Studio no aplicó correctamente el argumento -tcpdump
. Todavía pude capturar un volcado pasando el parámetro relacionado a qemu de la siguiente manera:
tools/emulator -engine classic -tcpdump dump.cap -avd myAvd