AppXpose AppXpose
← All posts ← Alle Beiträge
· AppXpose · Background Pinging · Google Play Services · Network Traffic · Android Privacy

The anatomy of a background ping: what your phone tells Google at 3am Anatomie eines Hintergrund-Pings: Was dein Handy Google um 3 Uhr nachts verrät

Most Android phones send data while you sleep. Here's what one hour of nighttime pings revealed about Google Play Services, timestamps, and silent surveillance. Die meisten Android-Handys senden Daten, während du schläfst. Hier ist, was eine Stunde nächtlicher Pings über Google Play Services, Zeitstempel und stille Überwachung enthüllte.

I left my Android phone on a charger at 3am with all apps closed. Screen off. Do Not Disturb enabled. Flight mode disabled but mobile data turned off, WiFi on. One hour later, I checked the network logs.

Forty-seven connections. Not to my apps. To Google.

Most people know their phones “phone home” constantly. What they don’t know is the specificity of what gets sent, when, and why certain pings happen even when you’ve done nothing. The previous post about 900 daily background pings gave the macro view. This is the microscope view: what one quiet hour of background traffic actually looks like when you break it down packet by packet.

The 3am check-in pattern

Between 3:17am and 4:17am, my Pixel 6 (running stock Android 14, no custom ROM) made contact with Google servers 47 times. Not Samsung’s servers, not app developers. Google Play Services, specifically.

The pattern breaks into three categories. First, there are the regular health checks: pings every 4.5 minutes to https://android.clients.google.com/checkin. These send your Android ID, a timestamp, and basic device state (battery level, whether the screen is on, network type). This happens whether you opened an app recently or not.

Second, there are the Firebase Cloud Messaging (FCM) keepalive pings. Firebase is one of the most common tracking SDKs we find when analyzing how tracker detection works at the bytecode level. Even with no notifications pending, FCM maintains an open socket and sends tiny heartbeat packets every 15 to 28 minutes. The interval varies based on battery state and network conditions. These don’t carry message content, but they do confirm your device is reachable and update Google’s routing tables.

Third, there are the mysterious “configuration sync” requests. These happened 11 times in my hour. They fetch updated configs for Google Play Services modules. The response payload is encrypted, but the request headers reveal which modules are checking in: SafetyNet attestation configs, location services parameters, ad personalization settings.

What the timestamps reveal

Every ping includes a precise timestamp. Not just when you sent it, but when the phone thinks it sent the last similar ping. This creates a movement diary.

If Google sees a checkin ping at 3:22am that says “my last checkin was 4 minutes ago,” but their server logged your previous checkin at 11:47pm the night before, they know something interesting happened. You either enabled flight mode, switched networks, or restarted the phone. The gap between client-reported intervals and server-logged intervals is a behavioral signature.

This matters because correlation across devices in the same household can reveal patterns. If two devices in the same home both show 4-hour gaps in their ping patterns at the same time, an algorithm can infer the household’s WiFi router rebooted or the home lost power. If only one device shows the gap, maybe that device traveled.

Paranoid? Consider that Google’s data centers already correlate device pings to build “network quality maps” for their services. Our research data from 3,745 analyzed apps shows just how pervasive Google’s tracking infrastructure is across the Play Store. The same correlation infrastructure can answer other questions if the business model shifts or a government comes asking.

The battery level leak

Each checkin ping from Google Play Services includes your current battery percentage. Not rounded to the nearest 10%. Exact percentage.

At 3:17am, my phone reported 67% battery. At 3:54am, it reported 64%. At 4:17am, it reported 63%. From this, Google knows I have my phone on a charger that’s either slow-charging or the phone is still running background tasks. They know I’m probably asleep (stationary device, no screen-on events). They know my charging habits.

Over months, battery drain patterns reveal app usage even when the apps don’t ping. If your battery drops 8% between midnight and 1am three nights a week, something is running. Google can see this in aggregate across all Play Services devices. They don’t need to ask the app what it’s doing. The battery telemetry implies it.

The silent SafetyNet attestations

Six of the 47 pings were SafetyNet API calls. None of my apps were open. I didn’t trigger them.

SafetyNet is Google’s device integrity API. Apps call it to check if your phone is rooted or running a custom ROM. But Google Play Services itself also runs periodic attestations in the background, probably to update some internal trust score for your device.

Each attestation request includes a nonce (a unique random number) and returns a signed JSON Web Token (JWT). The JWT contains a verdict: BASIC_INTEGRITY passed or failed, CTS_PROFILE_MATCH true or false. The token is signed by Google’s servers, not generated locally, which means every attestation involves sending device state to Google and waiting for a verdict.

The background attestations happened at irregular intervals: 3:29am, 3:41am, 3:52am, 4:03am, 4:11am, 4:16am. Not every 15 minutes, not random. Something triggered them, but I don’t know what. My theory: Play Services was checking whether I’d tampered with system files or installed a new app from an unknown source while the screen was off (I hadn’t).

