>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
Java

Cómo sobrescribir el archivo hosts en Android sin acceso root

Todo desarrollador móvil o ingeniero QA se ha enfrentado a una situación en la que necesita apuntar una aplicación a un entorno de prueba. En escritorio, se resuelve en un par de segundos abriendo 2 o 3. En Android, todo choca contra un muro de seguridad del sistema. Sin acceso root, editar el archivo 4 del sistema es imposible.

Por supuesto, puedes configurar un servidor DNS local como 5 en la red de tu oficina y especificar su IP en la configuración de Wi-Fi de tu teléfono. Pero, ¿qué pasa si estás trabajando desde una cafetería, en movimiento, o simplemente no quieres lidiar con la configuración del enrutador?

Aquí es donde entra en juego el repositorio Virtual-Hosts. El proyecto resuelve el problema de redirección de direcciones IP directamente en el dispositivo móvil sin necesidad de modificar el firmware ni obtener derechos de superusuario.

Cómo Funciona la Sobrescritura de DNS Sin Root

La idea de la utilidad es elegante. Android no permite modificar archivos del sistema, pero sí permite que las aplicaciones creen interfaces de red locales a través de la API estándar 6.

La aplicación configura un adaptador de red virtual directamente en tu dispositivo. Todo el tráfico saliente del teléfono pasa a través de esta interfaz local. Un resolutor DNS personalizado dentro de Virtual Hosts intercepta las solicitudes a nombres de dominio.

Si un dominio está en tu archivo de reglas de texto, la aplicación devuelve instantáneamente la dirección IP especificada. Si el dominio no está en la lista, la solicitud se envía al servidor DNS estándar de tu proveedor o a Google. Todo permanece en la memoria del teléfono—el tráfico no va a servidores de terceros.

Para implementar este esquema, el autor tomó la biblioteca LocalVPN como base y escribió un conveniente wrapper en Java alrededor de ella.

Qué Hace a Virtual Hosts Conveniente

Un archivo 7 regular en sistemas operativos tiene una limitación significativa: cada entrada tiene que ser escrita manualmente. Si tienes una docena de subdominios, la lista crece rápidamente.

Virtual Hosts soporta entradas con comodines. Esto ahorra mucho tiempo cuando se trabaja con arquitectura de microservicios o aplicaciones multi-tenant.

En lugar de una larga lista de entradas:

0

Escribes solo una línea:

1

El punto antes del nombre de dominio significa que absolutamente todos los subdominios de cualquier nivel para 8 se enviarán automáticamente a la dirección IP especificada.

Entre las características básicas de la aplicación, las siguientes merecen ser destacadas:

  • Cargar reglas desde archivos de texto plano desde el almacenamiento del dispositivo o a través de un enlace directo
  • Interruptor rápido para habilitar o deshabilitar la sobrescritura con un clic
  • Soporte para sintaxis estándar de mapeo de IP y dominio
  • Consumo mínimo de batería y RAM

Lanzamiento y Uso Práctico

La aplicación se distribuye como builds listos para usar y código fuente. Puedes descargar el APK directamente desde el catálogo de F-Droid o Google Play:

Get it on F-Droid

El flujo de trabajo es el siguiente:

  1. Crea un archivo de texto 9 con las reglas de redirección que necesitas en tu teléfono.
  2. Abre Virtual Hosts y selecciona este archivo a través del diálogo del sistema.
  3. Presiona el gran botón de encendido.
  4. Android te pedirá confirmación para crear una conexión VPN. Confirma la solicitud.

Después de eso, cualquier navegador, solicitud curl o aplicación móvil en el dispositivo comenzará a ver tus servidores de prueba por los nombres de dominio especificados.

Casos de Uso Reales

El proyecto es útil en una variedad de situaciones diarias de desarrollo.

Probando API con una máquina local. Un desarrollador ejecuta el backend en una laptop (10), pero la aplicación móvil está codificada para usar el dominio 11. En lugar de reconstruir el APK con una URL diferente, es suficiente con agregar una redirección en Virtual Hosts.

Verificando layouts y frontend. Puedes apuntar rápidamente un smartphone real a un DevServer que se ejecuta localmente con hot code reloading.

Aislando entornos de prueba. Cuando pruebas múltiples ramas simultáneamente, puedes cambiar archivos de configuración en segundos directamente desde la interfaz de la aplicación.

Limitaciones y Detalles Importantes

A pesar de todas las ventajas, este enfoque tiene un par de matices que debes conocer de antemano.

El principal inconveniente proviene de la arquitectura de Android. Solo un servicio VPN puede estar activo en el sistema a la vez. Si necesitas mantener habilitado WireGuard corporativo u OpenVPN para acceder a recursos de trabajo, no podrás usar Virtual Hosts en paralelo.

El segundo punto concierne al código. El proyecto fue creado en 2017, y la base de código Java se ve un poco anticuada según los estándares modernos de desarrollo de Android. Sin embargo, no hay nada que romper: la utilidad realiza una tarea clara y aún así la maneja perfectamente en versiones recientes de Android.

Resumen

Virtual Hosts es una utilidad excelente en el arsenal de cualquier desarrollador móvil o ingeniero QA. Resuelve un problema específico y enfocado sin necesidad de torturar dispositivos de prueba con firmware personalizado, desbloqueo de bootloader u obtención de root. Si necesitas redirigir rápidamente un dominio a una IP local y probar un build de aplicación en el campo, este repositorio definitivamente merece un lugar en tus marcadores.

Proyectos relacionados