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.
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.
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
.
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.
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 ;))
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)
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?
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
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.
@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.
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.
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.
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.
Opciones de desarrollador
habilitadas en el teléfonoadb
instalado en la computadoraAplica los siguientes ajustes en Opciones de desarrollador
:
Acceso root
-> Solo ADB
Depuración de Android
-> activadoConecta 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
¿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?
También, ¿cómo se puede obtener nano
? cat
es todo lo que tienes. Android ni siquiera viene con un vi
básico.
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.