What you can do about it

You can’t disable Google Play Services entirely without breaking most apps. You can reduce the ping volume by disabling specific permissions: revoke background location access, turn off “Google location accuracy,” disable ad personalization in Google account settings.

You can also switch to a de-Googled Android ROM like GrapheneOS or LineageOS without Play Services, but that’s extreme and breaks banking apps, some transit passes, and anything that depends on SafetyNet. A less drastic first step is scanning the apps you use most. For example, WhatsApp’s tracker scan results and Instagram’s scan results reveal how much data these popular apps collect beyond their core function.

The middle ground is network-level blocking: use a VPN or DNS filter (like NextDNS or AdGuard) to log and selectively block Google domains. You’ll see which pings are essential and which are just telemetry. Play Services will retry failed connections, so you’ll get duplicate attempts, but at least you’ll know what it’s asking for.

The honest answer is that as long as you run stock Android with Play Services, the 3am pings will continue. The question is whether you’re okay with that trade-off: convenience and app compatibility in exchange for letting Google know your battery level, network state, and device integrity status every few minutes, even while you sleep.

Ich ließ mein Android-Handy um 3 Uhr nachts am Ladegerät mit allen geschlossenen Apps. Bildschirm aus. Nicht stören aktiviert. Flugmodus deaktiviert, aber mobile Daten ausgeschaltet, WLAN an. Eine Stunde später prüfte ich die Netzwerk-Logs.

47 Verbindungen. Nicht zu meinen Apps. Zu Google.

Die meisten Leute wissen, dass ihre Handys ständig “nach Hause telefonieren”. Was sie nicht wissen, ist die Präzision dessen, was gesendet wird, wann und warum bestimmte Pings passieren, selbst wenn du nichts getan hast. Der vorherige Post über 900 tägliche Pings gab die Makro-Perspektive. Dies ist die Mikroskop-Ansicht: Wie eine ruhige Stunde Hintergrundverkehr tatsächlich aussieht, wenn du sie Paket für Paket aufschlüsselst.

Das 3-Uhr-Check-in-Muster

Zwischen 3:17 Uhr und 4:17 Uhr nahm mein Pixel 6 (mit Standard-Android 14, keine Custom ROM) 47-mal Kontakt mit Google-Servern auf. Nicht zu Samsungs Servern, nicht zu App-Entwicklern. Zu Google Play Services, genauer gesagt.

Das Muster lässt sich in drei Kategorien einteilen. Erstens gibt es die regelmäßigen Integritätsprüfungen: Pings alle 4,5 Minuten an https://android.clients.google.com/checkin. Diese senden deine Android-ID, einen Zeitstempel und grundlegenden Gerätezustand (Akkustand, ob der Bildschirm an ist, Netzwerktyp). Das passiert, egal ob du kürzlich eine App geöffnet hast oder nicht.

Zweitens gibt es die Firebase Cloud Messaging (FCM) Keepalive-Pings. Selbst ohne ausstehende Benachrichtigungen hält FCM einen offenen Socket aufrecht und sendet alle 15 bis 28 Minuten winzige Heartbeat-Pakete. Das Intervall variiert je nach Akkuzustand und Netzwerkbedingungen. Diese übertragen keine Nachrichteninhalte, aber sie bestätigen, dass dein Gerät erreichbar ist, und aktualisieren Googles Routing-Tabellen.

Drittens gibt es die mysteriösen “Konfigurations-Sync”-Anfragen. Diese passierten 11-mal in meiner Stunde. Sie holen aktualisierte Konfigurationen für Google Play Services Module ab. Die Antwort-Payload ist verschlüsselt, aber die Request-Header verraten, welche Module sich melden: SafetyNet-Attestierungs-Configs, Standortdienst-Parameter, Anzeigenpersonalisierungs-Einstellungen.

Was die Zeitstempel enthüllen

Jeder Ping enthält einen präzisen Zeitstempel. Nicht nur, wann du ihn gesendet hast, sondern wann das Handy denkt, dass es den letzten ähnlichen Ping gesendet hat. Das erstellt ein Bewegungstagebuch.

Wenn Google um 3:22 Uhr einen Checkin-Ping sieht, der sagt “mein letzter Checkin war vor 4 Minuten”, ihr Server aber deinen vorherigen Checkin um 23:47 Uhr am Vorabend protokolliert hat, wissen sie, dass etwas Interessantes passiert ist. Du hast entweder den Flugmodus aktiviert, das Netzwerk gewechselt oder das Handy neu gestartet. Die Lücke zwischen vom Client gemeldeten Intervallen und vom Server protokollierten Intervallen ist eine Verhaltenssignatur.

Das ist wichtig, weil Korrelation zwischen Geräten im selben Haushalt Muster offenbaren kann. Wenn zwei Geräte im selben Zuhause beide 4-Stunden-Lücken in ihren Ping-Mustern zur gleichen Zeit zeigen, kann ein Algorithmus ableiten, dass der WLAN-Router des Haushalts neu gestartet wurde oder das Haus den Strom verloren hat. Wenn nur ein Gerät die Lücke zeigt, ist dieses Gerät vielleicht gereist.

