Skip to content

Can I trust Aegis Authenticator - 2FA App?

TRUSTED 95 Android Version 3.4.2 (versionCode 81) Scanned build downloaded: Store version released: Last checked: com.beemdevelopment.aegis Scanned

This scan is more than 90 days old.

This app cleared every trust check that applied to it, with no red flags.

Best for
General use with standard privacy expectations
What it means for you
The build may include code to pass usage data and device activity to the app developer and any integrated services. Review the category summary below for details.
Main concern
Android D2D device migration includes code to send unencrypted TOTP seeds in plaintext.
The developer's description
Free, open-source authenticator for managing 2FA tokens with encrypted offline storage, biometric unlock, and zero analytics. Imports from other apps and is fully transparent about its code and permissions.
Third-party services
14
Findings rated low or higher
3

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

    Strong

    Strong security foundation

    Why this result

    This check looks for security issues at high severity or above in the code of this build, and none were recorded. Its scope covers stored credentials, how the app protects data on the device, and how it protects data in transit.

    No critical or high security issues were found. The app uses industry-leading encryption (AES-256-GCM with unique random values per operation) and memory-hard password protection resistant to brute-force attacks. There is no internet connection capability, so data cannot be intercepted in transit. The one medium-severity issue only affects users who deliberately chose to store their vault without a password and then migrate to a new phone — a narrow edge case that does not reflect on the app's general security quality.

  • Data Minimization

    Strong

    Tracking done right

    Why this result

    The check looks at analytics and attribution code for companies other than the developer: the data it reads, the companies named in code as recipients, and whether a consent step runs before that code. In this build, either no such code was recorded, or a consent step runs before it and the app's own disclosures describe the collection.

    The app contains no analytics, advertising, or crash-reporting software of any kind. No usage data, device identifiers, or behavioral signals are collected. There is nothing to consent to because no tracking exists.

  • Manifest Mismatch

    Strong

    Everything visible

    Why this result

    The check compares the app's privacy disclosures against what the code does: the data categories collected, the companies named in code as their recipients, and the identifiers attached to each. The comparison covers the store listing, the in-app privacy text and any privacy manifest shipped in the build. Every claim compared matched the code here.

  • 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.

    All vault data lives entirely on the user's device. There is no server-side account, no cloud storage controlled by the developer, and no proprietary format that traps data. Users can export their vault at any time via standard file access, and uninstalling the app removes all data. There is no account to delete because the app does not create one.

  • Truly Local

    Strong

    Stays on the device

    Why this result

    This app presents itself as working offline or on the device alone. The check looks for any code written to send personal data to a server, including analytics, crash reporting and advertising code. None was recorded in this build.

    The app does not declare internet access, and the build contains no code to send data to any server. All authentication secrets, vault contents, and user data remain exclusively on the device. The only external URLs are standard links to the developer website and app store, opened in the system browser when the user taps them.

Strengths

  • This build contains code for this item; what that code does at run time was not observed.
  • FLAG_SECURE applied to all activities by default — prevents screenshots of TOTP codes
  • AES-256-GCM with random IV per encryption operation — no fixed or reused IVs
  • Memory-hard KDFs (Argon2 for new vaults, scrypt for legacy) — resists GPU/ASIC brute-force
  • Zero analytics or telemetry SDKs — no Firebase, Crashlytics, Sentry, or similar
  • BiometricSlot keys excluded from all backups — hardware-bound Keystore keys never exported
  • Android backup is opt-in and defaults to false
  • Cache directory wiped at every app launch
  • Scoped package queries — uses explicit <queries> block instead of QUERY_ALL_PACKAGES
  • FileProvider restricted to cache/export/ path with exported=false

What the app contains

  • 14 services

    Third-party services the scan names in the build:

    • BouncyCastle
    • Dagger Hilt
    • Glide
    • ZXing
    • libsuperuser (libsu)
    • Zxcvbn (nulabinc)
    • GuardianProject TrustedIntents
    • AboutLibraries
    • FastAdapter
    • AndroidSVG
    • SimpleFlatMapper
    • AndroidX CameraX
    • AndroidX Room
    • AndroidX Biometric

Libraries

Libraries in the build of Aegis Authenticator - 2FA App
LibraryVersionAdvisory
libimage_processing_util_jninot recordednone confirmed
libimage_processing_util_jninot recordednone confirmed
libimage_processing_util_jninot recordednone confirmed
libimage_processing_util_jninot recordednone confirmed
libsurface_util_jninot recordednone confirmed
libsurface_util_jninot recordednone confirmed
libsurface_util_jninot recordednone confirmed
libsurface_util_jninot recordednone confirmed
Roomnot recordednone confirmed
Glidenot recordednone confirmed
Show all 17 libraries

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.

Files decompiled
3,056
Scan date
26 June 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.