Die Synchronisierung von Kontakten und Kalender funktionierte plötzlich nicht mehr

Während es jetzt fast ein Jahr lang gut funktioniert (seit ich CyanogenMod auf meinem Gerät installiert habe ), hat die Synchronisierung vor ein paar Tagen plötzlich aufgehört: Netzwerkanzeigen wurden weiß (nicht mehr grün bei Gingerbread / blau bei ICS und höher), was darauf hinweist, dass das Gerät nicht mit den Google-Servern "synchronisiert" ist.

Zuerst dachte ich, es könnte ein Google Server-Ausfall sein (wie wir sie alle kennen), ich wartete ein paar Tage. Aber es löste sich nicht innerhalb weniger Tage, also beschloss ich, es mir genauer anzusehen. logcatdann zeigte sich: Immer beim Versuch zu synchronisieren, kam es zu einer Zeitüberschreitung der Netzwerkverbindung.

Weitere Nebeneffekte: Google Playstore App öffnete sich nicht mehr ("Network Timeout"), Google Talk bestand auf einem "Username/Password Failure".

Da bin ich hängen geblieben: Was tun? Neustart hat nicht geholfen, Herunterfahren/Neustart hat auch nicht geholfen, Cache/Daten aus der ContactsSync-App nicht löschen. Ich konnte GTalk nicht abmelden (was der nächste logische Schritt wäre), da GTalk sofort auf diesem Benutzernamen/Passwort-Fehler bestand.

Was jetzt?

Antworten (1)

Analyse

Zum Glück logcatgab die IP-Adresse mit (in meinem Fall: 74.125.93.113). Auf meinem PC habe ich zuerst mit dem Browser ("https://74.125.93.113/") nachgesehen - und tatsächlich ist die Verbindung abgelaufen. Als nächstes habe ich überprüft, was sich hinter der IP verbirgt:

host 74.125.93.113
113.93.125.74.in-addr.arpa domain name pointer qw-in-f113.1e100.net.

Hat mir nichts gesagt. Aber beim Überprüfen /etc/hostsauf dem Android-Gerät habe ich den Eintrag gefunden:

74.125.93.113 android.clients.google.com

Eine Suche nach diesem Host ergab: Die IP 74.125.93.113gehört nicht mehr dazu – was den Ärger erklärt.

Lösung

Die Lösung erfordert leider Root, da /etc/hostssie Root gehört und für alle anderen schreibgeschützt ist. Außerdem /etcist nur ein symbolischer Link zu /system/etc, was bedeutet, dass das gesamte Dateisystem schreibgeschützt ist.

Was du brauchst

Was zu tun ist

Öffnen Sie die Terminal-App und befolgen Sie diese Schritte:

# 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

Jetzt nur kurz warten – oder einfach Google Play zur Kontrolle aufrufen. Es sollte nicht lange dauern, bis die Ampeln wieder auf Grün schalten.

Ich bin neugierig - wie ist dieser Eintrag überhaupt in Ihre /etc/hosts gelangt?
Ich nicht :) Auf dem fraglichen Gerät läuft CM7.2 (ein Motorola Milestone 2). Da ich nie etwas manuell geändert habe /system(dieser Fix war das erste Mal, dass ich wirklich /systemRead-Write gemountet habe), kann ich nur vermuten, dass entweder CM oder derjenige, der das ROM anpasst (chillje), es dort platziert hatte. Ich bin mir nicht sicher, wer, aber so oder so: Ich bin nicht der einzige, der dieses ROM betreibt, also könnten auch andere betroffen sein – weshalb ich dieses Howto hier gepostet habe.