Saltar al contenido principal

Dispositivo y emulador Android

Captura el tráfico HTTP/HTTPS de dispositivos y emuladores Android con el proxy de depuración Proxyman: configuración del proxy, certificados, scripts automáticos e imágenes de Google Play.

Esta guía envía el tráfico de un dispositivo o emulador Android a Proxyman en tu ordenador. Cubre la configuración del proxy, la instalación del certificado y la confianza en el certificado por parte de la app para inspeccionar HTTPS.

Elige la configuración que corresponda a tu dispositivo:

  • Dispositivo Android físico: sigue la configuración manual de abajo. Tu dispositivo debe poder conectarse por red al ordenador que ejecuta Proxyman.
  • Emulador de Android: empieza por el script de configuración automática.
  • Imagen de emulador con Google Play: sigue la guía de Google Play y Magisk. La configuración automática estándar no cubre todas las imágenes.

Para capturar tráfico directamente desde un teléfono sin ordenador, usa la app independiente Proxyman for Android.

Para capturar desde el escritorio, abre la guía correspondiente en Proxyman:

  • Certificate Menu -> Install Certificate on Android -> Physical Devices…
  • Certificate Menu -> Install Certificate on Android -> Emulators…
información

Para el emulador de Android, consulta el script automático para el emulador de Android

Vídeo​

Captura HTTPS desde una app nativa de Android (OkHttp) en el emulador de Android con API 36
Captura tráfico HTTP y HTTPS en Android con la app Proxyman for Android · Ver en proxyman.com

1. Guía de configuración de Android​

Para la configuración manual, primero configura el proxy del dispositivo; después, instala el certificado y configura su confianza en tu app de desarrollo. Instalar el certificado por sí solo no hace que todas las apps Android confíen en él. Sigue todos los pasos siguientes:

Guía de configuración de Android de Proxyman con el servidor y el puerto del proxy Wi-Fi, el enlace proxy.man/ssl y el XML de network security config

Guía de configuración para dispositivos Android

Abre la guía desde el menú Certificate -> Install Certificate on Android -> Physical Devices… y sigue estos pasos:

  1. Instala el Root Proxyman Certificate en tu Mac. Puedes seguir la guía de macOS.
  2. En tu dispositivo o emulador Android, abre la app Settings -> Wi-Fi -> selecciona la red Wi-Fi actual -> configura el HTTP Proxy con los valores de esta tabla.
NombreValor
Server IPLa dirección IP actual de tu Mac
PortEl puerto actual de Proxyman: 9090 es el predeterminado
AuthenticationNo
información

Algunos dispositivos Samsung no pueden acceder a Internet después de configurar el HTTP Proxy. Olvida la red actual y vuelve a conectarte.

Si estás usando alguna app de VPN, asegúrate de cerrarla, ya que algunas apps de VPN entran en conflicto con las configuraciones de HTTP/HTTPS Proxy.

3. Abre http://proxy.man/ssl o http://cert.proxyman.io en el navegador web de tu dispositivo Android para instalar el certificado de Proxyman.

Android 11, Android 12 o posterior:​

  • Visita http://proxy.man/ssl en la app Google Chrome para descargar el certificado.
  • Desde Android 11 o posterior, debes instalar el certificado manualmente en la app Settings.
  • App Settings -> Security -> Encryption & Credentials -> Install a Certificate -> Selecciona "CA Certificate" -> selecciona el certificado CA de Proxyman en tu almacenamiento.

Android 10 y anteriores:​

  • En cuanto visitas http://proxy.man/ssl, tu dispositivo Android descarga e instala el certificado automáticamente. Asegúrate de seleccionar VPN and App Section.
información

En Android 12+, si ves la advertencia "Can't install the Certificate: This file can't be used as a VPN & app user certificate", selecciona "CA Certificate" en su lugar.

Ref: https://stackoverflow.com/a/70261393/3127477

información

http://proxy.man/ssl es un sitio web local que sirve el servidor HTTP integrado en Proxyman. Si no puedes abrirlo, olvida la red Wi-Fi, vuelve a conectarte y asegúrate de que la app Proxyman esté abierta.

