2

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?

2

1 Answer 1

1

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.

2
  • I'm curious -- how'd that entry get into your /etc/hosts in the first place?
    – offby1
    Commented Jan 22, 2013 at 21:46
  • Not me :) The device in question is running CM7.2 (a Motorola Milestone 2). As I never manually changed anything in /system (this fix was the first time I really mounted /system read-write), I can only guess that either CM or the one adjusting the ROM (chillje) had placed it there. Not sure who, but either way: I'm not the only one running this ROM, so others might be affected as well -- which is why I posted this howto here.
    – Izzy
    Commented Jan 22, 2013 at 22:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .