Wi-Fi Direct

A Wi-Fi Direct também conhecido como Wi-Fi P2P, permite que os dispositivos com suporte descubram e se conectem diretamente uns com os outros usando o protocolo Wi-Fi Direct sem acesso à Internet ou à rede celular. Isso com base na Wi-Fi Alliance WFA Especificação do Wi-Fi Direct permite o compartilhamento de dados de alta capacidade entre dispositivos e apps confiáveis que estão fora da rede.

Exemplos e origem

Para usar esse recurso, os fabricantes dos dispositivos precisam implementar a rede Wi-Fi Interfaces HAL de fornecedor e suplicante.

No Android 13, a interface suplicante usa a AIDL para a definição da HAL. Em No Android 14 e versões mais recentes, a interface HAL do fornecedor usa AIDL. No Android 12 e versões anteriores, As interfaces HAL do fornecedor são definidas usando HIDL.

As seguintes superfícies de HAL de Wi-Fi são necessárias para utilizar o Wi-Fi Direct. Atributo:

  • hardware/interfaces/wifi/aidl ou hardware/interfaces/wifi/1.3 ou superior
  • hardware/interfaces/wifi/supplicant/aidl ou hardware/interfaces/wifi/supplicant/1.2 ou superior

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 a HIDL ou AIDL do Wi-Fi e ativar a sinalização de recurso para o Wi-Fi Direct. Em device.mk localizado em device/<oem>/<device>, modifique a variável de ambiente PRODUCT_COPY_FILES para incluir suporte para o 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 a interface do Wi-Fi Direct endereço são aleatórias. Eles devem ser diferentes do endereço MAC verdadeiro do do dispositivo e precisa atender aos seguintes requisitos:

  • O endereço do dispositivo com Wi-Fi Direct deverá ser aleatório na criação da interface se houver não é um grupo persistente salvo. caso contrário, o endereço do dispositivo deve 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 do Wi-Fi Direct foi implementada em "wpa_supplicant". e controladas 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 pode ser feito em:
    • hardware/interface/wifi/supplicant/1.2 para HIDL
    • hardware/interface/wifi/supplicant/aidl para AIDL
  • Definir config_wifi_p2p_mac_randomization_supported como "true" em um dispositivo personalizado sobreposição.

Validação

O Android oferece um conjunto de testes de unidade, Testes do conjunto de teste de compatibilidade (CTS) Testes do CTS Verifier para validar o Wi-Fi Atributo direto. O Wi-Fi Direct também pode ser testado usando o Pacote de testes de fornecedor (VTS, na sigla em inglês).

Testes de unidade

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 teste por um dispositivo e um dispositivo conhecido. Para executar os testes, abra o CTS Verifier e navegue até a seção chamada Testes do Wi-Fi Direct.