
Раскройте всю мощь ваших наушников на базе BES! :)
открытый набор инструментов для патчинга, модификации и улучшения прошивки наушников soundcore серии q, с планами поддержки других моделей в будущем.
примечание: этот проект — моё личное путешествие в мир аппаратного реверс-инжиниринга и встраиваемых систем. он создан подростком, и я учусь на ходу. ожидайте багов, ошибок и много веселья. любые вклады и советы приветствуются!
этот проект разделён на две части:
я также создал демо-проект — порт DOOM на основе проекта DOOMBuds. загляните и туда! =)
📚 читайте полную документацию 📚
этот проект был начат с soundcore life q35. если вы хотите помочь с тестированием или добавить поддержку новой модели, пожалуйста, откройте issue!
поддержка других моделей — будущая цель!
примечание: устройства на базе чипсетов
bes2300*, bes1502*, bes1600— наиболее вероятные кандидаты для будущей поддержки.
openqore только начинает свой путь. вот примерный план того, что будет дальше:
это руководство предполагает, что на вашей системе установлены python и git.
1. скачайте и распакуйте zip-архив из релизов
2. установите зависимости
патчеру требуются ffmpeg для конвертации аудио и 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. получите файл прошивки
вы можете скачать ota-образ здесь или прочитать flash через UART:
➡️ руководство по железу: подключение через UART
чтение flash через ota (over-the-air) запланировано на будущее обновление. (если это вообще возможно :D)
4. поздравляю!
инструкции по использованию вы найдёте здесь
если вы скачали ota-образ обновления с официальных серверов обновлений, выберите вариант "без ota boot"
примечание: если вы пропатчили прошивку без ota boot, вам нужно добавить его в заголовок пропатченной прошивки перед прошивкой через UART. вам это НЕ нужно, если вы используете скрипт besota!
этот раздел содержит некоторые первоначальные находки из реверс-инжиниринга прошивки q35.
у наушников есть несколько скрытых тестовых режимов. некоторые из них могут быть полезны для будущих обновлений или отладки.
инженерный режим: чтобы войти в этот режим, удерживайте кнопку питания, подключите наушники к пк через usb-c до их включения и дождитесь их запуска.
rfcomm: у наушников есть два последовательных com-порта. один из них доступен для записи. пока единственная функция, которую мне удалось запустить через этот порт, — это UFR (объяснение ниже). похоже, это мера безопасности, так как она сработала при переборе различных hex-кодов, а не по конкретной команде. интересно, что это не стандартный сброс (питание + vol+), а что-то другое.
тестовый режим: этот режим активируется аналогично инженерному, но вам нужно отпустить кнопку питания сразу после первой вспышки белого светодиода, до синего света. наушники затем появятся на пк как устройство с ошибкой "device descriptor request failed". вы можете подтвердить, что находитесь в этом режиме, по белому светодиоду, который мигает быстрее обычного. его назначение, вероятно, связано с прошивкой. также в этом режиме наушники можно включать во время зарядки!
недокументированный заводской сброс (UFR): скрытый заводской сброс можно запустить, быстро нажимая кнопку питания несколько раз, пока наушники включены, или отправив что-то на виртуальный com-порт (выше). это приведёт к зависанию прошивки и последующей принудительной перезагрузке примерно через 30 секунд. обратите внимание, что это действие сотрёт все пользовательские данные, включая настройки эквалайзера, bluetooth-сопряжения и другие конфигурации.
прошивка представляет собой монолитный бинарный файл, разделённый на несколько секций. каждая критическая секция защищена контрольной суммой crc32. будущие патчеры будут автоматически пересчитывать эти контрольные суммы после любых модификаций, чтобы предотвратить сбои загрузки.
вклады — это то, что делает open source сообщество таким удивительным местом для обучения, вдохновения и творчества. любые ваши вклады очень ценятся.
если у вас есть предложение, которое может улучшить проект, пожалуйста, сделайте форк репозитория и создайте pull request. вы также можете просто открыть issue с тегом "enhancement". не забудьте поставить проекту звезду! ещё раз спасибо!
git checkout -b feature/amazing-feature).git commit -m 'feat: add some amazing feature').git push origin feature/amazing-feature).если вы находите этот проект полезным и хотите поддержать его дальнейшее развитие, вы можете угостить меня кофе или перекусом через boosty! каждый вклад очень ценится и помогает мне уделять больше времени openqore.
этот проект был воплощён в жизнь с активным использованием ai-ассистентов для программирования (таких как claude и chatgpt). хотя основной реверс-инжиниринг, исследования и архитектурные решения были выполнены автором, ai сыграл решающую роль в ускорении процесса разработки, написании шаблонного кода и отладке.
это современный проект, созданный с использованием современных инструментов.
этот проект лицензирован под лицензией mit. полный текст лицензии вы можете найти в файле license.
| модель | чипсет | статус |
|---|
| soundcore life q35 | bes2300p | ✅ поддерживается |
| soundcore life q30 | bes2300p | ❔ должна работать, но требует тестирования |
| soundcore life tune pro | bes2300p | ❔ должна работать, но требует тестирования |
| soundcore life tune | bes2300p | ❔ должна работать, но требует тестирования |
| soundcore life q20i | bes2300p | ❔ должна работать, но требует тестирования |
| soundcore space one | bes1502x | ❌ в разработке |
16кГц, моно, SBC.48кГц, стерео. это значительно улучшает качество пользовательских звуков.bes2300p от bestechnic (bes, best). даташит можно найти поиском.uart, который использовался для первоначальной отладки и является основным методом восстановления устройства после неудачной прошивки. сам чип bes2300p имеет два uart-порта, но только один из них выведен на легко доступные контактные площадки на плате.