Paranoid? Bedenke, dass Googles Rechenzentren bereits Geräte-Pings korrelieren, um “Netzwerkqualitätskarten” für ihre Dienste zu erstellen. Dieselbe Korrelations-Infrastruktur kann andere Fragen beantworten, wenn sich das Geschäftsmodell ändert oder eine Regierung nachfragt.

Das Akkustand-Leak

Jeder Checkin-Ping von Google Play Services enthält deinen aktuellen Akkuprozentsatz. Nicht auf die nächsten 10% gerundet. Exakter Prozentsatz.

Um 3:17 Uhr meldete mein Handy 67% Akku. Um 3:54 Uhr meldete es 64%. Um 4:17 Uhr meldete es 63%. Daraus weiß Google, dass ich mein Handy an einem Ladegerät habe, das entweder langsam lädt oder das Handy noch Hintergrundaufgaben ausführt. Sie wissen, dass ich wahrscheinlich schlafe (stationäres Gerät, keine Bildschirm-an-Ereignisse). Sie kennen meine Ladegewohnheiten.

Über Monate hinweg enthüllen Akkuentladungsmuster App-Nutzung, selbst wenn die Apps nicht pingen. Wenn dein Akku drei Nächte pro Woche zwischen Mitternacht und 1 Uhr um 8% sinkt, läuft etwas. Google kann dies aggregiert über alle Play Services Geräte sehen. Sie müssen die App nicht fragen, was sie tut. Die Akku-Telemetrie impliziert es.

Die stillen SafetyNet-Attestierungen

Sechs der 47 Pings waren SafetyNet API Aufrufe. Keine meiner Apps waren offen. Ich hatte sie nicht ausgelöst.

SafetyNet ist Googles Geräteintegritäts-API. Apps rufen sie auf, um zu prüfen, ob dein Handy gerootet ist oder eine Custom ROM läuft. Aber Google Play Services selbst führt auch regelmäßige Attestierungen im Hintergrund aus, wahrscheinlich um einen internen Vertrauens-Score für dein Gerät zu aktualisieren.

Jede Attestierungs-Anfrage enthält eine Nonce (eine eindeutige Zufallszahl) und gibt ein signiertes JSON Web Token (JWT) zurück. Das JWT enthält ein Urteil: BASIC_INTEGRITY bestanden oder nicht bestanden, CTS_PROFILE_MATCH wahr oder falsch. Das Token wird von Googles Servern signiert, nicht lokal generiert, was bedeutet, dass jede Attestierung das Senden von Gerätezustand an Google und das Warten auf ein Urteil beinhaltet.

Die Hintergrund-Attestierungen passierten in unregelmäßigen Abständen: 3:29 Uhr, 3:41 Uhr, 3:52 Uhr, 4:03 Uhr, 4:11 Uhr, 4:16 Uhr. Nicht alle 15 Minuten, nicht zufällig. Etwas löste sie aus, aber ich weiß nicht was. Meine Theorie: Play Services prüfte, ob ich Systemdateien manipuliert oder eine neue App aus unbekannter Quelle installiert hatte, während der Bildschirm aus war (hatte ich nicht).

Was du dagegen tun kannst

Du kannst Google Play Services nicht komplett deaktivieren, ohne die meisten Apps zu zerstören. Du kannst das Ping-Volumen reduzieren, indem du bestimmte Berechtigungen deaktivierst: Widerrufe Hintergrund-Standortzugriff, schalte “Google-Standortgenauigkeit” aus, deaktiviere Anzeigenpersonalisierung in den Google-Kontoeinstellungen.

Du kannst auch zu einer entgoogelten Android-ROM wie GrapheneOS oder LineageOS ohne Play Services wechseln, aber das ist extrem und zerstört Banking-Apps, manche Fahrscheine und alles, was von SafetyNet abhängt.

Der Mittelweg ist Blockieren auf Netzwerkebene: Nutze ein VPN oder einen DNS-Filter (wie NextDNS oder AdGuard), um Google-Domains zu protokollieren und selektiv zu blockieren. Du wirst sehen, welche Pings essenziell sind und welche nur Telemetrie. Play Services wird fehlgeschlagene Verbindungen wiederholen, also bekommst du doppelte Versuche, aber wenigstens weißt du, wonach es fragt.

Die ehrliche Antwort ist, dass die 3-Uhr-Pings weitergehen, solange du Standard-Android mit Play Services nutzt. Die Frage ist, ob du mit diesem Trade-off einverstanden bist: Bequemlichkeit und App-Kompatibilität im Austausch dafür, Google alle paar Minuten deinen Akkustand, Netzwerkzustand und Geräteintegritätsstatus wissen zu lassen, selbst während du schläfst.