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

69 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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*