Estoy usando LineageOS 14.1 y no quiero ni necesito rootearlo. ¿Cómo puedo remontar /system
rw y editar /system/etc/hosts
?
Todas las respuestas en "Cómo editar el archivo 'etc/hosts'?" esperan un teléfono con acceso root.
Estoy usando LineageOS 14.1 y no quiero ni necesito rootearlo. ¿Cómo puedo remontar /system
rw y editar /system/etc/hosts
?
Todas las respuestas en "Cómo editar el archivo 'etc/hosts'?" esperan un teléfono con acceso root.
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 (en este caso, 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 afirmar si existe un recovery compatible (puedes verificarlo en la sección de Dispositivos de su sitio web para imágenes oficiales, y buscar en XDA para encontrar las no oficiales). Aparte de eso, la opción es rootear el dispositivo o no editar ningún archivo dentro de /system
.
Gracias. twrp
parece ser una solución muy buena. Tiene todo lo necesario para pequeños cambios manuales o reemplazos completos de hosts
. Estoy usando la última versión estable que viene con BusyBox: vi
, cat
, chmod
y chown
están allí.
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 en el dispositivo (además de la que quieres realizar, por supuesto ;))
Mis pasos para modificarlo usando TWRP: 0. arranca en modo de recuperación 1. monta el sistema 2. Avanzado> Administrador de archivos > navega hasta el archivo y haz clic en el botón "chmod 755" 2. avanzado > terminal > vi /system/etc/hosts
3. haz tus cambios (5. ESC, :wq
para guardar y salir de vi)
En un teléfono no rooteado, en realidad no se puede editar el archivo hosts
, pero es posible utilizar aplicaciones de VPN como Virtual Hosts o Personal DNS Filter (ambos son de código abierto, no tengo afiliación con ninguno de ellos) que interceptan el tráfico DNS y buscan un archivo hosts
personalizado antes de realizar consultas al servidor DNS configurado.
O si el gestor de arranque es desbloqueable, editar el archivo hosts
es posible a través de una recuperación personalizada.
Para más alternativas consulte: ¿Cómo resolver siempre un nombre de dominio a una IP fija sin root?
Es posible utilizar un perfil de VPN* para afectar la resolución de nombres de host. Ahora hay varias aplicaciones disponibles en la Play Store que proporcionan una forma conveniente de hacer esto, como Hosts Go. Ten en cuenta que, dado que esta técnica requiere el uso de un perfil de VPN, no podrás usar un 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 de hosts adicionales, activar el "interruptor de cambio de host" y luego hacer clic en el gran botón de inicio. Eso comienza la resolución de nombres de host. Ahora deberías poder usar esos hosts en Chrome, por ejemplo. El botón de detener te lleva de vuelta a la resolución de nombres de host normal.
@Jack Nunca he tenido ese problema, ¿quizás hay algo peculiar en tu red? Si estás intentando resolver nombres de host que son entendidos por tu enrutador doméstico (por ejemplo, micomputadora.lan
), tal vez establece el servidor DNS dentro de Hosts Gos en la dirección IP de tu enrutador.
He visto algunos comentarios diciendo que TWRP no está explicado claramente. De esta manera solo necesitarás tener activadas las opciones de desarrollador.
Así que primero obtén el archivo en tu ordenador.
adb pull /system/etc/hosts hosts
Edita el archivo hosts descargado y luego cárgalo de nuevo 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 mount y marca "system" (NO marques "Montar partición del sistema de solo lectura"), retrocede y ve a advanced -> Administrador de archivos. Ahora tienes un administrador de archivos con la partición del sistema en modo de escritura. Renombra /system/etc/hosts a algo como hosts_viejo, luego mueve tu archivo hosts editado /sdcard/hosts a /system/etc.
Si estás dispuesto a modificar la partición del sistema, entonces más vale rootear el teléfono y ahorrarte los pasos tediosos que mencionaste. No hay beneficio en este enfoque en comparación con editar directamente el archivo hosts con acceso de root.
Advertencia: esto solo funcionará 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
-> activadaConecta el teléfono a la computadora. Concede permiso en tu teléfono si te lo piden. En la computadora, abre una terminal y ejecuta
$ adb root
Concede permiso en tu teléfono. Vuelve a montar con
$ adb remount
Inicia un shell root remoto
$ adb shell
En el shell de adb, edita tu archivo hosts
# nano /etc/hosts
Cuando estés listo, desconéctate
# exit
¿Eh? En LOS, el acceso de root solo está disponible si flasheas el paquete adicional de root, lo cual OP no quiere hacer (es decir, "Acceso de 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 puedes conseguir 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.