1 pontos por GN⁺ 3 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • LibrePods é um projeto que implementa o protocolo proprietário entre AirPods e dispositivos Apple, permitindo usar em plataformas não Apple, como Linux e Android, recursos dos AirPods exclusivos de dispositivos Apple
  • Os recursos compatíveis variam por plataforma; mudança de modo de escuta, detecção de uso, status da bateria, reconhecimento de conversa e conexão automática foram implementados no Linux e Android e funcionam bem
  • Alguns recursos exigem VendorID spoofing ou ainda estão em fase de planejamento; Head Gestures é compatível apenas com Android e não será implementado no Linux
  • Find My, áudio espacial, monitoramento de frequência cardíaca e áudio bidirecional de alta qualidade ainda estão incompletos ou em investigação; no Android, alguns recursos podem exigir root
  • O app Android e partes da reescrita para Linux incluem código gerado por IA; o projeto é distribuído sob GPLv3 ou posterior, mas os direitos de uso do nome, logo e branding LibrePods são restritos separadamente

O que o LibrePods faz

  • LibrePods implementa o protocolo proprietário usado para trocar dados entre AirPods e dispositivos Apple
  • Com essa implementação, também é possível usar em plataformas não Apple recursos dos AirPods como:
    • Alterar modos de controle de ruído
    • Detecção rápida de uso
    • Status preciso da bateria
    • Head Gestures
    • Conversational Awareness
    • Outros recursos de configuração dos AirPods
  • A documentação de instalação é separada por plataforma

Suporte a recursos por plataforma

  • Recursos implementados e funcionando bem tanto no Linux quanto no Android

    • Alteração do modo de escuta
    • Detecção de uso
    • Status da bateria
    • Alteração do nome dos AirPods
      • No Android, pode ser necessário parear novamente após mudar o nome
    • Conversational Awareness
    • Conexão automática dos AirPods
  • Recursos compatíveis apenas com Android

    • Head Gestures
    • Outras configurações de acessibilidade
      • Press speed
      • Press and Hold duration
      • Noise Cancellation with single AirPod
      • Volume control on swipe
      • Volume swipe speed
    • Outras configurações gerais
      • Alternar modos de escuta ou chamar o assistente digital com Press and Hold
      • Configurações de controle de chamadas
      • Personalized volume
      • Microphone side
      • Pausar mídia ao adormecer
      • Ativar Off listening mode
    • Recursos que exigem VendorID spoofing
    • Loud Sound Reduction
    • Hearing Aid
    • Personalização do Transparency Mode
    • Multi-device connectivity
    • Os critérios de indicação de status são os seguintes
    • ✅: implementado e funcionando bem
    • ⚪: exige VendorID spoofing; o risco fica por conta do usuário
    • 🔴: ainda não implementado, planejado
    • ⛔: não será implementado
    • ❓: desconhecido

VendorID spoofing e recursos adicionais

  • VendorID spoofing é uma forma de acessar vários recursos especiais alterando o VendorID do DID Profile para o valor da Apple
  • No Linux, pode ser usado modificando o DeviceID em /etc/bluetooth/main.conf
    • Linha de configuração: DeviceID = bluetooth:004C:0000:0000
  • No Android, se o Xposed estiver disponível e o módulo LibrePods estiver ativado, é possível habilitar act as Apple device nas configurações do app
  • Multi-device Connectivity permite conectar até 2 dispositivos aos AirPods ao mesmo tempo, com uso de áudio e controles
    • Quando o Android assume os AirPods, os dispositivos Apple exibem uma notificação "Move to iPhone", como se fosse um dispositivo Apple
    • Quando outro dispositivo assume, um pop-up também é exibido no Android
  • Configurações relacionadas a acessibilidade e aparelho auditivo também podem ser configuradas
    • Amplification, balance, tone, conversation boost e ambient noise reduction do Transparency Mode
    • Loud Sound Reduction
    • Personalização de Hearing Aid e configuração de resultados de audiogram
    • O app não oferece função de teste auditivo, alegando que ela exige maior precisão

