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:
Stefan Hacker
2026-04-26 12:09:39 +02:00
parent d0386b3c53
commit fb3534553b
35 changed files with 1883 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
{% extends "base.html" %}
{% block title %}Dateien · aubox{% endblock %}
{% block content %}
<h2>Datei-Browser</h2>
<p class="muted">Sandboxed auf <code>{{ firmware_root }}</code> — Path-Traversal blockiert.</p>
<nav class="crumbs">
{% for label, p in crumbs %}
<a href="/browse?path={{ p }}">{{ label }}</a>
{% if not loop.last %} / {% endif %}
{% endfor %}
</nav>
{% if not entries %}
<p class="empty">Verzeichnis ist leer.</p>
{% else %}
<table class="grid">
<thead><tr><th>Name</th><th>Typ</th><th>Größe</th></tr></thead>
<tbody>
{% for e in entries %}
<tr>
<td>
{% if e.is_dir %}
<a href="/browse?path={{ e.rel_path }}">{{ e.name }}/</a>
{% else %}
{{ e.name }}
{% endif %}
</td>
<td>{{ "DIR" if e.is_dir else "FILE" }}</td>
<td>{{ e.size|humansize if not e.is_dir else "—" }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
{% endblock %}