docs: start milestone v1.1 Directory Support
This commit is contained in:
@@ -8,24 +8,40 @@
|
|||||||
|
|
||||||
Архив невозможно распаковать без знания формата — стандартные утилиты (7z, tar, unzip, binwalk) не распознают и не извлекают содержимое.
|
Архив невозможно распаковать без знания формата — стандартные утилиты (7z, tar, unzip, binwalk) не распознают и не извлекают содержимое.
|
||||||
|
|
||||||
|
## Current Milestone: v1.1 Directory Support
|
||||||
|
|
||||||
|
**Goal:** Добавить поддержку рекурсивной архивации директорий с сохранением иерархии и Unix permissions во всех трёх декодерах.
|
||||||
|
|
||||||
|
**Target features:**
|
||||||
|
- Рекурсивная архивация директорий (pack принимает папки)
|
||||||
|
- Сохранение полных относительных путей (dir/subdir/file.txt)
|
||||||
|
- Unix mode bits (chmod 755/644) в формате и при распаковке
|
||||||
|
- Пустые директории сохраняются и восстанавливаются
|
||||||
|
- Обновление FORMAT.md под новые поля TOC
|
||||||
|
- Обновление всех трёх декодеров (Rust, Kotlin, Shell)
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
### Validated
|
### Validated
|
||||||
|
|
||||||
(None yet — ship to validate)
|
- ✓ CLI-утилита на Rust для создания архивов (Linux/macOS) — v1.0
|
||||||
|
- ✓ Кастомный бинарный формат — не распознаётся стандартными архиваторами — v1.0
|
||||||
|
- ✓ Сжатие данных перед шифрованием — v1.0
|
||||||
|
- ✓ Шифрование AES-256-CBC с зашитым ключом — v1.0
|
||||||
|
- ✓ Обфускация структуры формата (XOR-заголовки, encrypted TOC, decoy padding) — v1.0
|
||||||
|
- ✓ Упаковка нескольких файлов в один архив (тексты + APK) — v1.0
|
||||||
|
- ✓ Деархивация через Kotlin-код на Android 13 — v1.0
|
||||||
|
- ✓ Деархивация через shell-скрипт (busybox) — v1.0
|
||||||
|
- ✓ Целостность данных — round-trip тесты — v1.0
|
||||||
|
|
||||||
### Active
|
### Active
|
||||||
|
|
||||||
- [ ] CLI-утилита на Rust для создания архивов (Linux/macOS)
|
- [ ] Рекурсивная архивация директорий с сохранением путей
|
||||||
- [ ] Кастомный бинарный формат — не распознаётся стандартными архиваторами
|
- [ ] Unix mode bits — сохранение и восстановление при распаковке
|
||||||
- [ ] Сжатие данных перед шифрованием
|
- [ ] Пустые директории в архиве
|
||||||
- [ ] Шифрование AES-256 или ChaCha20 с зашитым ключом
|
- [ ] Обновление бинарного формата (TOC entry: тип записи, permissions)
|
||||||
- [ ] Обфускация структуры формата (нестандартные magic bytes, перемешанные блоки, фейковые заголовки)
|
- [ ] Обновление Kotlin декодера для директорий и permissions
|
||||||
- [ ] Упаковка нескольких файлов в один архив (тексты + APK)
|
- [ ] Обновление Shell декодера для директорий и permissions
|
||||||
- [ ] Деархивация через Kotlin-код на Android 13 (основной путь)
|
|
||||||
- [ ] Деархивация через shell-скрипт (busybox dd/xxd/openssl) как fallback
|
|
||||||
- [ ] Целостность данных — распакованные файлы идентичны оригиналам
|
|
||||||
- [ ] Базовые тесты: round-trip упаковка/распаковка
|
|
||||||
|
|
||||||
### Out of Scope
|
### Out of Scope
|
||||||
|
|
||||||
@@ -34,6 +50,9 @@
|
|||||||
- Защита от опытных реверс-инженеров с IDA/Ghidra — целевая аудитория защиты: обычные пользователи
|
- Защита от опытных реверс-инженеров с IDA/Ghidra — целевая аудитория защиты: обычные пользователи
|
||||||
- Потоковая архивация/деархивация — работаем с файлами целиком
|
- Потоковая архивация/деархивация — работаем с файлами целиком
|
||||||
- Парольная защита — используется зашитый ключ
|
- Парольная защита — используется зашитый ключ
|
||||||
|
- Обратная совместимость с v1.0 архивами — формат меняется без backward compat
|
||||||
|
- Симлинки и хардлинки — только файлы и директории
|
||||||
|
- uid/gid и timestamps — только mode bits
|
||||||
|
|
||||||
## Context
|
## Context
|
||||||
|
|
||||||
@@ -65,4 +84,4 @@
|
|||||||
| Busybox shell как fallback | Работает везде на Android без дополнительных зависимостей | — Pending |
|
| Busybox shell как fallback | Работает везде на Android без дополнительных зависимостей | — Pending |
|
||||||
|
|
||||||
---
|
---
|
||||||
*Last updated: 2026-02-24 after initialization*
|
*Last updated: 2026-02-25 after milestone v1.1 start*
|
||||||
|
|||||||
@@ -2,44 +2,25 @@
|
|||||||
|
|
||||||
## Project Reference
|
## Project Reference
|
||||||
|
|
||||||
See: .planning/PROJECT.md (updated 2026-02-24)
|
See: .planning/PROJECT.md (updated 2026-02-25)
|
||||||
|
|
||||||
**Core value:** Archive impossible to unpack without knowing the format -- standard tools (7z, tar, unzip, binwalk) cannot recognize or extract contents
|
**Core value:** Archive impossible to unpack without knowing the format -- standard tools (7z, tar, unzip, binwalk) cannot recognize or extract contents
|
||||||
**Current focus:** All 6 phases complete. Project milestone v1.0 finished.
|
**Current focus:** Milestone v1.1 Directory Support
|
||||||
|
|
||||||
## Current Position
|
## Current Position
|
||||||
|
|
||||||
Phase: 6 of 6 (Obfuscation Hardening)
|
Phase: Not started (defining requirements)
|
||||||
Plan: 2 of 2 in current phase (COMPLETE)
|
Plan: —
|
||||||
Status: All phases complete -- all decoders handle obfuscated archives
|
Status: Defining requirements
|
||||||
Last activity: 2026-02-25 -- Kotlin and Shell decoder obfuscation support
|
Last activity: 2026-02-25 — Milestone v1.1 started
|
||||||
|
|
||||||
Progress: [██████████] 100%
|
|
||||||
|
|
||||||
## Performance Metrics
|
## Performance Metrics
|
||||||
|
|
||||||
**Velocity:**
|
**Velocity (from v1.0):**
|
||||||
- Total plans completed: 10
|
- Total plans completed: 10
|
||||||
- Average duration: 3.6 min
|
- Average duration: 3.6 min
|
||||||
- Total execution time: 0.6 hours
|
- Total execution time: 0.6 hours
|
||||||
|
|
||||||
**By Phase:**
|
|
||||||
|
|
||||||
| Phase | Plans | Total | Avg/Plan |
|
|
||||||
|-------|-------|-------|----------|
|
|
||||||
| 1. Format Specification | 1 | 7 min | 7 min |
|
|
||||||
| 2. Core Archiver | 2/2 | 6 min | 3 min |
|
|
||||||
| 3. Round-Trip Verification | 2/2 | 8 min | 4 min |
|
|
||||||
| 4. Kotlin Decoder | 1/1 | 4 min | 4 min |
|
|
||||||
| 5. Shell Decoder | 2/2 | 5 min | 2.5 min |
|
|
||||||
| 6. Obfuscation Hardening | 2/2 | 6 min | 3 min |
|
|
||||||
|
|
||||||
**Recent Trend:**
|
|
||||||
- Last 5 plans: 4min, 3min, 2min, 3min, 3min
|
|
||||||
- Trend: stable
|
|
||||||
|
|
||||||
*Updated after each plan completion*
|
|
||||||
|
|
||||||
## Accumulated Context
|
## Accumulated Context
|
||||||
|
|
||||||
### Decisions
|
### Decisions
|
||||||
@@ -90,12 +71,10 @@ None yet.
|
|||||||
|
|
||||||
### Blockers/Concerns
|
### Blockers/Concerns
|
||||||
|
|
||||||
- RESOLVED: openssl enc with -K/-iv flags implemented in shell decoder; script fails gracefully if openssl missing
|
None.
|
||||||
- RESOLVED: xxd/od auto-detection implemented in shell decoder (xxd primary, od fallback)
|
|
||||||
- RESOLVED: HMAC uses same key as AES in v1 (decided in Phase 1 spec, v2 will use HKDF)
|
|
||||||
|
|
||||||
## Session Continuity
|
## Session Continuity
|
||||||
|
|
||||||
Last session: 2026-02-25
|
Last session: 2026-02-25
|
||||||
Stopped at: Completed 06-02-PLAN.md (Kotlin and Shell decoder obfuscation support -- all phases complete)
|
Stopped at: Starting milestone v1.1 — defining requirements
|
||||||
Resume file: None
|
Resume file: None
|
||||||
|
|||||||
Reference in New Issue
Block a user