While working fine for almost a year now (since I've installed CyanogenMod on my device), a couple of days ago synchronisation stopped all of a sudden: Network indicators turned white (no longer green on Gingerbread / blue on ICS and up), which indicates the device is not "in-sync" with the Google servers.
First I thought it might be some Google Server outage (as all of us know them), I waited a couple of days. But it didn't solve up within a few days, so I decided to take a closer look. logcat
then showed: Always when trying to sync, the network connection timed out.
Further side-effects: Google Playstore app did no longer open ("network timeout"), Google Talk insisted on a "username/password failure".
That's where I got stuck: What to do? Reboot didn't help, shutdown/restart didn't help either, nor did clearing cache/data from the contactssync app. I couldn't log off GTalk (which would be the next logical step), as GTalk immediately insisted on that username/password error.
Now what?
Answer
Analysis
Luckily, logcat
gave the IP address along (in my case: 74.125.93.113
). On my PC, I first checked with the browser ("https://74.125.93.113/") -- and in fact, connection timed out. Next I checked what's behind the IP:
host 74.125.93.113
113.93.125.74.in-addr.arpa domain name pointer qw-in-f113.1e100.net.
Didn't tell me anything. But checking with /etc/hosts
on the Android device, I found the entry:
74.125.93.113 android.clients.google.com
A lookup of that host reveiled: The IP 74.125.93.113
no longer belongs to it -- which explains the trouble.
Solution
The solution requires root, unfortunately, as /etc/hosts
is owned by root and read-only for everybody else. Furthermore, /etc
is just a symbilic link to /system/etc
, which means the entire file system is read only.
What you need
What to do
Open the terminal app, and follow these steps:
# 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
Now just wait a short time -- or simply call up Google Play to check. It shouldn't take long for the lights to turn green again.
No comments:
Post a Comment