O Android fornece uma implementação de estrutura padrão do Android que inclui suporte para vários protocolos e modos de Wi-Fi, incluindo:
- Infraestrutura Wi-Fi (STA)
- Ponto de acesso Wi-Fi (Soft AP) nos modos conectado ou somente local
- Wi-Fi Direto (p2p)
- Reconhecimento de Wi-Fi (NAN)
- Wi-Fi RTT (IEEE 802.11mc FTM)
Um aplicativo que usa serviços Wi-Fi se comunica diretamente com os vários serviços Wi-Fi por meio do Binder. Os serviços Wi-Fi são executados no Serviço do Sistema e se comunicam com o HAL sobre HIDL. Este diagrama mostra a estrutura geral da pilha Android Wi-Fi.
Figura 1. Arquitetura de Wi-Fi Android
Estrutura do aplicativo
No nível da estrutura do aplicativo está o código do aplicativo, que usa as várias APIs android.net.wifi para interagir com a estrutura e o hardware Wi-Fi. Internamente, esse código chama o processo Wi-Fi por meio do mecanismo Binder IPC.
Serviços de Wi-Fi
Os serviços Wi-Fi são executados no Serviço do Sistema e estão localizados em packages/modules/Wifi/service/
. O serviço Wi-Fi se comunica com o Wi-Fi HAL sobre HIDL.
Existem vários serviços Wi-Fi:
- Serviço Wi-Fi: Mecanismo primário para controlar os modos de infraestrutura Wi-Fi (STA e AP).
- Serviço Wi-Fi P2P: Gerencia o modo Wi-Fi Direct.
- Serviço Wi-Fi Aware: Gerencia o modo Wi-Fi Aware.
- Serviço Wi-Fi RTT: Gerencia a funcionalidade IEEE 802.11mc FTM.
A estrutura Wi-Fi também inclui um processo autônomo, wificond , localizado em system/connectivity/wificond
. O processo wificond se comunica com o driver Wi-Fi por meio de comandos padrão nl80211
.
HALs de Wi-Fi
A estrutura Wi-Fi tem três superfícies Wi-Fi HAL representadas por três pacotes HIDL diferentes: Vendor HAL, Supplicant HAL e Hostapd HAL.
Para obter detalhes sobre as implementações dos vários HALs, consulte Wi-Fi HAL .