Estoy usando LineageOS 14.1 y no quiero ni necesito hacer root. ¿Cómo puedo volver a montar /system
en 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 hacer root. ¿Cómo puedo volver a montar /system
en 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 recuperación o OTA) puede modificar /system
. Para ser aceptado, tal 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 LOS) puede hacer.
Podría haber una manera a través de un recovery personalizado que te permita editar todos los sistemas de archivos directamente (consulta p. ej. twrp). Pero sin saber de qué dispositivo se trata, no se puede decir si existe un recovery correspondiente (puedes verificarlo en la sección de Dispositivos de su sitio web para imágenes oficiales, y buscar en XDA para encontrar no oficiales). Aparte de eso, es cuestión de 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 del dispositivo (aparte de la que acabas de querer realizar, por supuesto ;)
Mis pasos para modificarlo usando TWRP: 0. arrancar en modo de recuperación 1. montar el 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. haz tus cambios (5. ESC, :wq
para guardar y salir de vi)
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 inicia la resolución de nombres de host. Ahora deberías poder utilizar esos hosts en Chrome, por ejemplo. El botón de detener te devuelve a la resolución de nombres de host normales.
@Jack Nunca he tenido ese problema, quizás haya algo peculiar con tu red. Si estás intentando resolver nombres de host que son reconocidos por tu router doméstico (por ejemplo, mycomputer.lan
), tal vez establece el servidor DNS dentro de Hosts Gos con la dirección IP de tu router.
En un teléfono no rooteado no se puede editar el archivo hosts
en realidad, pero es posible usar aplicaciones VPN como Virtual Hosts o Personal DNS Filter (ambas son de código abierto, no tengo ninguna afiliación con ninguna de ellas) que interceptan el tráfico DNS y buscan un archivo hosts
personalizado antes de realizar consultas al servidor DNS configurado.
O si el cargador de arranque es desbloqueable, la edición del archivo hosts
es posible a través de la recuperación personalizada.
Para más alternativas, ver: ¿Cómo resolver siempre un nombre de dominio a una IP fija sin ser usuario root?
He visto algunos comentarios diciendo que TWRP no está explicado claramente. De esta manera solo necesitarás habilitar las opciones de desarrollador.
Primero, obtén el archivo en tu computadora.
adb pull /system/etc/hosts hosts
Edita el archivo hosts descargado y luego empújalo nuevamente 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 selecciona "system" (NO selecciones "Montar la partición de sistema de forma de solo lectura"), regresa y ve a avanzado -> Administrador de archivos. Ahora tienes un administrador de archivos con la partición del sistema con permisos de escritura. Renombra /system/etc/hosts a algo como hosts_old, luego mueve tu archivo de hosts editado /sdcard/hosts a /system/etc.
Si estás dispuesto a modificar la partición del sistema, entonces simplemente debes hacer root en el teléfono y ahorrarte los pasos tediosos que mencionaste. No hay beneficio en este enfoque en comparación con editar directamente el archivo de 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 la siguientes configuraciones 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 se solicita. 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 remoto con acceso root
$ adb shell
En el shell de adb, edita tu archivo hosts
# nano /etc/hosts
Cuando estés listo, desconecta
# exit
¿Eh? En LOS la root solo está disponible si instalas el paquete de root adicional, lo cual OP no desea (es decir, "Acceso a la 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 obtener nano
? cat
es lo único que tienes. Android ni siquiera incluye 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.