# Encrypted Archive (encrypted_archive) ## What This Is Кастомный архиватор на Rust с собственным бинарным форматом, предназначенный для защиты данных (текстов и APK-файлов) от распаковки стандартными утилитами. Архивация выполняется через CLI на Linux/macOS, деархивация — через Kotlin-приложение на Android-магнитоле (Qualcomm, Android 13) с fallback на shell-скрипт через busybox. ## Core Value Архив невозможно распаковать без знания формата — стандартные утилиты (7z, tar, unzip, binwalk) не распознают и не извлекают содержимое. ## Requirements ### Validated (None yet — ship to validate) ### Active - [ ] CLI-утилита на Rust для создания архивов (Linux/macOS) - [ ] Кастомный бинарный формат — не распознаётся стандартными архиваторами - [ ] Сжатие данных перед шифрованием - [ ] Шифрование AES-256 или ChaCha20 с зашитым ключом - [ ] Обфускация структуры формата (нестандартные magic bytes, перемешанные блоки, фейковые заголовки) - [ ] Упаковка нескольких файлов в один архив (тексты + APK) - [ ] Деархивация через Kotlin-код на Android 13 (основной путь) - [ ] Деархивация через shell-скрипт (busybox dd/xxd/openssl) как fallback - [ ] Целостность данных — распакованные файлы идентичны оригиналам - [ ] Базовые тесты: round-trip упаковка/распаковка ### Out of Scope - GUI-интерфейс для архиватора — только CLI - Поддержка Windows — архивация только Linux/macOS - Защита от опытных реверс-инженеров с IDA/Ghidra — целевая аудитория защиты: обычные пользователи - Потоковая архивация/деархивация — работаем с файлами целиком - Парольная защита — используется зашитый ключ ## Context - Целевое устройство: Android-магнитола на Qualcomm SoC, Android 13 - На магнитоле доступен busybox (dd, xxd, openssl и другие стандартные утилиты) - Kotlin-код деархивации будет интегрирован в Android-приложение на магнитоле - Shell-скрипт — запасной вариант деархивации, когда Kotlin-приложение недоступно - Данные: текстовые файлы и APK-файлы (от нескольких КБ до десятков МБ) - Формат должен быть достаточно простым, чтобы его можно было реализовать на shell (busybox) без внешних зависимостей - Ключ шифрования зашит в код деархиватора (Kotlin/shell) — не вводится пользователем - Модель: исключительно Opus 4.6 для всех агентов ## Constraints - **Язык архиватора**: Rust — производительность, безопасность памяти, кросс-компиляция - **Деархивация Kotlin**: Должна работать на Android 13 без native-библиотек (чистый JVM/Android SDK) - **Деархивация busybox**: Только стандартные команды busybox — dd, xxd, openssl, sh - **AI модель**: Только Opus 4.6 для всех агентов в процессе разработки - **Документация**: Использовать Context7 MCP для всех библиотек/фреймворков ## Key Decisions | Decision | Rationale | Outcome | |----------|-----------|---------| | Rust для CLI-архиватора | Безопасность памяти, скорость, хорошая экосистема крипто-библиотек | — Pending | | Кастомный бинарный формат | Стандартные форматы легко распознаются binwalk/file | — Pending | | AES/ChaCha20 + обфускация | Криптографическая надёжность + непрозрачность формата для обычных пользователей | — Pending | | Зашитый ключ (не пароль) | Упрощает UX на магнитоле, достаточно для защиты от обычных пользователей | — Pending | | Busybox shell как fallback | Работает везде на Android без дополнительных зависимостей | — Pending | --- *Last updated: 2026-02-24 after initialization*