A local-first encrypted vault for Android.
EDVO stores sensitive notes and assets in an encrypted local vault. There is no sync backend and vault contents remain on the device unless the user explicitly exports an encrypted backup.
- AES-256-GCM encryption with password-derived keys.
- Biometric unlock backed by the Android Keystore.
- Encrypted asset titles and content.
- Automatic titles when a new asset is saved without one.
- Versioned encrypted backups with support for existing v1 backups.
- Master-password rotation with vault re-encryption.
- Password, passphrase, and username generators.
- Local session locking, panic wipe, and secure editor controls.
The current Android release is 0.6.0 (versionCode 7).
Download the latest release or read the changelog.
- Android 7.0 or newer (
minSdk 24). - Existing app data is migrated in place.
- Backups created by the previous v1 format remain importable.
- New backups use the v2 format and cannot be restored by older app versions.
EDVO uses Kotlin Multiplatform and Compose Multiplatform with a shared presentation and domain layer.
composeApp/src/
├── commonMain/ Shared UI, domain logic, repositories and SQLDelight schema
├── androidMain/ Android crypto, biometrics, storage and application resources
├── androidUnitTest/ Security, migration, repository and system-flow tests
├── iosMain/ iOS platform implementations
└── jvmMain/ Desktop platform implementations
Core technologies:
- Kotlin 2.2.20
- Compose Multiplatform 1.9.1
- SQLDelight 2.0.2
- AndroidX Biometric
- Kotlin Coroutines and Flow
- Ktor 3.5.2
Requirements:
- JDK 17 or newer
- Android SDK 36
./gradlew :composeApp:assembleDebugThe debug APK is written to composeApp/build/outputs/apk/debug/.
./gradlew :composeApp:testDebugUnitTest
./gradlew :composeApp:lintDebug
./gradlew :composeApp:assembleReleaseRelease signing reads local credentials from composeApp/keystore.properties. Do not commit signing credentials or private keys.
| Platform | Status |
|---|---|
| Android | Primary platform; release tested |
| Desktop/JVM | Experimental |
| iOS | Source available; release build not currently verified |
EDVO is designed to keep vault data local and encrypted. It has not undergone an independent security audit. Review the implementation and threat model before relying on it for high-risk secrets.
Please report security issues privately to the repository owner rather than opening a public issue.
Licensed under the MIT License.
