App: Play Integrity Monitor
Developer: ByteBuddies
Last updated: 2026-05-19
Play Integrity Monitor does not collect personal information, does not have accounts, does not run advertising, and does not sell or share your data with third parties. The sections below explain precisely what data exists, where it goes, and how long it stays.
Play Integrity Monitor calls the Google Play Integrity API on your behalf to determine whether your device currently satisfies the criteria that Google Wallet and similar apps use when deciding to allow contactless payments. The result is displayed on your device and stored locally so you can see how it has changed over time.
All of the following lives exclusively in the app's private storage on your device. It is never shared with advertisers, analytics providers, or any service other than the app's own backend (described in section 3).
| What | Why | How long |
|---|---|---|
| Random install ID | A UUID generated at first launch, used to apply per-installation rate limits on the backend. It is not linked to your Google account, Android ID, or any other identifier. You can reset it by clearing app data. | Until you clear app data or uninstall |
| Check history | Timestamp, result status, trigger type, device integrity verdict flags, and the raw JSON response for each completed check | 90 days (older entries are deleted automatically) |
| App preferences | Auto-check on/off, check schedule times, notification preference, quota counters, last-check timestamps, and server config cache | Until you clear app data or uninstall |
The app does not store:
Each integrity check sends one HTTPS request to the app's backend server (integrity-autocheck-backend-*.run.app), which is operated by ByteBuddies on Google Cloud Run.
The request contains:
| Field | What it is |
|---|---|
| Encrypted Play Integrity token | An opaque token issued by Google's Play Integrity API. The backend sends it to Google for decoding; the raw token is not stored. |
| Request hash | A non-reversible hash of the request context. Used to bind the token to this specific request and detect replays. |
| Install ID | The random UUID described in section 2. |
| Trigger | What started the check (e.g., manual, periodic, boot). |
| Client timestamp | The time the check was initiated, used to verify token freshness. |
| App version | Version code and version name of Play Integrity Monitor. |
| Google Wallet version | Version of Google Wallet on your device, if installed. Sent as a diagnostic aid. |
| Play Services version | Version of Google Play Services on your device. |
| Play Store version | Version of Google Play Store on your device. |
The backend returns a compact decision (ready, likely_blocked, unknown, error) plus the verdict labels from the Play Integrity API. The backend does not return, and the app does not transmit, your Google account identity, location, contacts, or any personal identifiers beyond the install ID.
The backend uses Cloud Firestore to enforce per-installation rate limits. For each install ID it stores:
The backend does not store the raw integrity token, the full decrypted verdict payload, or any account identifiers. Aggregated operational metrics (request counts, decision distribution, error rates, latency) are logged without any per-install identifiers for capacity planning and quota management.
| Service | Purpose | Privacy information |
|---|---|---|
| Google Play Integrity API | Issues the encrypted integrity token that the backend decodes | Google Privacy Policy |
| Google Cloud Run | Hosts the app's backend | Google Cloud Privacy |
| Google Cloud Firestore | Stores rate-limit counters on the backend | Google Cloud Privacy |
The app does not use any advertising SDKs, crash-reporting services, analytics SDKs, or social login SDKs.
| Permission | Why it is needed |
|---|---|
INTERNET |
To reach the backend server and the Play Integrity API |
POST_NOTIFICATIONS |
To send you a local notification when your integrity status changes |
RECEIVE_BOOT_COMPLETED |
To schedule an integrity check shortly after the device boots |
SCHEDULE_EXACT_ALARM / USE_EXACT_ALARM |
To fire daily scheduled checks at the times you configure |
The app does not request permissions for location, contacts, camera, microphone, phone state, or storage.
This app is not directed at children under 13 and does not knowingly collect information from anyone under 13.
All communication between the app and the backend uses HTTPS with TLS. The backend validates package name, signing certificate, request hash, and token freshness before processing any request, rejecting replayed or tampered tokens.
If the data practices described above change materially, this document will be updated and the "Last updated" date at the top will be revised. For significant changes, a notice will be displayed in the app.
Questions or concerns about this privacy policy can be directed to the project repository:
https://github.com/ByteBuddiesGroup/play_integrity_autocheck