# 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.