Saltar al contenido principal

Script automático para el emulador de Android

Usa el script automático de Proxyman para configurar el HTTP proxy e instalar el certificado de Proxyman en los emuladores de Android, y capturar HTTPS con un solo clic.

1. ¿Qué es?​

Configurar el HTTP Proxy a mano e instalar y confiar en el certificado de Proxyman en tu emulador de Android es complicado y propenso a errores.

Proxyman incluye un script integrado que lo hace por ti en segundos. Puedes abrirlo desde Certificate Menu -> Install Certificate on Android -> Emulators…

consejo

A partir de Proxyman 5.16.0 o posterior, Proxyman puede instalar el certificado de Proxyman en el almacén de nivel de sistema. Esto permite descifrar todo el tráfico HTTPS de los emuladores de Android.

información

Proxyman ahora funciona con emuladores de Google Play y sin Google Play. Configúralos en 1 clic. Consulta google-play-android-emulator-with-magisk.md

Guía de configuración de emuladores Android de Proxyman con Override All Emulators y la opción Install Proxyman VPN marcadas

Vídeo​

Captura HTTPS desde una app nativa de Android (OkHttp) en el emulador de Android con API 36

2. Ventajas​

1 clic para:

  • ✅ Automático: activa y revierte el HTTP Proxy
  • ✅ Descarga, instala y confía automáticamente en el certificado de Proxyman en el almacén de nivel de sistema. Descifra todo el HTTPS de tus emuladores. (Disponible en Proxyman 5.16.0 o posterior)
  • No necesitas network_security_config.xml
  • ✅ Menos propenso a errores y listo en unos pocos clics
consejo

Funciona con emuladores de Android y dispositivos Android físicos mediante adb (solo en Proxyman v5.19.0+)

Ventana principal de Proxyman con solicitudes HTTPS descifradas de una app OkHttp que se ejecuta en el emulador de Android

Captura y descifra HTTPS de emuladores de Android con Proxyman

  • Instala el certificado de Proxyman en el almacén de nivel de sistema.

✅ App Flutter / React Native​

A partir de Proxyman macOS 6.4.0, Proxyman puede capturar tráfico HTTPS de apps Flutter sin cambiar el código.

Consulta la documentación de flutter.md para obtener más información.

3. ¿Cómo se usa?​

  1. Asegúrate de que el comando adb esté instalado. Si no lo está, instálalo
brew install android-platform-tools
  1. Abre tu app Android con Android Studio
  2. Crea un emulador nuevo en el Android Virtual Device Manager. Asegúrate de que no sea una imagen de Google Play. Debe ser una imagen de Google APIs.
  1. Abre Proxyman -> Certificate Menu -> Install Certificate on Android -> Emulators… -> haz clic en el botón Override All Emulators

  2. Espera a que termine el script de Terminal

  3. Vuelve a abrir tu app Android desde Android Studio

  4. Proxyman capturará todos los datos HTTPS ✅

información

Si cierras Proxyman, asegúrate de hacer clic en el botón Revert All Changes. De lo contrario, tu emulador de Android no podrá acceder a Internet.

4. ⚠️ Proxyman 5.15.0 o anterior​

  • Proxyman 5.15.0 o anterior solo puede instalar el certificado de Proxyman a nivel de usuario.
  • Eso significa que tienes que completar el siguiente paso:
  • En tu código fuente:
    • Añade res/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
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:networkSecurityConfig="@xml/network_security_config">
        <activity
            ...
        </activity>
    </application>

</manifest>

5. Avanzado: ejecuta el script manualmente​

Puedes ejecutar el script manualmente en la app Terminal sin conceder el permiso de Automation en Privacy & Security.

Ruta del script:​

/Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Resources/install_certificate_android_emulator.sh
  • Para Proxyman 5.19.0 o posterior
Usage: /Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Resources/install_certificate_android_emulator.sh -m <mode> [options]

Modes:
all Set proxy and install certificate
proxy Set proxy only
revertProxy Revert proxy settings only
certificate Install certificate only

Required Options based on Mode:
-m, --mode <mode> : Operation mode (all, proxy, revertProxy, certificate)
-i, --ip <ip_address> : IP address (required for all, proxy, certificate)
-p, --port <port_number> : Port number (required for all, proxy, certificate)
-c, --cert <path_to_cert.pem> : Path to Proxyman certificate (required for all, certificate)

Optional Options:
--include-physical : Include physical devices (default: only emulators)
-h, --help : Show this help message

Prepara el certificado​

  1. Abre la app Proxyman
  2. Busca la IP actual en la barra de herramientas principal
  3. Menú Certificate -> Export -> Root Certificate as PEM -> guarda el archivo en la carpeta Escritorio

5.1 Configurar el HTTP Proxy e instalar el certificado en el almacén de nivel de sistema​

  • Proxyman v5.19.0 o posterior (NUEVO)
bash /Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Resources/install_certificate_android_emulator.sh --mode all --ip <current_ip> --port <port> --cert <certificate_path>
  • Proxyman v5.18.0 o anterior
bash /Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Resources/install_certificate_android_emulator.sh all <current_ip> <port> <certificate_path>

5.2 Solo configurar el HTTP Proxy​

  • Proxyman v5.19.0 o posterior (NUEVO)
bash /Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Resources/install_certificate_android_emulator.sh --mode proxy --ip <current_ip> --port <port>
  • Proxyman v5.18.0 o anterior
bash /Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Resources/install_certificate_android_emulator.sh proxy <current_ip> <port>

5.3 Revertir el HTTP Proxy​

  • Proxyman v5.19.0 o posterior (NUEVO)
bash /Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Resources/install_certificate_android_emulator.sh --mode revertProxy
  • Proxyman v5.18.0 o anterior
bash /Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Resources/install_certificate_android_emulator.sh revertProxy

6. Fecha de caducidad del certificado leaf​

6.1 Problema: recibes este error al interceptar HTTPS desde un WebView de Android

❗️ Android WebView rechaza la conexión con ERR_CERT_VALIDITY_TOO_LONG

Puedes cambiar la caducidad del certificado leaf en Proxyman: ve a Settings -> General -> More (junto al certificado) -> Leaf Certificate Expiry y selecciona una caducidad más corta, por ejemplo 10 días.

Settings de Proxyman, General, con el menú More del certificado abierto en Leaf Certificate Expiry configurado en 10 days

Más información​