docs: define milestone v1.1 requirements
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
**Defined:** 2026-02-24
|
**Defined:** 2026-02-24
|
||||||
**Core Value:** Архив невозможно распаковать без знания формата — стандартные утилиты не распознают содержимое
|
**Core Value:** Архив невозможно распаковать без знания формата — стандартные утилиты не распознают содержимое
|
||||||
|
|
||||||
## v1 Requirements
|
## v1.0 Requirements (Complete)
|
||||||
|
|
||||||
### Format (Бинарный формат)
|
### Format (Бинарный формат)
|
||||||
|
|
||||||
@@ -59,7 +59,43 @@
|
|||||||
- [x] **TST-02**: Golden test vectors: известный plaintext/key/IV → ожидаемый ciphertext
|
- [x] **TST-02**: Golden test vectors: известный plaintext/key/IV → ожидаемый ciphertext
|
||||||
- [x] **TST-03**: Базовые unit-тесты для каждого модуля pipeline
|
- [x] **TST-03**: Базовые unit-тесты для каждого модуля pipeline
|
||||||
|
|
||||||
## v2 Requirements
|
## v1.1 Requirements
|
||||||
|
|
||||||
|
### Format (Бинарный формат)
|
||||||
|
|
||||||
|
- [ ] **FMT-09**: Тип записи в TOC entry (файл/директория) — 1 байт
|
||||||
|
- [ ] **FMT-10**: Unix permission bits (mode) в TOC entry — 2 байта (u16)
|
||||||
|
- [ ] **FMT-11**: Относительные пути с `/` разделителем вместо filename-only
|
||||||
|
- [ ] **FMT-12**: Обновлённая спецификация FORMAT.md с новыми полями
|
||||||
|
|
||||||
|
### Directory (Поддержка директорий)
|
||||||
|
|
||||||
|
- [ ] **DIR-01**: `pack` рекурсивно обходит директории и добавляет все файлы
|
||||||
|
- [ ] **DIR-02**: Относительные пути сохраняются при архивации (dir/subdir/file.txt)
|
||||||
|
- [ ] **DIR-03**: Пустые директории сохраняются как записи типа "directory" в TOC
|
||||||
|
- [ ] **DIR-04**: `unpack` создаёт полную иерархию директорий
|
||||||
|
- [ ] **DIR-05**: `unpack` восстанавливает Unix mode bits для файлов и директорий
|
||||||
|
|
||||||
|
### Kotlin Decoder
|
||||||
|
|
||||||
|
- [ ] **KOT-05**: Парсинг нового TOC с типом записи и permissions
|
||||||
|
- [ ] **KOT-06**: Создание иерархии директорий при извлечении
|
||||||
|
- [ ] **KOT-07**: Установка permissions (File.setReadable/setWritable/setExecutable)
|
||||||
|
|
||||||
|
### Shell Decoder
|
||||||
|
|
||||||
|
- [ ] **SHL-04**: Парсинг нового TOC с типом записи и permissions
|
||||||
|
- [ ] **SHL-05**: mkdir -p для иерархии и пустых директорий
|
||||||
|
- [ ] **SHL-06**: chmod для восстановления permissions
|
||||||
|
|
||||||
|
### Testing
|
||||||
|
|
||||||
|
- [ ] **TST-04**: Round-trip с вложенными директориями (3+ уровня)
|
||||||
|
- [ ] **TST-05**: Round-trip с пустыми директориями
|
||||||
|
- [ ] **TST-06**: Проверка сохранения mode bits
|
||||||
|
- [ ] **TST-07**: Cross-validation: Rust archive → Kotlin/Shell decode с директориями
|
||||||
|
|
||||||
|
## Future Requirements
|
||||||
|
|
||||||
### Расширенная обфускация
|
### Расширенная обфускация
|
||||||
- **OBF-01**: Shuffled blocks (хранение блоков в случайном порядке с scramble map)
|
- **OBF-01**: Shuffled blocks (хранение блоков в случайном порядке с scramble map)
|
||||||
@@ -86,8 +122,10 @@
|
|||||||
| Асимметричное шифрование | Избыточно для hardcoded key модели |
|
| Асимметричное шифрование | Избыточно для hardcoded key модели |
|
||||||
| Self-extracting архивы | Shell-скрипт — отдельный файл |
|
| Self-extracting архивы | Shell-скрипт — отдельный файл |
|
||||||
| DRM / лицензирование | Не цель проекта |
|
| DRM / лицензирование | Не цель проекта |
|
||||||
| File permissions в архиве | Android управляет своими permissions |
|
|
||||||
| Дедупликация файлов | Разные файлы, нет дублей |
|
| Дедупликация файлов | Разные файлы, нет дублей |
|
||||||
|
| Симлинки и хардлинки | Только файлы и директории |
|
||||||
|
| uid/gid и timestamps | Только mode bits — достаточно для target use case |
|
||||||
|
| Обратная совместимость с v1.0 | Формат меняется, старые архивы не поддерживаются |
|
||||||
|
|
||||||
## Traceability
|
## Traceability
|
||||||
|
|
||||||
@@ -123,12 +161,32 @@
|
|||||||
| TST-01 | Phase 3 | Complete |
|
| TST-01 | Phase 3 | Complete |
|
||||||
| TST-02 | Phase 3 | Complete |
|
| TST-02 | Phase 3 | Complete |
|
||||||
| TST-03 | Phase 3 | Complete |
|
| TST-03 | Phase 3 | Complete |
|
||||||
|
| FMT-09 | — | Pending |
|
||||||
|
| FMT-10 | — | Pending |
|
||||||
|
| FMT-11 | — | Pending |
|
||||||
|
| FMT-12 | — | Pending |
|
||||||
|
| DIR-01 | — | Pending |
|
||||||
|
| DIR-02 | — | Pending |
|
||||||
|
| DIR-03 | — | Pending |
|
||||||
|
| DIR-04 | — | Pending |
|
||||||
|
| DIR-05 | — | Pending |
|
||||||
|
| KOT-05 | — | Pending |
|
||||||
|
| KOT-06 | — | Pending |
|
||||||
|
| KOT-07 | — | Pending |
|
||||||
|
| SHL-04 | — | Pending |
|
||||||
|
| SHL-05 | — | Pending |
|
||||||
|
| SHL-06 | — | Pending |
|
||||||
|
| TST-04 | — | Pending |
|
||||||
|
| TST-05 | — | Pending |
|
||||||
|
| TST-06 | — | Pending |
|
||||||
|
| TST-07 | — | Pending |
|
||||||
|
|
||||||
**Coverage:**
|
**Coverage:**
|
||||||
- v1 requirements: 30 total
|
- v1.0 requirements: 30 total — all Complete
|
||||||
- Mapped to phases: 30
|
- v1.1 requirements: 19 total
|
||||||
- Unmapped: 0
|
- Mapped to phases: 0 (pending roadmap)
|
||||||
|
- Unmapped: 19
|
||||||
|
|
||||||
---
|
---
|
||||||
*Requirements defined: 2026-02-24*
|
*Requirements defined: 2026-02-24*
|
||||||
*Last updated: 2026-02-25 after Phase 4 completion*
|
*Last updated: 2026-02-25 after milestone v1.1 requirements definition*
|
||||||
|
|||||||
Reference in New Issue
Block a user