Files
android-encrypted-archiver/.planning/PROJECT.md
2026-02-24 22:36:56 +03:00

5.2 KiB
Raw Blame History

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