Fidel Montesino

Sigue

Jul 10, 2020 – 5 min read

Si eres ingeniero de móviles, tanto durante el desarrollo como durante las pruebas probablemente utilices algunas de las herramientas más comunes que existen para depurar, interceptar o reescribir las llamadas de red, como Charles Proxy o Fiddler.

También es probable que encuentres bastante molesto el proceso de configuración del proxy en tus dispositivos: ve a Ajustes > Ajustes de red > Selecciona tu red WiFi > Modificar red > Añadir proxy. Cada. Único. Tiempo.

Si estás trabajando con un conjunto de dispositivos diferentes, probablemente también hayas notado pequeñas diferencias entre las versiones de Android, los fabricantes, etc., que podrían añadir o modificar los pasos que das para configurar el proxy.

Hay un pequeño comando adbque puedes ejecutar desde tu Terminal para habilitar un proxy global en tu dispositivo conectado:

adb shell settings put global http_proxy YOUR_IP:YOUR_PORT

Pero esto no te dará ningún indicador visual para saber si el dispositivo está usando un proxy o no. También requiere que el dispositivo esté conectado a un ordenador con adb instalado cada vez que quieras habilitar o deshabilitar el proxy… lo que probablemente hace que usar esta solución no sea la más idónea.

Bueno, tengo buenas noticias para ti.

Proxy Toggle es una pequeña aplicación de utilidad compatible con Android 5.0 y superior que te permitirá habilitar y deshabilitar rápidamente la configuración de tu proxy, además de unificar y simplificar el proceso entre versiones de plataforma, dispositivos, fabricantes, etc.

Proxy Toggle te permite configurar tu proxy global con un solo toque

Fácil configuración: sólo tienes que añadir la IP y el puerto que desees, habilitar el proxy y ¡voilà! todo listo, todo tu dispositivo estará proxyado.

Hacerlo aún más fácil

Sé que todo esto es una noticia emocionante. Pero también creo que tener que abrir la aplicación cada vez que quieras habilitar el proxy podría ser también un proceso largo… ¿no?

Por eso también he añadido dos accesos directos opcionales para que los utilices: un widget para la pantalla de inicio y un mosaico de configuración rápida.

Widget para la pantalla de inicio

Este acceso directo es muy útil para habilitar y deshabilitar tu último proxy utilizado rápidamente desde tu pantalla de inicio.

Para añadir el widget, normalmente tienes que hacer una pulsación larga en tu pantalla de inicio (dependiendo de tu lanzador), seleccionar Añadir Widget y desplazarte hacia abajo en tu lista de aplicaciones hasta que veas el widget Proxy Toggle.

El widget de la pantalla de inicio configurará el último proxy utilizado automáticamente

¡Ya está! Activa y desactiva tu proxy con un solo toque

Mosaico de ajustes rápidos

Si tu dispositivo ejecuta Android 7.0 o superior, tendrás acceso a otro increíble acceso directo: un mosaico de ajustes rápidos. Este acceso directo vivirá dentro de tu cajón de notificaciones, junto a otros prácticos accesos directos como WiFi, Ubicación, Bluetooth, Modo avión, etc.

Para habilitarlo, simplemente expande tu cajón de navegación, pulsa sobre el icono de Edición y arrastra el icono de Alternancia de Proxy donde quieras colocarlo.

Una vez habilitado, el mosaico de configuración rápida es un gran atajo para alternar su proxy

¡Hecho! Puedes activar y desactivar tu proxy sin siquiera salir de la aplicación actual

Nota: si tienes alguna llamada de red en curso, puede que tarde unos segundos en completarse y actualizarse con la nueva configuración.

No es oro todo lo que reluce

Aunque la aplicación cumple perfectamente su objetivo y nos facilita la vida, hay un par de advertencias que quiero destacar sobre esta brillante aplicación.

Uso de permisos restringidos del sistema

La aplicación hará uso de Settings.Global. Al ser un ajuste del sistema, normalmente es un ajuste de sólo lectura. Este pequeño inconveniente se salta concediendo a la app WRITE_SECURE_SETTINGSpermiso restringido.

Nota: este es un permiso protegido que sólo se debe conceder a las apps del Sistema. Ten mucho cuidado cuando concedas este permiso a apps de origen desconocido.

Sé que esto puede suscitar algunas preocupaciones, y las entiendo.
Por eso he decidido abrir el proyecto: para demostrar que es completamente seguro conceder este permiso, ya que tendrás un control y conocimiento total de lo que ocurre entre bastidores.

Concesión de permisos restringidos del sistema

Dado que se trata de un permiso restringido, no podemos solicitarlo en tiempo de ejecución como haríamos normalmente, por lo que será necesario concederlo manualmente desde nuestro ordenador.

Si sólo quieres instalar la aplicación sin construirla desde Android Studio, hay un pequeño script que se incluirá con la aplicación. Sólo tienes que descargar el archivo zip y ejecutar el script installAndGrantPermission.sh.
Alternativamente, puedes instalar manualmente la app ejecutando adb install -g App.apk en tu Terminal.

Para conceder este permiso una vez que la app ya está instalada, conecta el dispositivo a tu ordenador y ejecuta el siguiente comando en tu Terminal:

adb shell pm grant com.kinandcarta.create.proxytoggle android.permission.WRITE_SECURE_SETTINGS

Ten cuidado al desinstalar la app

Lamentablemente, como desarrolladores, no podemos ejecutar ningún código cuando la app está siendo desinstalada. Por lo tanto, la desinstalación de la aplicación con el proxy activado dejará permanentemente su dispositivo con esta configuración (¡ya que es una configuración de Settings.Global!).

Debe asegurarse de que el proxy está desactivado antes de desinstalar la aplicación. Como no podemos garantizar que esto vaya a suceder, también está el script uninstallAndCleanUp.sh para asegurarse de que todo está en un estado limpio después de desinstalar la aplicación.

Alternativamente, podrías ejecutar los siguientes comandos en tu Terminal para limpiar la configuración del proxy:

adb shell settings delete global http_proxy
adb shell settings delete global global_http_proxy_host
adb shell settings delete global global_http_proxy_port

La comodidad al alcance de tu mano

Proxy Toggle facilita la configuración de un proxy global en cualquier teléfono Android, además de proporcionar diferentes accesos directos para activar y desactivar el proxy con un solo toque en la pantalla. Espero que esta herramienta sea tan útil para tu equipo como lo ha sido para nuestro equipo interno de aplicaciones, tanto para los desarrolladores como para los probadores.

Puedes descargar la última versión desde aquí, o clonar el proyecto desde Github.

¡Muchas gracias a la única e increíble Flor Novello por su inestimable ayuda con el diseño de la aplicación!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.