4. En Android 11 o posterior, verifica el certificado: abre Settings -> Security -> Encryption & Credentials -> Trusted Credentials -> pestaña User.

Asegúrate de ver el certificado Proxyman CA, como en la captura de pantalla de abajo.

Credenciales de confianza de Android, pestaña User, con el certificado Proxyman CA

5. Abre el código fuente de tu app y añade los dos archivos xml siguientes.

  • Añade res/xml/network_security_config.xml
network_security_config.xml
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
<certificates src="system" />
</trust-anchors>
</debug-overrides>

<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</base-config>
</network-security-config>
  • Añade a AndroidManifest.xml
manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config" ... >
...
</application>
</manifest>
información

Encuentra más información en Network Security Configuration

información

Asegúrate de eliminar esas configuraciones de la build de Release. Si no lo haces, tus solicitudes HTTP/HTTPS pueden interceptarse y exponer tus datos sensibles en la build de producción.

6. Si usas el emulador de Android, reinícialo

7. ¡Listo! ✅

2. Solución de problemas​

Consulta la sección de Android de la guía de solución de problemas de conexión de dispositivos.

3. Proyecto Android de ejemplo​

Si tienes problemas con la configuración XML, consulta este proyecto sencillo que ya está configurado:

Enlace de GitHub: https://github.com/ProxymanApp/OKHTTP-Android-Sample

4. App Android de React Native​

Si usas React Native para la app Android, consulta la página de React Native.

5. Interceptar tráfico de un WebView incrustado​

Algunas apps Android tienen un WebView incrustado que requiere pasos adicionales para interceptar el tráfico HTTPS.

  1. Asegúrate de poder ver otro tráfico HTTPS de tu app Android. Eso significa que has configurado bien el certificado.
  2. Inyecta el siguiente código en tu WebView
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}

// The following two lines help with disabling asset caching
webView.getSettings().setAppCacheEnabled(false);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

3. Abre una pestaña nueva de Chrome en tu ordenador y navega a chrome://inspect

4. Cuando abras el WebView, aparecerá en tu pestaña de Chrome. Haz clic en inspect para empezar a usar el depurador remoto.

6. SSL Proxying usando un dispositivo con root​

Crédito para Shirshak

Si tu versión de Android es anterior a la 7, no necesitas este paso. A partir de Android 7, Google añadió una seguridad adicional que bloquea de forma predeterminada las herramientas de tipo man-in-the-middle que leen el tráfico de las apps.

No nos hacemos responsables de los problemas causados por rootear el teléfono. Sigue la guía bajo tu propio riesgo.

información

Las versiones más recientes de Proxyman guardan el certificado en ~/Library/Application Support/com.proxyman.NSProxy/app-data/proxyman-ca.pem. Si la carpeta ~/.proxyman no existe en tu Mac, usa esa carpeta en su lugar, o exporta el certificado desde el menú Certificate -> Export -> Root Certificate as PEM.

  1. Haz root de tu teléfono con el framework magisk.

  2. Instala un explorador de archivos con root para poder copiar y pegar archivos en una carpeta restringida del sistema.

  3. Escribe el siguiente script en la línea de comandos

    $ cd ~/.proxyman
    // We copy certificate to another file name just so we may need it later
    $ cp proxyman-ca.pem temp.pem
    $ hash=$(openssl x509 -inform PEM -subject_hash_old -in temp.pem | head -1)
    $ mv temp.pem "$hash.0"
  4. En la carpeta ~/.proxyman verás un archivo cuyo nombre empieza con números y termina en .0

  5. Copia ese archivo a tu dispositivo Android.

  6. Usa el explorador de archivos con root para mover ese archivo a /system/etc/security/cacerts/

  7. ¡Listo! Ya puedes capturar tráfico.

información
  1. En los teléfonos Android, configura la puerta de enlace con una IP incorrecta, para asegurarte de que todo el tráfico pase solo por el proxy de Proxyman.
  2. Puedes usar la función de compartir de macOS para crear un punto de acceso móvil. Así, tu teléfono Android podrá usar el proxy de Proxyman fácilmente. Esto funciona mejor porque el router a veces bloquea las solicitudes entre el teléfono y el Mac.

Recursos adicionales​

Más información​