Skip to content

Repository files navigation

Arcanum logo

Arcanum

VeraCrypt-compatible encrypted vault manager for Android

License Platform Min SDK Kotlin

Website · Docs · Privacy Policy


Screenshots

Vault screen Hidden volumes Calculator disguise Panic mode Encrypted gallery


Features

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+

Why Arcanum

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.


Installation

Get it on F-Droid Get it on GitHub

Build from source

git clone https://github.com/Esdex/Arcanum.git
cd Arcanum
./gradlew assembleFdroidRelease

Requirements:

  • Android Studio (with JBR — set org.gradle.java.home in ~/.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.


Architecture

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.


Security

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.


Contributing

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 lint before submitting
  • Native code changes must build cleanly for both arm64-v8a and armeabi-v7a
  • The fdroid flavor must remain free of any Google Play Services dependency

Support

If Arcanum is useful to you, you can support its development:

GitHub Sponsors   Ko-fi

Crypto

Bitcoin

Bitcoin QR

bc1qk3pjpxfzafpc56924m8hnyewcgmutchwrg4v2p

Bitcoin Lightning

Lightning QR

esdex@cake.cash

Ethereum

Ethereum QR

0xDc4B00d937e4a9633d37d70dDF56E8370f44E0f8

Monero

Monero QR

83xHcG9NNzLhsYQ9QoMcX2EFCwEPT1rSSa4EPgDMG3PqQEXVZ1vgaTtAq9x4zETjkRRK7CiH6giHshTLUJHTD4mCRBbt42s

Solana / USDT / USDC

Solana QR

GJgu5VqmEfxfQQbRpp9CDcYUxjsjUPJpHsCfyjRQGGSX

License

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.


Acknowledgments

  • 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

About

Encrypted vault app for Android

Resources

Security policy

Stars

109 stars

Watchers

3 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages