initial aubox skeleton: web-UI, kirin DLOAD, firmware library
- FastAPI Web-UI auf 127.0.0.1:8080 mit Geräte-Live-Erkennung, sandboxed File-Browser, Firmware-Library (SQLite + Auto-Identifikation) - Huawei update.app Parser: extrahiert Hardware-ID, Section-Layout, BOOT/SYSTEM-Vorhandensein direkt aus den Headern - Kirin Download-Mode: hisi-idt-Protokoll-Implementation gegen pyusb - USB-Erkennung für Huawei (DLOAD/Fastboot-D), Google, MediaTek, Qualcomm EDL - Huawei-P10-Lite-Workflow (eRecovery + Testpoint-DLOAD-Pfade) - Docker-Compose mit USB-Passthrough (Major 189) für Re-Enumeration - udev-Regeln + Setup-Script für Debian/Ubuntu/Pi-OS Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# Firmware-Library
|
||||
|
||||
Hier liegen die Firmware-Dateien, die aubox indexiert. Im Container ist
|
||||
das Verzeichnis als `/firmware` gemountet.
|
||||
|
||||
## Layout-Vorschlag
|
||||
|
||||
Ablage frei wählbar — die Library scannt rekursiv und identifiziert über
|
||||
Magic-Bytes, nicht über Pfad. Trotzdem hilfreich:
|
||||
|
||||
```
|
||||
firmware/
|
||||
├── huawei/
|
||||
│ ├── WAS-LX1/
|
||||
│ │ ├── EMUI8_C432_8.0.0.367.app
|
||||
│ │ └── EMUI8_C432_8.0.0.367.app.sha256
|
||||
│ └── EML-L29/
|
||||
├── samsung/
|
||||
│ └── SM-G960F_xx.tar.md5
|
||||
├── mediatek/
|
||||
└── firmware.db # ← SQLite-Index, wird beim ersten Scan erzeugt
|
||||
```
|
||||
|
||||
## Was wird erkannt
|
||||
|
||||
- **Huawei `update.app`**: Hardware-ID, Region, Section-Layout, BOOT/SYSTEM
|
||||
vorhanden? — voll automatisch
|
||||
- **MediaTek scatter**: aktuell nur Kandidaten-Erkennung über Filename
|
||||
- **Samsung Odin (`*.tar.md5`)**: aktuell nur Kandidaten-Erkennung
|
||||
|
||||
Mehr Parser folgen, sobald der jeweilige Workflow gebraucht wird.
|
||||
|
||||
## Datenbank
|
||||
|
||||
Die SQLite-Datei (`firmware.db`) ist Teil der Library. Sie wandert mit
|
||||
einem Backup oder Sync mit. Schema steht in `aubox/library/db.py`.
|
||||
|
||||
## Git und Größe
|
||||
|
||||
Standardmäßig sind die Binaries in `.gitignore` ausgenommen (typisch
|
||||
2-8 GB pro update.app). Wenn du sie trotzdem ins Repo legen willst:
|
||||
|
||||
- **git-lfs** ist die einzig sinnvolle Option — `git lfs track "*.app"` etc.
|
||||
- Direktes `git add` einer 4-GB-Datei macht den Repo-Pull für andere zur Hölle.
|
||||
- Ein Backup-Repo extra für Firmware (LFS) ist sauberer als alles in einem.
|
||||
|
||||
Die `firmware.db` selbst ist klein (KB) und kann ohne LFS committet werden,
|
||||
falls du das Inventory teilen willst — sie enthält nur Metadaten, nicht
|
||||
die Binaries.
|
||||
Reference in New Issue
Block a user