
openqore v0.1.0-beta.1
Entfessle die volle Leistung deiner BES-basierten Kopfhörer! :)
openqore
ein Open-Source-Toolkit zum Patchen, Modifizieren und Verbessern der Firmware von Kopfhörern auf Basis der BES-Chipsätze (ursprünglich gestartet mit dem soundcore Q35), mit geplanter zukünftiger Unterstützung für weitere Modelle.
Hinweis: Dieses Projekt ist meine persönliche Reise in die Welt des Hardware-Reverse-Engineering und der Embedded-Systeme. Erwartet Bugs, Fehler und jede Menge Spaß. Alle Beiträge und Ratschläge sind willkommen!
wichtige Infos! (Schnellnavigation)
Möchtest du:
- die Firmware deiner Kopfhörer patchen? -> qorepatcher (dieses Repository, siehe unten für den Schnellstart)
- die Custom-Firmware installieren / entwickeln? (
soundcore-Geräte auf Basis des bes2300pderzeit nur) -> openqore SDK - ein Update flashen / Custom-Firmware over-the-air installieren? (OTA) -> OTA-Dateien für BES-Geräte und besota - BES OTA-Flasher
- ein Update über UART flashen / nach einem fehlerhaften Update wiederherstellen oder ein Backup erstellen? -> Hardware-Flash-Anleitung
ich habe außerdem ein Demo-Projekt erstellt - einen DOOM-Port basierend auf dem DOOMBuds-Projekt. Schau da auch mal rein! =)
qorepatcher
📚 die vollständige Dokumentation lesen 📚
unterstützte Geräte
Dieses Projekt wurde mit dem soundcore Life Q35 gestartet. Wenn du beim Testen oder Hinzufügen der Unterstützung für ein neues Modell helfen möchtest, öffne bitte ein Issue oder schreib mir eine DM (siehe Kontakt)!
Lies Roadmaps und Modelle für den Unterstützungsstatus von Chips und Modellen.
Projekt-Roadmap
- erster Firmware-Patcher für den Sound-Austausch.
- Patcher mit allen bes2300*-Chipsätzen kompatibel machen (Warnung! Muss getestet werden)
- Patcher mit allen (oder den meisten) BES-Chipsätzen kompatibel machen
- eine benutzerfreundliche GUI für den Patcher erstellen.
- das OTA-Update-Protokoll (Over-the-Air) für drahtloses Flashen reverse-engineeren. (siehe besota)
- die Firmware-Struktur und Schlüsselfunktionen dokumentieren.
- eine Bibliothek mit von der Community erstellten Sound-Packs entwickeln.
Schnellstart
Diese Anleitung setzt voraus, dass python und git auf deinem System installiert sind, wenn du unter Linux arbeitest oder den CLI-Modus verwendest.
1. Lade die neueste Version von releases herunter und öffne die .exe-Datei.
2. Abhängigkeiten installieren (nur für CLI, Linux und zum Bauen)
Der Patcher benötigt FFmpeg für die Audiokonvertierung und pybluez:
Windows:
pip install git+https://github.com/pybluez/pybluez.git
winget install ffmpeg
macOS:
pip install git+https://github.com/pybluez/pybluez.git
brew install ffmpeg
Ubuntu/Debian:
pip install git+https://github.com/pybluez/pybluez.git
sudo apt install ffmpeg
3. Firmware-Datei besorgen
Klicke auf "Browse firmware archive" und lade die Firmware herunter (oder wähle in der CLI die Option "patch firmware" -> "download from online archive").
Du kannst das OTA-Image auch hier herunterladen oder den Flash-Speicher über UART auslesen:
➡️ Hardware-Anleitung: Verbindung über UART
Das Auslesen des Flash-Speichers über OTA (Over-the-Air) ist für ein zukünftiges Update geplant. (Falls es möglich ist :D)
4. Glückwunsch!
Die Nutzungsanleitung findest du hier
FAQ
1. Welche Option der Firmware (ohne OTA-Boot oder mit) sollte ich in qorepatcher auswählen?
Wenn du den Flash-Dump der Kopfhörer patchst, wähle die Option "with OTA boot".
Wenn du das OTA-Update-Image von den offiziellen Update-Servern heruntergeladen hast, wähle die Option "without OTA boot".
Hinweis: Wenn du die Firmware ohne OTA-Boot gepatcht hast, musst du den OTA-Boot-Offset anhängen, bevor du über UART flashst (bestool). Du brauchst das NICHT, wenn du das besota-Skript verwendest!
Mitwirken
Beiträge sind es, was die Open-Source-Community zu einem so großartigen Ort zum Lernen, Inspirieren und Erschaffen macht. Jeder Beitrag von dir wird sehr geschätzt.
Schau dir auch die Anleitung zum Erstellen von Modulen an!
Wenn du einen Vorschlag hast, der dies verbessern würde, forke bitte das Repository und erstelle einen Pull Request. Du kannst auch einfach ein Issue mit dem Tag "enhancement" öffnen. Vergiss nicht, dem Projekt einen Stern zu geben! Danke nochmals!
- Forke das Projekt.
- Erstelle deinen Feature-Branch (
git checkout -b feature/amazing-feature). - Committe deine Änderungen (
git commit -m 'feat: add some amazing feature'). - Pushe zum Branch (
git push origin feature/amazing-feature). - Öffne einen Pull Request.
Kontakt & Community
❤️ Unterstütze das Projekt
Wenn du dieses Projekt hilfreich findest und seine zukünftige Entwicklung unterstützen möchtest, kannst du mir über Boosty einen Kaffee oder einen Snack spendieren! Jeder Beitrag wird sehr geschätzt und hilft mir, mehr Zeit in openqore zu investieren.
Danksagungen
Dieses Projekt wurde mit umfangreicher Nutzung von KI-gestützten Coding-Assistenten zum Leben erweckt. Während das Kern-Reverse-Engineering, die Recherche und die architektonischen Entscheidungen vom Autor getroffen wurden, spielte KI eine entscheidende Rolle bei der Beschleunigung des Entwicklungsprozesses, dem Schreiben von Boilerplate-Code und dem Debugging.