Skip to content

disk0Dancer/Wolle

Wolle - NFC Card Emulator

Latest Release License Android

📲 Установка | Installation

Через Obtainium (Рекомендуется | Recommended) 🚀

Get it on Obtainium

Что такое Obtainium? | What is Obtainium?

Obtainium - это приложение для автоматического отслеживания и установки обновлений open-source приложений напрямую из GitHub. | Obtainium is an app for automatically tracking and installing updates of open-source apps directly from GitHub.

Как установить | How to install:

  1. Установите Obtainium
  2. Нажмите на значок выше или добавьте вручную: https://github.com/disk0Dancer/Wolle
  3. Obtainium автоматически установит приложение и будет следить за обновлениями

Прямая установка APK | Direct APK Installation

📥 Скачать последнюю версию | Download Latest Version

  1. Скачайте .apk файл из Releases
  2. Включите "Установка из неизвестных источников" в настройках Android
  3. Установите APK файл

Обзор | Overview

Русский: NFC Card Emulator - это современное Android приложение для эмуляции NFC карт. Приложение позволяет считывать физические NFC карты и оцифровывать их, чтобы терминалы не видели разницы между физической и виртуальной картой.

English: NFC Card Emulator is a modern Android application for emulating NFC cards. The app allows you to read physical NFC cards and digitize them so terminals cannot detect the difference between physical and virtual cards.

✨ Основные возможности | Key Features

  • 📱 Простой UI | Simple, intuitive user interface
  • 🔄 Слайдер карт | Card slider for quick selection
  • 📡 HCE эмуляция | Host Card Emulation for terminal compatibility
  • 🔒 Безопасность | Encrypted storage with biometric protection
  • 🎨 Material Design 3 | Modern Android design with dynamic theming
  • 🏠 Виджеты | Home screen widgets for instant card access
  • Быстро и удобно | Fast, convenient, and easy to use

🏗️ Архитектура | Architecture

Приложение построено на современном Android стеке с использованием лучших практик:

  • Язык | Language: Kotlin 1.9+
  • UI: Jetpack Compose
  • Архитектура | Architecture: MVVM (Model-View-ViewModel)
  • DI: Hilt
  • Database: Room
  • Async: Kotlin Coroutines + Flow
  • Min SDK: Android 8.0 (API 26)
  • Target SDK: Android 14 (API 34)

📚 Документация | Documentation

Полная документация проекта доступна в директории /docs:

Архитектура | Architecture

  • C4 Model - Архитектурная модель системы (Context, Container, Component, Code)

Требования | Requirements

  • Functional Requirements - Функциональные требования к приложению
  • Non-Functional Requirements - Нефункциональные требования (производительность, безопасность, надежность)
  • User Scenarios - Сценарии использования и пользовательские истории

Руководства | Guides

  • Project Setup - Инструкция по настройке проекта для разработчиков
  • Coding Style Guide - Стандарты кодирования и best practices

Планирование | Planning

  • Development Roadmap - Детальный план разработки по спринтам и задачам

🎯 Текущий статус разработки | Current Development Status

Sprint 1 (Foundation & Core Infrastructure) - ✅ ЗАВЕРШЕН | COMPLETED

Реализованные компоненты | Implemented Components:

  • ✅ Многомодульная архитектура (app, data, domain, presentation)
  • ✅ Настройка Gradle с Kotlin DSL и version catalogs
  • ✅ Room база данных с шифрованием ByteArray
  • ✅ Полная реализация Repository pattern
  • ✅ Hilt dependency injection модули
  • ✅ Шифрование AES-256-GCM через Android Keystore
  • ✅ Безопасное хранилище для настроек приложения
  • ✅ Unit тесты для слоя мапперов

Sprint 2 (NFC Card Reading) - ✅ ЗАВЕРШЕН | COMPLETED

Реализованные компоненты | Implemented Components:

  • ✅ NFC Reader Service с поддержкой всех типов карт (ISO-DEP, MIFARE, NFC-A/B/F/V)
  • ✅ Экран сканирования карт с Material Design 3
  • ✅ Горизонтальный слайдер карт
  • ✅ Сохранение и управление картами
  • ✅ Use cases для работы с картами
  • ✅ ViewModels для сканирования и списка карт
  • ✅ Foreground NFC dispatch в MainActivity

Sprint 3 (UI/Card Management) - ✅ ЗАВЕРШЕН | COMPLETED

Реализованные компоненты | Implemented Components:

  • ✅ Полноценный UI для управления картами
  • ✅ Экраны списка карт и сканирования
  • ✅ Material Design 3 компоненты
  • ✅ Навигация между экранами

Sprint 4 (HCE Emulation) - ✅ ЗАВЕРШЕН | COMPLETED

Реализованные компоненты | Implemented Components:

  • ✅ NfcEmulatorService для эмуляции карт
  • ✅ Обработка APDU команд (SELECT, READ BINARY, GET DATA)
  • ✅ Эмуляция UID, ATS и исторических байтов
  • ✅ Сохранение выбранной карты в SecureStorage
  • ✅ Обновление статистики использования
  • ✅ Комплексный набор тестов (30+ тест кейсов)

Следующий этап | Next Phase: Sprint 5 - Финальная полировка и релиз

🚀 Быстрый старт | Quick Start

