Monica for Android
Android-клиент локального хранилища паролей Monica
Android 8.0+ · Jetpack Compose · MDBX / Bitwarden / KeePass · AutoFill · TOTP · WebDAV
Кратко
Monica for Android — нативный Android-клиент в экосистеме хранилища паролей Monica. Он следует принципу local-first и фокусируется на безопасном, контролируемом и восстанавливаемом управлении паролями на Android.
Ключевые возможности: Local Vault, интеграция Bitwarden, совместимость KeePass, AutoFill, TOTP, WebDAV.
Monica for Android — локальное хранилище паролей, объединяющее Bitwarden и KeePass. Основной акцент сделан на локальном хранении: приложение помогает управлять учетными записями, паролями, 2FA, приватными заметками и чувствительными вложениями на Android, а также поддерживает резервное копирование, восстановление и межплатформенную синхронизацию через WebDAV.
Текущий курс проекта: local-first, совместимость с Bitwarden, интеграция KeePass, полноценный переход на MDBX и Android 8.0+. Разработка сосредоточена на локальном зашифрованном vault, нативном AutoFill, TOTP, биометрии, Passkey, WebDAV backup/restore и управлении разными типами записей.
Для кого это ✅
Monica for Android подходит пользователям, которые:
- Хотят управлять паролями по модели local-first и не передавать ключевые учетные данные сторонним облачным сервисам.
- Используют Bitwarden, но также ведут данные KeePass (
.kdbx) и хотят единый вход для управления. - Нуждаются в AutoFill, биометрической разблокировке и управлении TOTP в повседневном использовании Android.
- Хотят применять собственную инфраструктуру WebDAV для резервного копирования и восстановления между устройствами, включая офлайн-сценарии или низкую задержку.
Текущие функции 🎯
Local Vault
- Создание, открытие и блокировка локального зашифрованного vault
- Local-first стратегия для снижения зависимости от внешних сервисов
- Поддержка MDBX и традиционных форматов зашифрованных баз данных
Интеграция нескольких экосистем
- Совместимость Bitwarden: синхронизация через Bitwarden API, импорт/экспорт и привязка аккаунта
- Совместимость KeePass: нативное чтение/запись файлов
.kdbx, импорт и миграция - Локальный формат MDBX: собственный вложенный зашифрованный формат базы данных Monica с историей версий и обнаружением конфликтов
Управление разными типами записей
- Базовый CRUD для логинов, защищенных заметок, банковских карт, документов, TOTP и других типов
- Хранение вложений для каждой записи
- Избранное, теги и классификация по папкам
Избранное и поиск
- Представления с приоритетом избранного
- Быстрый поиск по заголовку, домену и тегам
- Полнотекстовый поиск
TOTP и двухэтапная проверка
- Импорт через URI
otpauth:// - Импорт QR-кодов с камеры или из галереи
- Генерация кодов и обновление в реальном времени
Нативная интеграция Android
- AutoFill: системное заполнение учетных данных, совместимое с большинством приложений и браузеров
- Биометрия: Face ID / отпечаток через
BiometricPrompt - Passkey / Credential Provider: поддержка Passkey на Android 14+
- Фоновое резервное копирование: автоматический WebDAV backup по расписанию через
WorkManager
Резервное копирование и восстановление WebDAV
- Загрузка, скачивание и проверка целостности SHA-256
- Предпросмотр восстановления и выбор версии
- Проверка перед восстановлением
Текущий статус ⚡
- Проект активно разрабатывается и поддерживается
- Широкая поддержка устройств Android 8.0-15; некоторые новые функции, например Passkey, требуют Android 14+
Сведения для разработки 👨💻
Техническая архитектура
UI Layer (Compose)
→
ViewModel / ViewModel State
→
Repository Pattern
→
Room Database + Keystore + Biometric
→
Bitwarden API / KeePass Library / MDBX FFI
→
WebDAV / Encryption / SecurityОсновной стек ⚙️
- UI: Jetpack Compose + Material 3 + Navigation Compose
- Данные: Room (SQLite ORM) + DAO + Repository
- Состояние: ViewModel + Kotlin Flow + DataStore Preferences
- DI: Koin (запуск в
MonicaApplication) - Безопасность: Android Keystore, EncryptedSharedPreferences, BiometricPrompt
- Фоновые задачи: WorkManager (
AutoBackupWorkerдля автоматического WebDAV backup) - Сеть и протоколы: Retrofit + OkHttp (Bitwarden API), kotpass (KeePass), sardine-android (WebDAV)
- Асинхронность: Coroutines + Flow
- Сканирование: CameraX + ML Kit (QR-коды), Credentials API (Passkey)
Слои проекта 📁
takagi/ru/monica/ui: Compose-страницы и UI-компонентыtakagi/ru/monica/data: сущности Room, DAO, миграции базы данныхtakagi/ru/monica/repository: инкапсуляция и агрегирование доступа к даннымtakagi/ru/monica/security: шифрование, ключи и аутентификацияtakagi/ru/monica/bitwarden: Bitwarden API, шифрование, синхронизация и логика ViewModeltakagi/ru/monica/autofill: сервисы и сценарии AutoFilltakagi/ru/monica/passkey: интеграция Credential Provider для Android 14+takagi/ru/monica/workers: фоновые задачи, например автоматический WebDAV backup
Модель безопасности 🔐
- Шифрование: AES-256-GCM (аутентифицированное шифрование)
- Вывод ключа: PBKDF2-HMAC-SHA256 с большим числом итераций
- Локальная защита: хэш мастер-пароля и настройки безопасности управляются Android Keystore
- Сетевая граница: используется только для Bitwarden API sync, WebDAV backup/restore и обновления QR-кодов
Сборка и зависимости 📦
- JDK: 17+
- Android Studio: последняя стабильная версия
- Конфигурация:
compileSdk 35,targetSdk 34,minSdk 26 - Инструменты: AGP
8.6.0, Kotlin2.0.21, Compose BOM2026.03.00 - Версии: см.
gradle/libs.versions.tomlиapp/build.gradle
Быстрые команды
Сборка debug APK:
./gradlew :app:assembleDebugЗапуск unit-тестов:
./gradlew testAndroid instrumentation tests (нужно устройство или эмулятор):
./gradlew connectedAndroidTestДорожная карта 🚦
Приоритеты стабильной версии
- Базовые возможности MDBX Local Vault
- Импорт/синхронизация с Bitwarden
- Чтение/запись KeePass
.kdbx - Управление разными типами записей
- Android AutoFill
- TOTP и QR-коды
- WebDAV backup/restore
В процессе
- Улучшение биометрического опыта (Face / отпечаток)
- Проверка Passkey на реальных устройствах (Android 14+)
- Оптимизация офлайн-поиска
- Полная миграция и совместимость MDBX
Будущие возможности
- Больше облачных сервисов синхронизации (OneDrive, Google Drive и др.)
- Интеграция браузерного расширения
- Синхронизация данных с iOS-версией
- Продвинутое шифрование и аудит безопасности
- Виджеты и быстрый доступ
Благодарности 🙏
Дизайн, совместимость и часть функционального направления Monica вдохновлены и поддержаны следующими проектами:
- Keyguard - ориентир для UX и взаимодействия Android-менеджера паролей
- Bitwarden - важный ориентир по экосистеме open-source менеджеров паролей, модели vault и синхронизации
- KeePass - основа локального vault-подхода и совместимости с
.kdbx - Stratum Auth - ориентир по UX аутентификатора, иконкам и совместимости
Star History
Лицензия
Copyright (c) 2025 JoyinJoester
Monica for Android распространяется как open source по GNU General Public License v3.0.
Атрибуция сторонних иконок
- Проект включает иконки из Stratum Auth app (версия v1.4.0, каталоги icons / extraicons, GPL-3.0)
- Права на названия брендов и логотипы принадлежат их владельцам
