Volver a actualizaciones
Nuevo releaseJul 31, 2026

openqore v0.1.0-beta.1

libera todo el poder de tus soundcores! :)

Compartir

openqore
open-qore logo

un kit de herramientas de código abierto para parchear, modificar y mejorar el firmware de los auriculares soundcore de la serie q, con soporte planificado para otros modelos en el futuro.

nota: este proyecto es mi viaje personal hacia el mundo de la ingeniería inversa de hardware y los sistemas embebidos. fue creado por un adolescente y estoy aprendiendo sobre la marcha. espera errores, fallos y mucha diversión. ¡todas las contribuciones y consejos son bienvenidos!

Status License Stars Issues

¡información importante!

este proyecto está dividido en dos partes:

  1. openqore SDK - SDK de firmware para auriculares soundcore basados en el SoC bes2300p
  2. qorepatcher - un parcheador para el firmware de fábrica de los auriculares (este repositorio)

también creé un proyecto de demostración: un port de DOOM basado en el proyecto DOOMBuds. ¡échale un vistazo también! =)

qorepatcher

📚 lee la documentación completa 📚

dispositivos compatibles

este proyecto comenzó con los soundcore life q35. si quieres ayudar a probar o añadir soporte para un nuevo modelo, ¡abre un issue!

modelochipsetestado
soundcore life q35bes2300pcompatible
soundcore life q30bes2300pdebería funcionar pero necesita pruebas
soundcore life tune probes2300pdebería funcionar pero necesita pruebas
soundcore life tunebes2300pdebería funcionar pero necesita pruebas
soundcore life q20ibes2300pdebería funcionar pero necesita pruebas
soundcore space onebes1502xen desarrollo

¡el soporte para otros modelos es un objetivo futuro!

nota: los dispositivos basados en los chipsets bes2300*, bes1502*, bes1600 son los candidatos más probables para soporte futuro.

hoja de ruta

openqore acaba de empezar. aquí tienes un plan aproximado de lo que viene a continuación:

  • parcheador inicial de firmware para reemplazo de sonidos.
  • desbloquear soporte de audio de 48khz para sonidos del sistema.
  • investigar y desbloquear soporte estéreo para sonidos del sistema.
  • hacer que el parcheador funcione con todos los chipsets bes2300 (¡advertencia! necesita pruebas)
  • hacer que el parcheador funcione con todos (o la mayoría de) los chipsets bes
  • implementar parches para modificación del nombre de los auriculares y la dirección mac.
  • eliminar el limitador/puerta de volumen bajo en la entrada aux en algunos modelos (conexión jack).
  • crear una gui amigable para el parcheador.
  • aplicar ingeniería inversa al protocolo de actualización ota (over-the-air) para flashing inalámbrico.
  • documentar la estructura del firmware y las funciones clave.
  • desarrollar una biblioteca de paquetes de sonido creados por la comunidad.

inicio rápido

esta guía asume que tienes python y git instalados en tu sistema.

1. descarga y extrae el archivo zip de releases

2. instala las dependencias

el parcheador requiere ffmpeg para la conversión de audio y 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. obtén tu archivo de firmware

puedes descargar la imagen OTA aquí o leer la flash con UART:

➡️ guía de hardware: conexión por UART

leer la flash mediante ota (over-the-air) está planeado para una futura actualización. (si es posible :D)

4. ¡felicidades!

puedes encontrar las instrucciones de uso aquí

faq

1. ¿qué opción de firmware (sin ota boot o con él) debo seleccionar en qorepatcher?
si estás parcheando el volcado de la flash de los auriculares, selecciona la opción "con ota boot".

si has descargado la imagen de actualización ota de los servidores oficiales de actualización, selecciona la opción "sin ota boot"

nota: si has parcheado el firmware sin ota boot, necesitas añadirlo en la cabecera del firmware parcheado antes de flashear mediante UART. NO necesitas esto si estás usando el script besota!

inmersión técnica profunda

cosas de frikis a continuación: haz clic para expandir...

esta sección contiene algunos de los hallazgos iniciales de la ingeniería inversa del firmware del q35.

divirtiéndose con modos y funciones de ingeniería