Recursos ainda incompletos e limitações de escopo

  • Recursos relacionados ao Find My estão planejados, mas exigem engenharia reversa adicional e podem exigir root no Android
    • Adicionar AirPods à rede Find My
    • Reproduzir som no estojo de recarga
    • Notificações quando forem deixados para trás
    • Alternar o som de carregamento do estojo
  • Spatial Audio atualmente não fornece ao Android informações de head tracking para que o sistema operacional realize HRTF
    • Ainda não foi totalmente explorado e pode exigir root
    • O recurso de espacializar som estéreo está fora do escopo do projeto e não será oferecido
    • Muitos OEMs têm suas próprias implementações
  • Heart Rate Monitoring está em desenvolvimento para modelos a partir do AirPods Pro 3
    • Mesmo que seja implementado, é muito provável que exija root no Android
  • High quality two-way audio está relacionado a um recurso em que, no iOS/iPadOS, os AirPods continuam usando A2DP enquanto enviam o fluxo de áudio do microfone por AACP
    • No Android, provavelmente exigirá root por precisar de uma integração mais profunda com áudio

Protocolo, engenharia reversa e uso de IA

  • Informações sobre o protocolo podem ser consultadas no plugin dissector de Wireshark de Nojus, pabloaul/apple-wireshark
  • A maior parte da implementação do LibrePods não usou esse dissector; o autor do projeto fez engenharia reversa do protocolo por conta própria antes da criação do dissector
  • No entanto, o autor afirma que esse trabalho de engenharia reversa foi necessário para recursos futuros como áudio bidirecional de alta qualidade e áudio espacial
  • Partes totalmente geradas por IA no app Android
    • Toda a lógica e UI de Head Gestures
    • Ambas as versões de offset setup usando r2 e o módulo Xposed
    • Troubleshooter e LogCollector
  • As demais partes principais do app Android foram escritas manualmente
    • background service
    • Classes de AACP e ATT Bluetooth manager
    • Toda a UI e pequenos componentes
  • Na reescrita para Linux, aacp.rs e att.rs foram traduzidos por IA de Kotlin para Rust
    • Partes de media_controller.rs, principalmente a integração com Pulse, também foram geradas por IA
  • Alguns componentes de UI foram retirados do app demo de Kyant0, sob Apache License 2.0

Apps alternativos, licença e aviso de marcas

  • São apresentados apps alternativos que podem ser usados em outras plataformas ou condições
    • CAPod: app companion de AirPods para Android, recomendado para quem usa Android 16 QPR3 ou inferior e não tem root
    • MagicPods for Steam Deck: website
    • MagicPods: alternativa para quem procura LibrePods para Windows
  • LibrePods é distribuído como software livre sob os termos da GPLv3 ou posterior
  • A GPL não concede direitos de uso do nome, logo ou branding LibrePods
  • O nome e o logo LibrePods não podem ser usados sem autorização de forma que sugira afiliação, endosso ou associação com o projeto oficial
  • A fonte SF Pro usada no app Android é propriedade da Apple Inc. e será substituída por uma alternativa aberta em versões futuras
  • AirPods, AirPods Pro, AirPods Max e o logo AirPods são marcas comerciais da Apple Inc.; o projeto LibrePods não é afiliado nem endossado pela Apple Inc.
  • librepods.org não é o site oficial do projeto LibrePods, e há um alerta de que ele afirma incorretamente ser o site oficial por meio de uma reivindicação de copyright no rodapé e do uso do logo LibrePods

