
AirPods liberados del ecosistema de Apple.
[!WARNING] librepods.org no es un sitio web oficial del proyecto LibrePods. Afirma incorrectamente ser el sitio web oficial del proyecto reclamando derechos de autor y usando el logotipo de LibrePods en el pie de página. Y al mismo tiempo, dicen que el proyecto no está afiliado con el proyecto LibrePods ni con sus desarrolladores.
Por favor, informa sobre cualquier otro sitio web de este tipo a [email protected]
LibrePods te permite usar funciones de los AirPods que son exclusivas de los dispositivos Apple. Implementa el protocolo propietario utilizado para intercambiar datos entre los AirPods y los dispositivos Apple, habilitando funciones como cambiar los modos de control de ruido, detección rápida de uso del oído, estado preciso de la batería, gestos con la cabeza, conciencia conversacional y más en plataformas que no son de Apple.
| Símbolo | Significado |
|---|---|
Las siguientes funciones relacionadas con Find My están planificadas, pero requieren más ingeniería inversa y podrían necesitar root en Android:
Actualmente, la aplicación no proporciona a Android información de seguimiento de la cabeza para que el sistema operativo realice la HRTF. Esto no se ha explorado por completo, y podría necesitar root.
Espacializar el sonido estéreo está fuera del alcance de este proyecto y nunca estará disponible. Muchos fabricantes (OEM) tienen su propia implementación para esto.
Se está trabajando en esto; consulta el canal #reverse-engineering del servidor de Discord de LibrePods para más información. Si alguna vez se implementa, muy probablemente necesitará root en Android.
En iOS/iPadOS, puedes seguir usando A2DP mientras los AirPods envían el flujo de audio desde su micrófono a través de AACP.
Como esto necesita una integración más profunda con el audio en Android, muy probablemente requerirá root.
Resulta que si cambias el VendorID en el perfil DID al de Apple, obtienes acceso a varias funciones especiales.
Puedes hacerlo en Linux editando el DeviceID en /etc/bluetooth/main.conf. Agrega esta línea al archivo de configuración: DeviceID = bluetooth:004C:0000:0000. En Android, puedes habilitar el ajuste act as Apple device en la configuración de la app (solo se muestra cuando Xposed está disponible y el módulo de LibrePods está habilitado).
Hasta dos dispositivos pueden conectarse simultáneamente a los AirPods, tanto para audio como para control. Cambio de conexión sin interrupciones. La misma notificación aparece en el dispositivo Apple cuando Android toma el control de los AirPods como si fuera un dispositivo Apple ("Move to iPhone"). Android también muestra una ventana emergente cuando el otro dispositivo toma el control.
Se pueden configurar ajustes de accesibilidad como personalizar el modo de transparencia (amplificación, balance, tono, refuerzo de conversación y reducción de ruido ambiental) y la reducción de sonidos fuertes.
Todas las personalizaciones del audífono se pueden realizar desde Android (Linux pronto), incluido configurar el resultado del audiograma. La app no ofrece una forma de realizar una prueba de audición porque requiere mucha más precisión. Es mucho mejor usar un resultado de audiograma ya disponible.
Consulta el plugin dissector de Wireshark de Nojus (@pabloaul) para obtener más información sobre los protocolos utilizados: pabloaul/apple-wireshark
El dissector no se usó en LibrePods durante la mayor parte de la implementación; yo mismo hice ingeniería inversa del protocolo antes de que se creara este dissector. Pero muchas funciones (futuras), incluido el audio bidireccional de alta calidad y el audio espacial, no habrían sido posibles sin sus esfuerzos de ingeniería inversa.
Estas partes de la app fueron generadas completamente por IA:
Todo lo demás (el servicio en segundo plano, las clases de gestión de Bluetooth (AACP y ATT), toda la interfaz de usuario, incluso los componentes más pequeños) se escribió manualmente.
Algunas partes de los componentes de la interfaz se tomaron prestadas de la app demo de Kyant0, que está bajo la Licencia Apache 2.0.
Los archivos aacp.rs y att.rs se tradujeron de Kotlin a Rust con IA. Algunas partes del archivo media_controller.rs, principalmente la integración con Pulse, también fueron generadas por IA.
¡Muchas gracias a todos los que apoyan el proyecto!
LibrePods - AirPods liberados del ecosistema de Apple Copyright (C) 2025 Contribuyentes de LibrePods
Este programa es software libre: puedes redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General de GNU publicada por la Free Software Foundation, ya sea la versión 3 de la Licencia, o cualquier versión posterior.
Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de COMERCIALIZACIÓN o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulta la Licencia Pública General de GNU para más detalles.
Deberías haber recibido una copia de la Licencia Pública General de GNU junto con este programa. Si no es así, consulta https://www.gnu.org/licenses/.
La GPL no otorga ningún derecho para usar el nombre, logotipo o marca de LibrePods. El nombre y el logotipo de LibrePods no pueden usarse para software, sitios web, dominios, productos, servicios u otros proyectos de una manera que sugiera afiliación con, respaldo de o asociación con el proyecto oficial de LibrePods sin permiso previo.
Si ves algún uso indebido del nombre o logotipo de LibrePods, por favor repórtalo a [email protected].
La fuente SF Pro utilizada en la app de Android es propiedad de Apple Inc. Esto se eliminará en futuras versiones de la app y pronto se reemplazará con una alternativa abierta.
AirPods, AirPods Pro, AirPods Max y el logotipo de AirPods son marcas comerciales de Apple Inc. El proyecto LibrePods no está afiliado ni respaldado por Apple Inc. de ninguna manera.
| Característica | Linux | Android |
|---|
| Cambiar el modo de escucha | ✅ | ✅ |
| Detección de oído | ✅ | ✅ |
| Estado de la batería | ✅ | ✅ |
Renombrar AirPods Nota para AndroidEn Android, debes volver a vincular tus AirPods después de renombrarlos porque Android podría no usar el nombre más reciente. | ✅ | ✅ |
| Reducción de sonidos fuertes | 🔴 | ⚪ |
| Gestos con la cabeza | ⛔ | ✅ |
| Conciencia conversacional | ✅ | ✅ |
| Conectarse automáticamente a los AirPods | ✅ | ✅ |
| Audífono | 🔴 | ⚪ |
| Personalización del modo de transparencia | 🔴 | ⚪ |
| Conectividad multidispositivo (multipunto Bluetooth; solo 2 dispositivos) | ⚪ | ⚪ |
Otras configuraciones de accesibilidad (clic para expandir)
| 🔴 | ✅ |
Otras configuraciones generales
| 🔴 | ✅ |
| Spatial Audio con seguimiento de cabeza | ❓ | ❓ |
| Monitoreo de frecuencia cardíaca | ⛔ | 🔴 |
| Find My | ❓ | ❓ |
| Audio bidireccional de alta calidad | 🔴 | 🔴 |
| ✅ |
| Implementado y funciona bien |
| ⚪ | Requiere VendorID spoofing; úsalo bajo tu propio riesgo |
| 🔴 | Aún no implementado; planificado |
| ⛔ | No se implementará |
| ❓ | Desconocido |
|
@davdroman |
@tedsalmon |
@wiless |
|
@SmartMsg |
@lunaroyster |
@ressiwage |
|
@kkjdroid |
@CitrusJoules |
@DanielReyesDev |
|
@sumitduster |
@GrifTheDev |