43 votos

¿Cómo editar el archivo 'etc/hosts' en un teléfono no root?

Estoy usando LineageOS 14.1 y no quiero ni necesito rootearlo. ¿Cómo puedo remontar /system como rw y editar /system/etc/hosts?

Todas las respuestas en "Cómo editar el archivo 'etc/hosts'?" esperan un teléfono rooteado.

15voto

Izzy Puntos 45544

A menos que me haya perdido algo, eso no es posible. Sin acceso root, solo el mecanismo de flasheo de una actualización (a través de recovery o OTA) puede modificar /system. Para ser aceptado, dicho archivo de actualización debe estar firmado con la misma clave que la ROM, algo que solo el desarrollador de la ROM (aquí: el equipo de LOS) puede hacer.

Puede haber una forma a través de un recovery personalizado que te permita editar todos los sistemas de archivos directamente (ver por ejemplo twrp). Pero sin saber de qué dispositivo se trata, no se puede decir si existe un recovery compatible (puedes comprobarlo en la sección de Dispositivos de su sitio web para imágenes oficiales, y buscar en XDA para las no oficiales). Aparte de eso, solo queda rootear el dispositivo o no editar ningún archivo dentro de /system.

0 votos

Gracias. twrp parece ser una muy buena solución. Tiene todo lo necesario para pequeños cambios manuales o reemplazos completos de hosts. Estoy ejecutando la última versión estable que viene con BusyBox: vi, cat, chmod y chown están presentes.

1 votos

Además, no tienes que instalarlo, simplemente puedes arrancar la imagen (fastboot boot twrp.img). Lo que deja desbloquear el gestor de arranque como la única modificación del dispositivo (fuera de la que simplemente deseas realizar, por supuesto ;))

1 votos

Mis pasos para modificarlo usando TWRP: 0. arrancar en modo de recuperación 1. montar sistema 2. Avanzado> Administrador de archivos > navegar hasta el archivo y hacer clic en el botón "chmod 755" 2. avanzado > terminal > vi /system/etc/hosts 3. realizar tus modificaciones (5. ESC, :wq para guardar y salir de vi)

13voto

Jack Wade Puntos 231

En un teléfono no rooteado no se puede editar realmente el archivo hosts, pero es posible utilizar aplicaciones VPN como Virtual Hosts o Personal DNS Filter (ambas de código abierto, no tengo afiliación con ninguna) que interceptan el tráfico DNS y buscan un archivo hosts personalizado antes de hacer consultas al servidor DNS ascendente configurado.

O si el cargador de arranque es desbloqueable, la edición del archivo hosts es posible a través de una recuperación personalizada.

Para más alternativas, consulta: ¿Cómo resolver siempre un nombre de dominio a una IP fija sin root?

0 votos

Parece que el Filtro DNS Personal no permite establecer una resolución de nombres personalizada: solo puede bloquear nombres.

11voto

Jivan Pal Puntos 182

Es posible utilizar un perfil VPN* para afectar la resolución de nombres de host. Ahora hay varias aplicaciones disponibles en Play Store que ofrecen una forma conveniente de hacer esto, como Hosts Go. Ten en cuenta que, dado que esta técnica requiere el uso de un perfil VPN, no podrás utilizar una VPN real junto con esta técnica.


*A partir de Android 4.0 (nivel de API 14) — https://developer.android.com/guide/topics/connectivity/vpn

3 votos

La aplicación Hosts Go funciona para agregar algunas entradas de hosts. Sin embargo, la documentación podría ser mucho mejor. Se puede notar que el autor no es hablante nativo de inglés. En resumen, necesitas: ejecutar la aplicación, agregar entradas adicionales de hosts, activar el "interruptor de cambio de hosts" y luego hacer clic en el gran botón de inicio. Eso inicia la resolución de nombres de hosts. Ahora deberías poder usar esos hosts en Chrome, por ejemplo. El botón de detener te lleva de vuelta a la resolución normal de nombres de hosts.

0 votos

@Jack No estoy seguro de lo que quieres decir, no experimento esos problemas.

0 votos

@Jack Nunca he tenido ese problema, tal vez algo peculiar en tu red? Si estás tratando de resolver nombres de host que son comprendidos por tu router doméstico (por ejemplo, miordenador.lan), tal vez configura el servidor DNS dentro de Hosts Gos a la dirección IP de tu router.

2voto

Sandstorm Puntos 1

He visto algunos comentarios diciendo que TWRP no está explicado claramente. De esta manera solo necesitarás tener habilitadas las opciones de desarrollador.

Entonces primero obtén el archivo en tu computadora

adb pull /system/etc/hosts hosts

Edita el archivo hosts obtenido y vuélvelo a enviar al teléfono en una carpeta en la que tengas permisos de escritura

adb push hosts /sdcard

Reinicia el teléfono en modo de recuperación (TWRP), luego ve a montar y marca "system" (NO marques "Montar partición del sistema solo lectura"), regresa y ve a avanzado -> Administrador de archivos. Ahora tendrás un administrador de archivos con la partición del sistema escribible. Renombra /system/etc/hosts a algo como hosts_old, luego mueve tu archivo hosts editado en /sdcard/hosts a /system/etc.

0 votos

Si estás dispuesto a modificar la partición del sistema, entonces también puedes simplemente rootear el teléfono y ahorrarte los pasos tediosos que mencionaste. No hay beneficio en este enfoque en comparación con la edición directa del archivo hosts con acceso root.

0 votos

La aplicación de root no funcionaba en mi teléfono, y este enfoque funcionó. Por lo tanto, es útil para cualquiera en mi situación. Además, había alguien preguntando por detalles sobre cómo hacerlo con TWRP.

-2voto

berbt Puntos 101

Advertencia: esto funcionará solo si ADB puede obtener acceso root, lo cual no es el caso para la mayoría de las ROMs. Funciona en LineageOS 14.1.

Requisitos:

  • Opciones de desarrollador habilitadas en el teléfono
  • adb instalado en la computadora

Pasos

Aplica los siguientes ajustes en Opciones de desarrollador:

  • Acceso root -> Solo ADB
  • Depuración de Android -> activado

Conecta el teléfono a la computadora. Concede permiso en tu teléfono si te lo pide. En la computadora, abre un terminal y ejecuta

$ adb root

Concede permiso en tu teléfono. Remonta con

$ adb remount

Inicia un shell remoto rooted

$ adb shell

En el shell de adb, edita tu archivo hosts

# nano /etc/hosts

Cuando estés listo, desconéctate

# exit

3 votos

¿Eh? En LOS root solo está disponible si flasheas el paquete de root adicional, lo cual OP no quiere hacer (es decir, "Acceso root = solo ADB" no se puede lograr). Entonces, ¿cómo deberían funcionar tus pasos sin root si requieren root? ¿Podrías por favor aclarar?

0 votos

Adbd no puede ejecutarse como root en la compilación de producción.

0 votos

También, ¿cómo se puede obtener nano? cat es todo lo que tienes. Android ni siquiera viene con un vi básico.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X