Can I trust X?
This app did not meet two or more trust checks, has a critical issue in one, or has a red flag.
- What it means for you
- Direct messages are end-to-end encrypted and excluded from device cloud backups. Camera frames captured during identity verification are processed on the device. The app includes code to pass usage and device data to Firebase Analytics, Google AdMob, Branch.io, and Datadog for analytics, advertising, and crash reporting.
- Main concern
- E2EE DM private key stored as plain Base64 in SharedPreferences, collapsing at-rest encryption
- The developer's description
- Welcome to X, your trusted digital town square, where conversations unfold in real time, and the world connects through breaking news, live events, podcasts, and everything in between.
- Third-party services
- 24
- Findings rated low or higher
- 11
Open on Google PlayOpens the app's listing on Google Play in a new tab.
Full findings
Open this scan in your dashboardThe account that ran this scan sees every finding and the Rescan button there.
Trust checks
Secure by Design
Items recorded, result pending reviewSecurity gaps detected
Why this result
This check looks for security issues at high severity or above in the code of this build, and at least one was recorded. Issues of this kind include a credential or token another app on the device can reach, sensitive data stored without protection, and network paths that expose information in transit.
Data Minimization
One criterion not metTracking lacks clear disclosure
Why this result
This build contains analytics or attribution code written to send data to companies other than the developer. No consent step was found before that code runs, and the app's disclosures do not describe the collection in full. Tracking by itself is ordinary; what this check reports is the combination of collection, recipient and absent disclosure.
Manifest Mismatch
An item rated high or above is openDisclosure incomplete or contradicted
Why this result
The check compares the app's privacy disclosures against what the code does, and at least one claim did not match in this build. Mismatches of this kind include a data category collected but not disclosed, a recipient the disclosure omits, and an identifier attached to data the disclosure describes as anonymous.
User Control
StrongNo lock-in
Why this result
The check looks for a way to export the data an account has accumulated and a way to delete the account itself. In this build, either both were found, or the app has no account of its own and keeps its data on the device. For an app without an account, the developer has no server-side copy to export or delete, and deleting the app removes the data in its own storage.
No proprietary data formats, artificial barriers to account deletion, or obstacles to switching services were detected in the app's code. Cloud backup is disabled for all app data domains, so removing the app from a device removes its locally stored data. No server-held data with no deletion or export path was found.
Red flags
The app's privacy declarations do not match its code
Why this result
The privacy declarations shipped in this build, or the ones on the store listing, state less than the code does. Declarations of this kind are what a store, a regulator and a person comparing two apps rely on.
Strengths
- All app data is excluded from cloud backup — even a compromised Google account cannot retrieve tokens, DM databases, or E2EE keys
- E2EE Direct Messages are encrypted using libsodium XChaCha20-Poly1305, the same cryptographic foundation as Signal and WhatsApp
- The build includes certificate pinning for Twitter and Periscope live video domains, intended to protect against rogue CA certificate attacks
- User OAuth credentials are stored in Android AccountManager with OS-level isolation, not plain SharedPreferences
- Multilayer root and tamper detection (RootBeer native + Play Integrity attestation) provides defense-in-depth
- SMS OTP auto-read is correctly scoped to extracted numeric code only — no raw SMS body access, no READ_SMS permission
- Camera frames during identity document capture are processed on-device by TFLite models — intermediate frames are not uploaded
- Installed app list from the 402-package manifest queries block is used in code for the share UI only, and no code to transmit it to remote servers was found
What the app contains
24 services
Third-party services the scan names in the build:
- Google AdMob
- Google Firebase Analytics
- Google Firebase Crashlytics
- Google Firebase Cloud Messaging
- Google Firebase Remote Config
- Google Firebase Installations
- Google Maps
- Google Play Billing
- Google ML Kit
- Google Play Integrity
- Datadog
- Chucker
- Plaid
- ScribeUp
- Stripe
- Socure (DocV + SigmaDevice)
- Pinwheel
- Castle SDK (Highwind)
- Sardine AI (MDI SDK)
- Juicebox SDK
- LiveKit
- Branch.io
- Auth0
- RootBeer
Libraries
| Library | Version | Advisory |
|---|---|---|
| ExoPlayer / media3 | not recorded | none confirmed |
| Room | not recorded | none confirmed |
| Lottie | not recorded | none confirmed |
| Google Play Billing | not recorded | none confirmed |
| Apollo GraphQL | not recorded | none confirmed |
| Auth0 | not recorded | none confirmed |
| Datadog RUM | not recorded | none confirmed |
| Fresco | not recorded | none confirmed |
| Jackson | not recorded | none confirmed |
| Glide | not recorded | none confirmed |
Show all 41 librariesShow fewer
Changes since the previous scan
- Version 12.15.2-release.0 (Play Store) / 11.79.0-release.0 (APK man…, score 82.
- Score 48 before, 82 after.
- Version 11.63.1-release.0 (versionCode: 311620000) before, 12.15.2-release.0 (Play Store) / 11.79.0-release.0 (APK man… after.
- Score change since version 11.63.1-release.0 (versionCode: 311620000): +34 points.
- Since the previous scan: 17 findings added, 15 removed.
- Version 11.63.1-release.0 (versionCode: 311620000), score 48.
- First public scan of this app.
Method and limits
Static analysis: the decompiled code, manifest and resources of this build, read file by file. Network traffic at run time is established by a capture of the running app.
- Build SHA-256
- b7940a7a95254b6a6d382c41234b1031bcb59b912d7bf6625423a8659d55e10c
- Rule pack
- citt-ruleset-2026-08-v1
- Files decompiled
- 107,467
- Scan date
- 13 August 2026
Corrections
No correction is published for this app.
Developer response
No response is published for this app.
Report an error Opens an email to [email protected] that names this app and this scan.