Skip to content

Can I trust X?

unTRUSTED 82 Android Version 12.15.2-release.0 (Play Store) / 11.79.0-release.0 (APK man… Scanned build downloaded: Store version released: Last checked: com.twitter.android Scanned

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

How the score and the label work

Open on Google PlayOpens the app's listing on Google Play in a new tab.

Full findings

Open this scan in your dashboard

The account that ran this scan sees every finding and the Rescan button there.

Trust checks

  • Secure by Design

    Items recorded, result pending review

    Security 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 met

    Tracking 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 open

    Disclosure 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

    Strong

    No 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

Libraries in the build of X
LibraryVersionAdvisory
ExoPlayer / media3not recordednone confirmed
Roomnot recordednone confirmed
Lottienot recordednone confirmed
Google Play Billingnot recordednone confirmed
Apollo GraphQLnot recordednone confirmed
Auth0not recordednone confirmed
Datadog RUMnot recordednone confirmed
Fresconot recordednone confirmed
Jacksonnot recordednone confirmed
Glidenot recordednone confirmed
Show all 41 libraries

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.