O recurso Wi-Fi Direct, também conhecido como Wi-Fi P2P, permite que dispositivos com suporte se descubram e se conectem diretamente usando o protocolo Wi-Fi Direct sem acesso à Internet ou à rede celular. Esse recurso, baseado na especificação Wi-Fi Direct (WFA, na sigla em inglês) da Wi-Fi Alliance, permite o compartilhamento de dados de alta capacidade entre dispositivos confiáveis e apps que estão fora da rede.
Exemplos e origem
Para usar esse recurso, os fabricantes de dispositivos precisam implementar as interfaces de fornecedor de Wi-Fi e HAL suplicante.
No Android 13, a interface do suplicante usa a AIDL para a definição da HAL. No Android 14 e em versões mais recentes, a interface da HAL de fornecedor usa AIDL. No Android 12 e versões anteriores, as interfaces HAL de fornecedor e suplicante são definidas usando o HIDL.
As superfícies de HAL de Wi-Fi abaixo são necessárias para usar o recurso Wi-Fi Direct:
hardware/interfaces/wifi/aidl
ouhardware/interfaces/wifi/1.3
ou mais recentehardware/interfaces/wifi/supplicant/aidl
ouhardware/interfaces/wifi/supplicant/1.2
ou mais recente
Implementação
Os fabricantes de dispositivos precisam oferecer suporte a framework e HAL/firmware:
- Estrutura:
- Código AOSP
- Ativar Wi-Fi Direct: requer um sinalizador de recurso
- Suporte a HAL com Wi-Fi Direct (P2P), o que implica suporte a firmware.
Para implementar esse recurso, os fabricantes de dispositivos implementam as interfaces HIDL ou AIDL do Wi-Fi e ativam a sinalização de recurso para o Wi-Fi Direct. No device.mk
, localizado
em device/<oem>/<device>
, modifique a variável de ambiente PRODUCT_COPY_FILES
para incluir suporte ao recurso Wi-Fi Direct:
```
PRODUCT_COPY_FILES +=
frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml
```
Todos os outros requisitos para oferecer suporte ao Wi-Fi Direct estão incluídos no AOSP.
Ordem aleatória de MAC
O Android exige que o endereço do dispositivo e o endereço da interface do Wi-Fi Direct sejam aleatórios. Eles precisam ser diferentes do endereço MAC verdadeiro do dispositivo e atender aos seguintes requisitos:
- O endereço do dispositivo do Wi-Fi Direct precisará ser aleatório na criação da interface se não houver um grupo persistente salvo. Caso contrário, o endereço do dispositivo precisará continuar usando o último endereço MAC gerado.
- O endereço da interface do Wi-Fi Direct, também conhecido como endereço do grupo, precisa ser aleatório sempre que uma conexão for estabelecida.
A ordem aleatória de MAC no Wi-Fi Direct é implementada em "wpa_supplicant" e controlada
por duas configurações, p2p_device_random_mac_addr
e
p2p_interface_random_mac_addr
.
Para ativar esse recurso, os fabricantes dos dispositivos precisam:
- Implemente a API
ISupplicantP2pIface::setMacRandomization
do suplicante de Wi-Fi. Dependendo da interface implementada, isso fica em:hardware/interface/wifi/supplicant/1.2
para HIDLhardware/interface/wifi/supplicant/aidl
para AIDL
- Defina
config_wifi_p2p_mac_randomization_supported
como "true" em uma sobreposição personalizada do dispositivo.
Validação
O Android oferece um conjunto de testes de unidade, testes do conjunto de teste de compatibilidade (CTS) e do CTS Verifier para validar o recurso do Wi-Fi Direct. Também é possível testar o Wi-Fi Direct usando o conjunto de teste de fornecedor (VTS, na sigla em inglês).
Testes de unidades
Faça os testes a seguir para verificar o pacote do Wi-Fi Direct.
Testes de serviço:
atest com.android.server.wifi.p2p
Testes do gerenciador:
atest android.net.wifi.p2p
Testes do conjunto de teste de compatibilidade (CTS)
Use testes CTS para validar o recurso do Wi-Fi Direct. O CTS detecta quando o recurso está ativado e inclui automaticamente os testes associados.
Para acionar os testes de CTS, execute:
% atest android.net.wifi.p2p.cts
Testes do CTS Verifier
Os testes do CTS Verifier validam o comportamento do Wi-Fi Direct usando dois dispositivos: um dispositivo de teste e um dispositivo conhecido em boas condições. Para executar os testes, abra o CTS Verifier e navegue até a seção "Testes do Wi-Fi Direct".