Can I trust Aegis Authenticator - 2FA App?
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
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
StrongStrong 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
StrongTracking 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
StrongEverything 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
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.
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
StrongStays 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
| Library | Version | Advisory |
|---|---|---|
| libimage_processing_util_jni | not recorded | none confirmed |
| libimage_processing_util_jni | not recorded | none confirmed |
| libimage_processing_util_jni | not recorded | none confirmed |
| libimage_processing_util_jni | not recorded | none confirmed |
| libsurface_util_jni | not recorded | none confirmed |
| libsurface_util_jni | not recorded | none confirmed |
| libsurface_util_jni | not recorded | none confirmed |
| libsurface_util_jni | not recorded | none confirmed |
| Room | not recorded | none confirmed |
| Glide | not recorded | none confirmed |
Show all 17 librariesShow fewer
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.