los auriculares tienen varios modos de prueba ocultos. algunos de ellos podrían ser útiles para futuras actualizaciones o depuración.

  • modo de ingeniería: para entrar en este modo, mantén pulsado el botón de encendido, conecta los auriculares a un pc mediante usb-c antes de que se enciendan, y espera a que se enciendan.

  • rfcomm: los auriculares tienen dos puertos de comunicación serie. uno de ellos es escribible. hasta ahora, la única función que he logrado activar a través de este puerto es un UFR (explicación abajo). esto parece ser una medida de seguridad, ya que se activó probando varios códigos hexadecimales por fuerza bruta en lugar de un comando específico. curiosamente, este no es el reinicio estándar (encendido + vol+) sino algo diferente.

  • modo de prueba: este modo se activa de manera similar al modo de ingeniería, pero debes soltar el botón de encendido inmediatamente después de que el led blanco parpadee por primera vez, antes de la luz azul. los auriculares aparecerán entonces en el pc como un dispositivo con un error de "device descriptor request failed". puedes confirmar que estás en este modo por el led blanco, que parpadea más rápido de lo habitual. su propósito probablemente esté relacionado con el flashing del firmware. además, en este modo, ¡los auriculares pueden encenderse mientras se cargan!

  • restablecimiento de fábrica no documentado (UFR): se puede activar un restablecimiento de fábrica oculto pulsando rápidamente el botón de encendido varias veces mientras los auriculares están encendidos o enviando algo por el puerto serie virtual (arriba). esto hará que el firmware se cuelgue y luego fuerce un reinicio después de unos 30 segundos. ten en cuenta que esta acción borrará todos los datos de usuario, incluidos los ajustes del ecualizador, los emparejamientos bluetooth y otras configuraciones.

estructura del firmware

el firmware parece ser un binario monolítico dividido en múltiples secciones. cada sección crítica está protegida por una suma de comprobación crc32. los futuros parcheadores recalcularán automáticamente estas sumas de comprobación después de cualquier modificación para evitar fallos de arranque.

sistema de audio

  • original: los sonidos originales del sistema se almacenan como flujos de audio 16khz, mono, SBC.
  • modificado: parcheando las funciones responsables de inicializar el dac de audio, es posible forzar al sistema a reproducir audio a 48khz, estéreo. esto mejora significativamente la calidad de los sonidos personalizados.

componentes e interfaces clave

  • chipset: el corazón del q35 es un SoC bes2300p de bestechnic (bes, best). se puede encontrar una hoja de datos buscando.
  • puerto de depuración: hay un puerto serie uart disponible en la placa de circuito impreso (pcb), que se utilizó para la depuración inicial y es el método principal para desbrickear un dispositivo después de un flashing fallido. el chip bes2300p en sí tiene dos puertos uart, pero solo uno de ellos está expuesto como almohadillas de fácil acceso en la pcb.

contribuciones

las contribuciones son lo que hacen de la comunidad de código abierto un lugar tan increíble para aprender, inspirar y crear. cualquier contribución que hagas es muy apreciada.

si tienes una sugerencia que pueda mejorar esto, haz un fork del repositorio y crea un pull request. también puedes simplemente abrir un issue con la etiqueta "enhancement". ¡no olvides darle una estrella al proyecto! ¡gracias de nuevo!

  1. haz un fork del proyecto.
  2. crea tu rama de características (git checkout -b feature/amazing-feature).
  3. haz commit de tus cambios (git commit -m 'feat: add some amazing feature').
  4. haz push a la rama (git push origin feature/amazing-feature).
  5. abre un pull request.

contacto y comunidad

telegram discord server

❤️ apoya el proyecto

si encuentras útil este proyecto y quieres apoyar su desarrollo futuro, ¡puedes invitarme a un café o algunos snacks a través de boosty! cada contribución es muy apreciada y me ayuda a dedicar más tiempo a openqore.

Boosty

agradecimientos

este proyecto cobró vida con el uso extensivo de asistentes de codificación impulsados por ia (como claude y chatgpt). aunque la ingeniería inversa, la investigación y las decisiones arquitectónicas centrales fueron tomadas por el autor, la ia jugó un papel crucial en acelerar el proceso de desarrollo, escribir código repetitivo y depurar.

este es un proyecto moderno construido con herramientas modernas.

licencia

este proyecto está licenciado bajo la licencia mit. puedes encontrar el texto completo de la licencia en el archivo license.

Categorías