Suporte ao AirDrop chega ao Linux em Macs com chip T2 após engenharia reversa no kernel

Suporte ao AirDrop chega ao Linux em Macs com chip T2 após engenharia reversa no kernel

Um novo conjunto de patches submetido para a lista de desenvolvimento do kernel Linux introduz o suporte ao protocolo AWDL (Apple Wireless Direct Link) no driver brcmfmac. A novidade permite que usuários de distribuições Linux instaladas em computadores Mac com chip de segurança T2 possam enviar e receber arquivos via AirDrop diretamente com outros Macs, iPhones e iPads.

A implementação, desenvolvida por Andre Eikmeyer, consiste em sete modificações no driver de rede sem fio da Broadcom. O AWDL é a tecnologia base que a Apple utiliza para o AirDrop. Nos Macs equipados com o chip T2, a própria documentação de firmware da placa de rede assume o controle das operações diretas do AWDL, permitindo a comunicação sem fio ponto a ponto de alta velocidade.

Divisão de tarefas entre firmware e espaço de usuário

No design proposto para o Linux, o driver cria uma interface de rede dedicada chamada “awdl%d”, que opera fora do subsistema padrão cfg80211. A partir do momento em que os parâmetros iniciais são definidos pelo host, o firmware proprietário da Apple passa a manter o agendamento de pacotes AWDL, envia os quadros recebidos do sistema operacional e transporta os dados reais entre os dispositivos pareados.

As funções de alto nível, que incluem a eleição de rede, a descoberta de pares e a interface de transferência de arquivos do AirDrop, não rodam no kernel. Esse trabalho foi transferido para o espaço de usuário através de uma aplicação chamada t2-drop. O software foi desenvolvido em código aberto sob a licença GPL e faz parte do projeto KaiT2en-Fedora. Para que toda essa estrutura funcione, o driver de kernel se comunica com a aplicação utilizando comandos e eventos de fabricante (vendor commands) específicos da Broadcom.

Engenharia reversa com dtrace

O funcionamento interno da comunicação de hardware da Apple não é público. Para entender como o macOS controla a placa de rede durante uma transferência de arquivos, Eikmeyer precisou realizar engenharia reversa do protocolo de comunicação.

O desenvolvedor utilizou um script da ferramenta dtrace rodando no macOS 15.4.1 em um MacBookAir9,1 equipado com o chip Wi-Fi BCM4377. Durante o processo, ele registrou as chamadas internas (iovar) que o sistema operacional enviava para o firmware no exato momento em que o AirDrop era aberto e fechado no Finder.

Em um teste complementar, o mesmo MacBookAir9,1 foi monitorado enquanto outro computador, um MacBookPro15,1 com chip BCM4364, iniciava a conexão AWDL rodando o código Linux modificado. Essa análise de pacotes cruzados e eventos de console gerou a base técnica para os comandos agora incorporados no patch.

Hardware validado e limitações conhecidas

linux mac t2 suporte awdl 2
Suporte ao AirDrop chega ao Linux em Macs com chip T2 após engenharia reversa no kernel 4

Para que o novo recurso funcione, o driver exige que o firmware original da placa Wi-Fi anuncie a capacidade “awdl” em suas instruções e suporte a versão 3 do comando de criação de interface. A comunidade KaiT2en, composta por cerca de 280 usuários, validou os patches em cenários reais de uso.

Os testadores relataram sucesso consistente nas transferências utilizando as controladoras BCM4364 e BCM4377. A lista de hardware com compatibilidade validada inclui as linhas MacBookPro15,1, 15,2, 15,3, 15,4, 16,1 e 16,4, além do MacBookAir9,1 e do iMac20,1. A comunidade reporta que não houve qualquer problema de regressão ou queda de estabilidade no Wi-Fi tradicional.

Existe uma limitação de desempenho documentada pelo desenvolvedor. As transferências via AirDrop nos modelos MacBookPro16,1 e 16,4 operam de forma significativamente mais lenta quando comparadas aos demais computadores da mesma geração. A causa técnica dessa restrição de velocidade ainda está sob investigação.

Equipamentos da Apple lançados antes da era do chip T2 ficam de fora dessa atualização. Durante a apuração técnica, Eikmeyer testou a imagem de firmware do chip BCM4350 presente em um MacBookPro14,1. Embora a placa anuncie o suporte teórico ao protocolo, ela responde à solicitação de criação de interface com um código de erro apontando ausência de suporte (BCME_UNSUPPORTED), inviabilizando o uso do recurso nos modelos mais antigos.