VeraCrypt-compatible encrypted vault manager for Android
Website · Docs · Privacy Policy
Cryptography
- 🔐 Full VeraCrypt container compatibility — open containers created on desktop (Windows, macOS, Linux)
- 🔒 15 cipher configurations: AES, Serpent, Twofish, Camellia, Kuznyechik and all cascade combinations
- #️⃣ 5 PRF algorithms: SHA-512, SHA-256, Whirlpool, Streebog, BLAKE2s-256
- 🗝️ Keyfile support with pool-based derivation matching VeraCrypt's implementation
- 🔢 PIM (Personal Iterations Multiplier) support
Privacy
- 🫥 Hidden volumes for plausible deniability
- 🧮 Calculator disguise — app appears as a plain calculator on the home screen
- 🚨 Panic PIN — instantly triggers configurable wipe (containers, files, app data)
- 🔏 Auto-lock with configurable delay
- 🌐 No network permission — 100% offline, zero telemetry
Vault access
- 👆 Biometric unlock per vault (hardware-backed key binding)
- ⏱️ Per-vault auto-unmount on screen lock or background
In-vault browsing
- 🖼️ Encrypted gallery with image and video viewer
- 🎵 Audio player with waveform and dominant-color theming
- 📂 Full file manager (create, rename, delete, move files and directories)
UI
- 🎨 AMOLED Glass theme — frosted-glass system bars and dialogs on pure black
- 🌙 Dynamic Color (Material You) support
- 📱 Edge-to-edge, Android 10+
Arcanum is built directly on VeraCrypt's cryptographic C sources — the same AES, XTS, PBKDF2, and cascade cipher implementations used in the desktop application. Containers created in Arcanum open in VeraCrypt on desktop and vice versa, with no conversion or export needed.
The PIN is protected with Argon2id (t=2, m=64 MB, p=1) rather than a simple hash. A panic PIN and a disguise mode are included as first-class features, not afterthoughts.
git clone https://github.com/Esdex/Arcanum.git
cd Arcanum
./gradlew assembleFdroidReleaseRequirements:
- Android Studio (with JBR — set
org.gradle.java.homein~/.gradle/gradle.properties) - Android NDK r28+
- CMake 3.22.1+
- Min SDK 29 / Target SDK 36
The fdroid flavor builds with all features unlocked and no billing dependency. The playstore flavor includes Google Play Billing for the freemium tier.
| Layer | Technology |
|---|---|
| UI | Kotlin + Jetpack Compose (Material 3) |
| Navigation | Navigation Compose, single-Activity |
| Crypto core | C++/NDK — VeraCrypt's cipher sources via JNI bridge |
| File system | FatFs (FAT32/exFAT) + a clean-room ext4 driver, inside containers |
| Local storage | Room (container metadata), EncryptedSharedPreferences (PIN hashes) |
| DI | Hilt |
| Media | ExoPlayer / Media3 |
| Network | None — INTERNET permission is not declared |
The app presents itself as a calculator. Entering the correct PIN navigates to the authenticated vault home. A panic PIN triggers PanicManager, which executes a background wipe before navigation completes, equalizing the response time between both paths.
For a deeper dive, see the architecture section in the docs.
The codebase has been reviewed using AI-assisted security analysis across multiple passes. Reports are published in /audits.
Reporting a vulnerability: Please use GitHub Security Advisories to report security issues privately. Do not open a public issue for vulnerabilities.
Contributions are welcome for bug fixes and non-cryptographic improvements (UI, translations, documentation, gallery/file manager features). For changes touching the crypto layer, JNI bridge, PIN/panic logic, or any other security-critical path, please open an issue first to discuss the approach.
- Run
./gradlew lintbefore submitting - Native code changes must build cleanly for both
arm64-v8aandarmeabi-v7a - The
fdroidflavor must remain free of any Google Play Services dependency
If Arcanum is useful to you, you can support its development:
Bitcoin
bc1qk3pjpxfzafpc56924m8hnyewcgmutchwrg4v2p
Bitcoin Lightning
esdex@cake.cash
Ethereum
0xDc4B00d937e4a9633d37d70dDF56E8370f44E0f8
Monero
83xHcG9NNzLhsYQ9QoMcX2EFCwEPT1rSSa4EPgDMG3PqQEXVZ1vgaTtAq9x4zETjkRRK7CiH6giHshTLUJHTD4mCRBbt42s
Solana / USDT / USDC
GJgu5VqmEfxfQQbRpp9CDcYUxjsjUPJpHsCfyjRQGGSX
Copyright 2026 Esdex
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
The cryptographic core (app/src/main/cpp/veracrypt/) incorporates source code from VeraCrypt, also licensed under Apache 2.0.
- VeraCrypt — AES, Serpent, Twofish, Camellia, Kuznyechik, SHA-2, Whirlpool, Streebog, BLAKE2s, XTS mode implementation
- FatFs — FAT32/exFAT file system layer for in-container access
- ExoPlayer / Media3 — media playback inside encrypted containers
- Haze — frosted-glass UI effects
- BouncyCastle — Argon2id PIN key derivation
- AboutLibraries — open-source license screen






