Cómo analizar el tráfico https de Android 6 emulador con Charles Proxy
Quiero analizar el tráfico https de la aplicación que estoy desarrollando para Android.
Charles Web Debugging Proxy es la herramienta que quiero usar para eso. Tengo el configuartion del sistema siguiente:
- Mac OS X El Capitan Versión 10.11.5
- Android Studio 2.1.2
- Construir # AI-143.2915827, construido el 26 de mayo de 2016
- Herramientas para Android SDK 25.2.0 rc1
- Versión de la plataforma: API 24: Android 6.X (N) revisión 2
- Charles Web Debugging Proxy v 3.11.5 versión de prueba de 30 días
Ya he leído varios puestos en StackOverflow como por ejemplo
- EXCEPCIÓN INESPERADA DE SUPERIOR NIVEL: java.lang.IllegalArgumentException: ya agregado
- Android Studio - "Carácter no asignable para codificar UTF-8"
- Encabezado ifaddrs.h no encontrado al compilar SDL para android
- AndroidStudio (0.8.9 Mac) No se pudo sincronizar el nuevo proyecto Gradle
- ¿Cómo puedo cambiar la forma en que resalto el texto en Android Studios en Mac?
- Problemas con SSL Proxy / Charles y Android
- Cómo configurar el emulador Android Lollipop con Charles Proxy?
Pero todavía no alcancé mi meta. Caminé por todos los pasos importantes:
- Certificado raíz Charles instalado y agregado a Max OS X Llavero y confianza
- Abrir Configuración de Proxy: Proxy -> Proxy Settings, Proxies Tab, marque "Habilitar Proxy HTTP transparente"
- Abrir Configuración de Proxy SSL: Proxy -> Configuración de Proxy SSL, ficha Proxy SSL, Marque "enable SSL Proxying"
- Android Emulator se inició en Android Studio Terminal por
~/Library/Android/sdk/tools/emulator -netdelay none -netspeed full -http-proxy <IP_FROM_DEVICE_WITH_CHARLES_PROXY_INSTALLED>:8888 -avd Nexus_5_API_23
- Certificado instalado desde http://charlesproxy.com/getssl
- O Certificado guardado por Charles Proxy, convertido a .crt por openssl e instalado en el dispositivo emulado
Puedo leer todo el tráfico http en Charles Proxy sin ningún problema. También puedo leer el tráfico de https, pero Charles sólo lista las direcciones IP. Hay entradas como
https://173.194.65.188:5228
Así que las direcciones IP no se resuelven. ¿Cómo obtener URLs reales de https? ¿Tengo que activar el DNS para https en alguna parte?
- Android - Integración de ffmpeg y android-ndk-r9c
- ¿Puedo desarrollar Android en Mac?
- Visualización de datos SQLite en una tableta Android - Navegador de base de datos SQLite
- No vea Android SDK y AVD Manager cuando ejecuta el comando de la herramienta android
- ¿Dónde está la carpeta del complemento para Android Studio en MAC
- Android Studio IDE con jre privado / jdk? OSX
- Depuración de HTC Desire HD a través de adb en MacBook Pro
- Cómo encontrar Android SDK en Mac y agregar a PATH
Yo también encontré que esto era un problema. Mi solución cuando quiero depurar el tráfico de red a través de Charles Proxy, es cambiar al emulador de Genymotion. El emulador Genymotion le dará la url (s) vs. ip (s) en Charles.
En el emulador de Genymotion, configure el nombre de host del proxy Wifi en '10 .0.3.2 'y el puerto Proxy introduzca' 8888 '(* suponiendo que el puerto 8888 es el puerto de escucha que ha configurado en Charles Proxy).
Hay instrucciones que hacen que el emulador de Android funcione con Charles aquí:
https://stackoverflow.com/a/35577864/2832027
Es bastante poco fiable. Es necesario poner el emulador en y fuera del modo de avión si estaba trabajando y luego deja de funcionar.
Estos son los pasos de la publicación anterior:
-
Inicie el emulador desde el terminal con
/{path to your android sdk directory}/tools/emulator -avd Nexus_5X_API_23 -http-proxy http://192.168.2.38:8888
donde el valor-avd
es el nombre de su emulador y el-http-proxy
value es la dirección IP de Charles: Ayuda>-http-proxy
SSL> Instalar el certificado raíz de Charles en un dispositivo móvil o un navegador remoto. -
En Charles, debe establecerse lo siguiente: Proxy> Proxies 8888
Enable transparent proxying
debe ser comprobado; Proxy> macOS Proxy debe ser comprobado -
En el emulador, `Ajustes> Más (Inalámbrico> Redes Celulares> Puntos de Acceso> T-Mobile US (o cualquier otra red disponible) establece Proxy a 10.0.2.2 y puerto a 8888
-
En el emulador,
Settings > Developer Options > Use legacy DHCP
clienteSettings > Developer Options > Use legacy DHCP
debe estar activado. -
En el emulador, active y desactive el modo Avión
Además, vea esto si tiene problemas para que Charles trabaje en Android 7 (API 24) y superior. https://android.jlelse.eu/android-nougat-charlesing-ssl-network-efa0951e66de
- Android Serbio latino y Montenegro valora la carpeta de strings.xml
- KeyPairGeneratorSpec reemplazo con los equivalentes de KeyGenParameterSpec.Builder – falló la operación del almacén de claves