Требования | Prerequisites

  • Android Studio Hedgehog (2023.1.1) или новее
  • JDK 17
  • Android устройство с NFC (для тестирования)

Установка | Installation

# Клонировать репозиторий | Clone repository
git clone https://github.com/disk0Dancer/Wolle.git
cd Wolle

# Установить git хуки (опционально) | Setup git hooks (optional)
./.githooks/setup.sh

# Открыть в Android Studio | Open in Android Studio
# File > Open > Select project directory

# Собрать проект | Build project
./gradlew build

# Запустить на устройстве | Run on device
./gradlew installDebug

Подробная инструкция: Project Setup Guide

🎯 Сценарии использования | Use Cases

  1. Сканирование карты | Card Scanning

    • Откройте приложение и нажмите "Добавить карту"
    • Поднесите физическую NFC карту к телефону
    • Назовите карту и сохраните
  2. Эмуляция карты | Card Emulation

    • Выберите карту в слайдере
    • Поднесите телефон к терминалу
    • Терминал прочитает виртуальную карту
  3. Управление картами | Card Management

    • Просматривайте все сохраненные карты
    • Переименовывайте и настраивайте карты
    • Удаляйте ненужные карты

Больше сценариев: User Scenarios

🔐 Безопасность | Security

  • ✅ Шифрование всех данных карт (AES-256)
  • ✅ Хранение ключей в Android Keystore
  • ✅ Биометрическая аутентификация (опционально)
  • ✅ Работает без доступа к интернету
  • ✅ Открытый исходный код

🛠️ Технологический стек | Tech Stack

Core

  • Kotlin 1.9.20+
  • Gradle 8.2+ с Kotlin DSL
  • Android SDK 26-34

UI

  • Jetpack Compose - Современный декларативный UI
  • Material Design 3 - Актуальные компоненты дизайна
  • Navigation Component - Навигация между экранами

Architecture

  • Hilt - Dependency Injection
  • Room - Локальная база данных
  • Coroutines & Flow - Асинхронность
  • ViewModel - Управление состоянием UI

Security

  • EncryptedSharedPreferences - Безопасное хранение настроек
  • Biometric API - Биометрическая аутентификация
  • ProGuard/R8 - Обфускация кода

Testing

  • JUnit 5 - Unit тесты
  • MockK - Мокирование
  • Espresso - UI тесты
  • Compose UI Test - Тесты Compose

Code Quality

  • ktlint - Форматирование кода
  • Detekt - Статический анализ
  • JaCoCo - Покрытие кода

DevOps & CI/CD

  • GitHub Actions - Автоматическая сборка и тестирование
  • Dependabot - Автоматическое обновление зависимостей
  • Auto-labeling - Автоматическая маркировка PR
  • Экономичная конфигурация - Оптимизировано для бесплатного tier GitHub Actions
  • См. DevOps Documentation для деталей

🤝 Вклад в проект | Contributing

Мы приветствуем вклад в проект! Перед началом работы:

  1. Прочитайте Contributing Guide - полное руководство по участию
  2. Ознакомьтесь с Coding Style Guide
  3. Изучите Architecture
  4. Создайте feature branch
  5. Напишите тесты для ваших изменений
  6. Отправьте Pull Request

Стандарты | Standards

  • Все коммиты следуют Conventional Commits
  • Код должен проходить ktlint проверку
  • Unit тесты с покрытием ≥80%
  • Документация для публичных API
  • CI/CD проверки должны пройти успешно

📋 Roadmap

v1.0 (MVP)

  • Архитектура и документация
  • Базовая инфраструктура проекта
  • Настройка БД (Room) с шифрованием
  • Система безопасности (AES-256, Keystore)
  • Модульная архитектура (Clean Architecture)
  • Сканирование NFC карт
  • HCE эмуляция (Host Card Emulation)
  • Управление картами
  • Базовый UI с Material Design 3
  • Комплексный набор Unit тестов

v1.1

  • Биометрическая аутентификация
  • История транзакций
  • Расширенная кастомизация карт
  • Улучшенная обработка ошибок

v2.0

  • Локальное резервное копирование (экспорт/импорт файлов)
  • Расширенная фильтрация и поиск карт
  • Виджеты на главный экран
  • Темы оформления
  • Поддержка планшетов

См. V2_FEATURES.md для деталей реализации v2.0 функций.

📄 Лицензия | License

Этот проект распространяется под лицензией BSD 3-Clause License. См. LICENSE для деталей.

Copyright (c) 2025, Grigorii Churakov

⚠️ Дисклеймер | Disclaimer

Важно | Important:

Это приложение предназначено для легального использования с вашими собственными картами. Пользователи несут ответственность за соблюдение местных законов и правил использования NFC карт.

НЕ используйте для:

  • Клонирования платежных карт (кредитных, дебетовых)
  • Несанкционированного доступа
  • Мошенничества

DO NOT use for:

  • Cloning payment cards (credit, debit)
  • Unauthorized access
  • Fraud

Разработчики не несут ответственности за неправомерное использование приложения.

🔗 Ссылки | Links

📧 Контакты | Contact


Сделано с ❤️ для удобства использования NFC карт | Made with ❤️ for convenient NFC card usage

About

android app for life automations with nfc cards

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 5