
Libérez tout le potentiel de vos écouteurs BES ! :)
<h1 align="center"> openqore <br> <img src="https://assets.kitploit.com/production/public/readmes/7937/59eba04db6584ca6826b9cf3f0ce9e274dcd4921d152a8a17ee5d2ce2112afb4.png" width="40" alt="open-qore logo"> </h1> une boîte à outils open-source pour patcher, modifier et améliorer le firmware des casques audio basés sur les chipsets BES (initialement démarré à partir du soundcore Q35), avec un support futur d'autres modèles prévu. > **note :** ce projet est mon parcours personnel dans le monde du reverse-engineering matériel et des systèmes embarqués. attendez-vous à des bugs, des erreurs et beaucoup de plaisir. toutes les contributions et conseils sont les bienvenus ! <p align="center"> <a href="https://github.com/nnonickreal/openqore"><img src="https://img.shields.io/badge/status-in%20development-orange?style=for-the-badge" alt="Status"></a> <a href="https://github.com/nnonickreal/openqore/blob/main/LICENSE"><img src="https://img.shields.io/github/license/nnonickreal/openqore?style=for-the-badge" alt="License"></a> <a href="https://github.com/nnonickreal/openqore/stargazers"><img src="https://img.shields.io/github/stars/nnonickreal/openqore?style=for-the-badge" alt="Stars"></a> <a href="https://github.com/nnonickreal/openqore/issues"><img src="https://img.shields.io/github/issues/nnonickreal/openqore?style=for-the-badge" alt="Issues"></a> </p> # informations importantes ! (navigation rapide) **voulez-vous :** * patcher le firmware de votre casque ? -> qorepatcher (ce dépôt, voir ci-dessous pour le démarrage rapide) * installer / développer le firmware personnalisé ? (`appareils soundcore basés sur bes2300p` uniquement pour le moment) -> [openqore SDK](https://github.com/nnonickreal/openqore-sdk) * flasher une mise à jour / installer un firmware personnalisé en over-the-air ? (OTA) -> [fichiers OTA pour appareils BES](https://github.com/nnonickreal/openBES/blob/main/archive/FIRMWARES.md) et [besota](https://github.com/nnonickreal/besota) - flasheur OTA BES * flasher une mise à jour via UART / restaurer après une mauvaise mise à jour ou faire une sauvegarde ? -> [guide de flash matériel](https://github.com/nnonickreal/openqore/blob/main/docs/UART_things/FLASH_MP.md) j'ai aussi créé un projet de démonstration - un [portage de DOOM](https://github.com/nnonickreal/DOOMcore) basé sur le projet [DOOMBuds](https://github.com/arin-s/DOOMBuds). allez y jeter un œil aussi ! =) <h2 align="center"> qorepatcher </h2> <p align="center"> <strong><a href="https://github.com/nnonickreal/openqore/blob/main/INDEX.md">📚 lire la documentation complète 📚</a></strong> </p> ## appareils pris en charge ce projet a été démarré avec le soundcore Life Q35. si vous souhaitez aider à tester ou ajouter la prise en charge d'un nouveau modèle, veuillez ouvrir une issue ou m'envoyer un DM (lire [contact](#contact--community)) ! lisez [feuilles de route et modèles](https://github.com/nnonickreal/openqore/blob/main/docs/roadmaps/RMS.md) pour le statut de prise en charge des puces et modèles. ### feuille de route du projet - [x] patcheur de firmware initial pour le remplacement des sons. - [x] faire fonctionner le patcheur avec tous les chipsets bes2300* (**attention ! nécessite des tests**) - [ ] faire fonctionner le patcheur avec tous (ou la plupart) les chipsets bes - [x] créer une interface graphique conviviale pour le patcheur. - [x] reverse-engineer le protocole de mise à jour OTA (over-the-air) pour le flash sans fil. (voir [besota](https://github.com/nnonickreal/besota)) - [ ] documenter la structure du firmware et les fonctions clés. - [ ] développer une bibliothèque de packs sonores créés par la communauté. ## démarrage rapide ce guide suppose que vous avez `python` et `git` installés sur votre système si vous êtes sous linux ou si vous utilisez le mode CLI. **1. téléchargez la dernière version depuis [releases](https://github.com/nnonickreal/openqore/releases/latest) et ouvrez le fichier .exe.** **2. installez les dépendances (uniquement pour le CLI, linux et la compilation)** le patcheur nécessite FFmpeg pour la conversion audio et 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. obtenez votre fichier de firmware** cliquez sur « Browse firmware archive » et téléchargez le firmware (ou sélectionnez l'option « patch firmware » -> « download from online archive » dans le CLI). vous pouvez également télécharger l'image OTA [ici](https://github.com/nnonickreal/openBES/blob/main/archive/FIRMWARES.md) ou lire le flash avec UART : [➡️ guide matériel : connexion via UART](https://github.com/nnonickreal/openqore/blob/main/docs/UART_things/FLASH_MP.md) la lecture du flash via ota (over-the-air) est prévue pour une future mise à jour. (si c'est possible :D) **4. félicitations !** vous pouvez trouver les instructions d'utilisation [ici](https://github.com/nnonickreal/openqore/blob/main/docs/USAGE.md) ## faq <details> <summary>1. quelle option du firmware (sans OTA boot ou avec) dans qorepatcher dois-je sélectionner ?</summary> <br> si vous patchez le dump du flash du casque, sélectionnez l'option « with OTA boot ». si vous avez téléchargé l'image de mise à jour OTA depuis les serveurs de mise à jour officiels, sélectionnez l'option « without OTA boot ». **note :** si vous avez patché le firmware sans OTA boot, vous devez [ajouter l'offset OTA boot](https://github.com/nnonickreal/openqore/blob/main/docs/OTA_things/OTABOOT.md) avant de [flasher via UART (bestool).](https://github.com/nnonickreal/openqore/blob/main/docs/UART_things/FLASHING.md) vous n'avez **PAS** besoin de cela si vous utilisez le script [besota](https://github.com/nnonickreal/besota) ! </details> ## contribution les contributions sont ce qui fait de la communauté open source un endroit aussi incroyable pour apprendre, s'inspirer et créer. toutes vos contributions sont **grandement appréciées**. consultez également le [guide de création de modules](https://github.com/nnonickreal/openqore/blob/main/docs/contributing_guides/MODULE_SYS.md) ! si vous avez une suggestion pour améliorer cela, veuillez forker le dépôt et créer une pull request. vous pouvez aussi simplement ouvrir une issue avec le tag « enhancement ». n'oubliez pas de donner une étoile au projet ! merci encore ! 1. forkez le projet. 2. créez votre branche de fonctionnalité (`git checkout -b feature/amazing-feature`). 3. committez vos modifications (`git commit -m 'feat: add some amazing feature'`). 4. poussez vers la branche (`git push origin feature/amazing-feature`). 5. ouvrez une pull request. ## contact & communauté <p align="left"> <a href="https://t.me/nnonick" target="_blank"><img src="https://img.shields.io/badge/telegram-@nnonick-2CA5E0?style=for-the-badge&logo=telegram" alt="telegram"></a> <a href="https://discord.gg/EPjhKzUHVq" target="_blank"><img src="https://img.shields.io/badge/discord-join_chat-5865F2?style=for-the-badge&logo=discord" alt="discord server"></a> </p> ## ❤️ soutenir le projet si vous trouvez ce projet utile et souhaitez soutenir son développement futur, vous pouvez m'offrir un café ou quelques snacks via boosty ! chaque contribution est grandement appréciée et m'aide à consacrer plus de temps à openqore. <p> <a href="https://boosty.to/nnonick" target="_blank"><img src="https://img.shields.io/badge/support_me_on-boosty-FF8100?style=for-the-badge&logo=boosty&logoColor=white" alt="Boosty"></a> </p> ## remerciements ce projet a vu le jour grâce à l'utilisation intensive d'assistants de codage alimentés par l'IA. bien que le reverse-engineering principal, la recherche et les décisions architecturales aient été réalisés par l'auteur, l'IA a joué un rôle crucial en accélérant le processus de développement, en écrivant du code boilerplate et en déboguant. c'est un projet moderne construit avec des outils modernes. ## licence ce projet est sous licence GPLv3. vous pouvez trouver le texte complet de la licence dans le fichier [license](https://github.com/nnonickreal/openqore/blob/main/LICENSE).