Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

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?

share|improve this question
    
    
Concerning the "network indicator colors", also see eldarerathis answer here. Also related: Android not syncing anymore –  Izzy Jan 23 '13 at 10:33
add comment

1 Answer 1

up vote 1 down vote accepted

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.

share|improve this answer
    
I'm curious -- how'd that entry get into your /etc/hosts in the first place? –  offby1 Jan 22 '13 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 Jan 22 '13 at 22:45
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.