1 comentários

 
GN⁺ 3 시간 전
Comentários no Hacker News
  • Só para esclarecer algo que pode gerar confusão: os AirPods já funcionam como fones Bluetooth comuns em outros dispositivos
    Este projeto implementa alguns recursos e interfaces adicionais integrados aos produtos da Apple

    • Não sei o que há de confuso. Isso já está explicado no topo do README
      Está escrito: “LibrePods allows you to use AirPods features that are exclusive to Apple devices. It implements the proprietary protocol used to exchange data between AirPods and Apple devices”, e em seguida há também uma tabela de recursos
    • Não é por isso que as pessoas compram AirPods. O ponto principal é a transição natural do iPhone para a Apple TV, o MBP e o Mini
      Existem produtos com som melhor por preços menores, mas a qualidade de áudio é quase a menor parte dessa história
    • Se minha memória não falha, desde pelo menos 2021 havia vários apps para Android que mostravam o nível de bateria dos AirPods
      O mesmo valia para recursos essenciais além de conectá-los como dispositivo comum de saída/entrada de áudio Bluetooth
  • Este projeto é excelente. Tomara que um dia o AirDrop também seja libertado
    https://github.com/seemoo-lab/opendrop parecia promissor, mas parece ter parado; espero que um dia seja possível

  • Se eu não tivesse certeza de que a Apple vai tentar bloquear ao máximo todos os caminhos que permitam isso funcionar no futuro, talvez isso tivesse me dado um motivo para comprar AirPods

    • Os AirPods já funcionam fora do ecossistema da Apple
      Isto está mais para alguém ter implementado uma interface para recursos extras que já são integrados aos sistemas operacionais da Apple
    • Os AirPods são atualizados quando estão carregando no estojo e pareados com um dispositivo xOS
      Para fazer fixação de versão, é preciso garantir que eles nunca sejam conectados a um produto Apple
    • Por que a Apple iria querer tornar os AirPods uma compra pior? A Apple permite que você rode qualquer sistema operacional no Mac e, nesse lado, ela não é ativamente hostil, embora também não ajude a comunidade
      Mesmo assim, se você ainda não é usuário de computadores ou celulares Apple, eu recomendaria o Sony WF-1000XM6. Dizem que a experiência de uso é pior e um pouco bugada, mas é bem provável que o som seja melhor
    • AirPods são dispositivos offline; se você comprar um par agora, eles devem continuar funcionando indefinidamente
      Ainda assim, talvez seja melhor recompensar fabricantes que não exigem esse tipo de contorno só para eu usar o hardware que comprei
    • Eu não compraria. São os fones intra-auriculares mais desconfortáveis do mercado, independentemente da faixa de preço
  • Discussão anterior: https://news.ycombinator.com/item?id=45941596

  • Respeito o trabalho e os hacks envolvidos aqui
    Mas não sei por que eu deveria apoiar uma empresa tão hostil comprando AirPods. Não me surpreenderia se saísse um patch para impedir isso

    • Este é o ponto que mais me incomoda na Apple. O hardware é realmente excelente, mas a postura contra a liberdade do usuário no próprio hardware dela faz com que eu nunca o use
      Mesmo que dê para contornar e hackear, a cultura de ver o usuário como alguém a ser controlado e cuidado me incomoda
    • Isso parece mais preguiça do que hostilidade. Os AirPods usam Bluetooth padrão para tudo o que o Bluetooth oferece
      O que não funciona em plataformas que não são da Apple são coisas como configurações, alterar ações de apertar, carregar atualizações de firmware etc.
      Não há como fazer isso só com Bluetooth padrão, então é necessário um app dedicado. A Apple simplesmente não fez um app dedicado para outras plataformas, e não há motivo para ela se importar se alguém gastar recursos para criar um. De todo modo, os AirPods foram vendidos e outra pessoa pagou o custo de criar o app, então a Apple saiu ganhando
    • Não sei o que há de tão hostil nisso
      Não se pode adicionar recursos sobre uma conexão Bluetooth comum e optar por oferecê-los apenas em plataformas que se consegue controlar totalmente e garantir qualidade?
      Só oferecer recursos de forma exclusiva já é realmente hostil? Uma empresa não pode oferecer vantagens quando vários de seus produtos são usados juntos?
      Ou a ideia é que isso é hostil porque se presume que a Apple vai aplicar um patch contra isso?
      1. Pela diversão
      2. Para dar liberdade adicional a compradores de segunda mão, pessoas que ganharam de presente, pessoas que compraram no passado etc.
  • Usei vários pares de AirPods ao longo dos anos, e só agora fiquei sabendo de alguns desses recursos
    Cheguei até a pensar que deveria haver uma terceira coluna indicando se há suporte da Apple. Claro, é brincadeira

  • Para alguém que não tem AirPods no momento e não acompanha muito o lado da Apple, seria útil explicar quais recursos se perdem ao parear AirPods com dispositivos que não são da Apple

    • Há uma lista de compatibilidade de recursos
  • Fiquei animado achando que isso permitiria usar AirPods no Linux como alto-falante e headset ao mesmo tempo

    • Há um PR para esse recurso: https://github.com/librepods-org/librepods/pull/655
      Testei pessoalmente e parece funcionar bem. Espero que não seja bloqueado por patentes
    • Também é possível usar AirPods no Linux como alto-falante (reprodução) e headset (microfone) ao mesmo tempo
      Mas é preciso mudar o perfil Bluetooth para HFP (Hands-Free Profile) ou HSP (Headset Profile)
      Também vale observar que isso é o padrão para obter qualidade melhor. Isso se deve à especificação Bluetooth, não ao Linux
  • O principal recurso útil que procuro é usar multiponto ilimitado também em outros dispositivos
    As duas conexões que a maioria dos outros dispositivos oferece são muito ruins. Às vezes seria bom poder conectar rapidamente ao telefone VoIP de mesa da empresa