Si bien funcionó bien durante casi un año (desde que instalé CyanogenMod en mi dispositivo), hace un par de días, la sincronización se detuvo repentinamente: los indicadores de red se volvieron blancos (ya no son verdes en Gingerbread / azules en ICS y superiores), lo que indica que el dispositivo no está "sincronizado" con los servidores de Google.
Primero pensé que podría ser una interrupción del servidor de Google (como todos los conocemos), esperé un par de días. Pero no se resolvió en unos pocos días, así que decidí echar un vistazo más de cerca. logcat
luego mostró: Siempre al intentar sincronizar, se agotó el tiempo de espera de la conexión de red.
Más efectos secundarios: la aplicación Google Playstore ya no se abrió ("tiempo de espera de la red"), Google Talk insistió en una "falla de nombre de usuario/contraseña".
Ahí es donde me quedé atascado: ¿Qué hacer? Reiniciar no ayudó, apagar/reiniciar tampoco ayudó, ni borrar el caché/datos de la aplicación de sincronización de contactos. No pude cerrar la sesión de GTalk (que sería el siguiente paso lógico), ya que GTalk inmediatamente insistió en ese error de nombre de usuario/contraseña.
¿Ahora que?
Por suerte, logcat
dio la dirección IP junto (en mi caso: 74.125.93.113
). En mi PC, primero verifiqué con el navegador ("https://74.125.93.113/") y, de hecho, se agotó el tiempo de conexión. Luego verifiqué qué hay detrás de la IP:
host 74.125.93.113
113.93.125.74.in-addr.arpa domain name pointer qw-in-f113.1e100.net.
No me dijo nada. Pero revisando con /etc/hosts
el dispositivo Android, encontré la entrada:
74.125.93.113 android.clients.google.com
Una búsqueda de ese host reveló: la IP 74.125.93.113
ya no le pertenece, lo que explica el problema.
La solución requiere root, desafortunadamente, ya que /etc/hosts
es propiedad de root y solo lectura para todos los demás. Además, /etc
es solo un enlace simbólico a /system/etc
, lo que significa que todo el sistema de archivos es de solo lectura.
Abra la aplicación de terminal y siga estos pasos:
# make yourself root
su
# SuperUser/SuperSU may require approval at this point. Give it.
# check how /system is mounted:
mount | grep system
#output will look similar to this:
/dev/block/mmcblk1p21 on /system type ext3 (ro,relatime,barrier=1,data=ordered)
#remount /system read-write, using the values obtained:
mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system
#edit /etc/hosts
vi /etc/hosts
# put a comment-sign (#) in front of the line containing the bad IP, e.g.
# 74.125.93.113 android.clients.google.com
# save the file
# re-mount /system read-only (or simply reboot, that will do it as well)
mount -o ro,remount -t ext3 /dev/block/mmcblk1p21 /system
Ahora solo espere un momento, o simplemente acceda a Google Play para verificar. No debería pasar mucho tiempo para que las luces se vuelvan verdes nuevamente.
/system
(esta solución fue la primera vez que realmente monté /system
lectura y escritura), solo puedo suponer que CM o el que ajustaba la ROM (chillje) lo había colocado allí. No estoy seguro de quién, pero de cualquier manera: no soy el único que ejecuta esta ROM, por lo que otros también podrían verse afectados, por lo que publiqué este tutorial aquí.
izzy
izzy