無線直連

Wi-Fi Direct功能也稱為 Wi-Fi P2P,可讓支援設備使用 Wi-Fi Direct 協定直接發現並相互連接,而無需存取互聯網或蜂窩網路。此功能基於Wi-Fi 聯盟(WFA) Wi-Fi Direct 規範構建,允許在離線的受信任設備和應用程式之間共享高吞吐量資料。

範例和來源

要使用此功能,設備製造商必須實作 Wi-Fi 供應商和請求者 HAL 介面。

在 Android 13 中,請求者介面使用 AIDL 進行 HAL 定義。在 Android 14 及更高版本中,供應商 HAL 介面使用 AIDL。在 Android 12 及更低版本中,請求者和供應商 HAL 介面是使用 HIDL 定義的。

使用 Wi-Fi Direct 功能需要以下 Wi-Fi HAL 表面:

  • hardware/interfaces/wifi/aidlhardware/interfaces/wifi/1.3或更高版本
  • hardware/interfaces/wifi/supplicant/aidlhardware/interfaces/wifi/supplicant/1.2或更高版本

執行

設備製造商需要提供框架和HAL/韌體支援:

  • 框架:
    • AOSP程式碼
    • 啟用 Wi-Fi Direct:需要功能標誌
  • Wi-Fi Direct (P2P) HAL 支援(這意味著韌體支援)

為了實現此功能,設備製造商實施 Wi-Fi HIDL 或 AIDL 介面並啟用 Wi-Fi Direct 的功能標誌。在位於device/<oem>/<device>device.mk中,修改PRODUCT_COPY_FILES環境變數以包含 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
```

支援 Wi-FI Direct 的所有其他要求均包含在 AOSP 中。

MAC隨機化

Android 要求 Wi-Fi Direct裝置位址介面位址是隨機的。它們必須與設備的真實MAC位址不同,並且必須滿足以下要求:

  • 如果沒有保存持久組,則 Wi-Fi Direct 設備位址必須在建立介面時隨機化;否則設備位址必須繼續使用最後產生的 MAC 位址。
  • Wi-Fi Direct 介面位址也稱為群組位址,每次建立連線時都必須隨機化。

Wi-Fi Direct MAC 隨機化在「wpa_supplicant」中實現,並由兩個配置控制: p2p_device_random_mac_addrp2p_interface_random_mac_addr

若要啟用此功能,設備製造商必須:

  • 實作 Wi-Fi 請求方ISupplicantP2pIface::setMacRandomization API。根據實現的接口,它位於:
    • HIDL 的hardware/interface/wifi/supplicant/1.2
    • AIDL 的hardware/interface/wifi/supplicant/aidl
  • 在裝置自訂覆蓋中將config_wifi_p2p_mac_randomization_supported設定為「true」。

驗證

Android 提供了一組單元測試、整合測試(Android 連線測試套件或 ACTS)、相容性測試套件 (CTS)測試和CTS 驗證程式測試來驗證 Wi-Fi Direct 功能。也可以使用供應商測試套件 (VTS)來測試 Wi-Fi Direct。

單元測試

使用以下測試驗證 Wi-Fi Direct 套件。

服務測試:

atest com.android.server.wifi.p2p

經理測試:

atest android.net.wifi.p2p

整合測試(ACTS)

ACTS Wi-FI Direct 測試套件位於tools/test/connectivity/acts_tests/tests/google/wifi/p2p ,實現 Wi-Fi Direct 的功能測試。

相容性測試套件 (CTS) 測試

使用 CTS 測試來驗證 Wi-Fi Direct 功能。 CTS 偵測何時啟用該功能並自動包含相關測試。

若要觸發 CTS 測試,請執行:

% atest android.net.wifi.p2p.cts

CTS 驗證程式測試

CTS Verifier 測試使用兩個裝置來驗證 Wi-Fi Direct 行為:測試裝置和已知良好的裝置。若要執行測試,請開啟 CTS Verifier 並導覽至標題為 Wi-Fi Direct 測試的部分。