Wi-Fi Direct

Wi-Fi Direct 功能,也稱為 Wi-Fi P2P,可讓支援裝置探索及連線 直接連結彼此 使用 Wi-Fi Direct 通訊協定,無需存取網際網路或行動網路。這個 功能內建於 Wi-Fi Alliance (WFA) Wi-Fi Direct 規格 可讓您在 VM 中 不受信任的裝置和應用程式。

範例和來源

如要使用這項功能,裝置製造商必須支援 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/韌體支援:

  • 架構:
    • Android 開放原始碼計畫程式碼
    • 啟用 Wi-Fi Direct:需要功能旗標
  • Wi-Fi Direct (P2P) HAL 支援 (暗示韌體支援)

如要導入這項功能,裝置製造商會導入 Wi-Fi HIDL 或 AIDL 介面,並啟用 Wi-Fi Direct 功能旗標。位於device.mkdevice/<oem>/<device> 中,修改 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 的條件已納入 Android 開放原始碼計畫。

MAC 隨機化

Android 要求 Wi-Fi Direct 的裝置位址介面 address 以隨機方式排列。必須與 且必須符合下列需求:

  • 建立介面時,必須隨機設定 Wi-Fi Direct 裝置位址 (如果有的話) 不會儲存任何永久性群組否則裝置位址就必須繼續使用 由系統產生的 MAC 位址
  • Wi-Fi Direct 介面位址 (又稱為群組地址) 每次建立連線時都必須隨機指派。

「wpa_supplicant」中實作 Wi-Fi Direct MAC 隨機化機制並受到控管 分為兩種p2p_device_random_mac_addrp2p_interface_random_mac_addr

如要啟用這項功能,裝置製造商必須:

  • 實作 Wi-Fi 供應器 ISupplicantP2pIface::setMacRandomization API。 視實作的介面而定,這部分可能會:
    • hardware/interface/wifi/supplicant/1.2 代表 HIDL
    • hardware/interface/wifi/supplicant/aidl 代表 AIDL
  • 組合 config_wifi_p2p_mac_randomization_supported 設為「true」包括在自訂裝置上 重疊。

驗證

Android 提供一系列的單元測試 Compatibility Test Suite (CTS) 測試 透過 CTS 驗證器測試,驗證 Wi-Fi 是否正常運作 直接功能。您也可以使用 供應商測試套件 (VTS)

單元測試

請使用下列測試確認 Wi-Fi Direct 套件。

服務測試:

atest com.android.server.wifi.p2p

管理員測試:

atest android.net.wifi.p2p

Compatibility Test Suite (CTS) 測試

進行 CTS 測試,驗證 Wi-Fi Direct 功能。CTS 會偵測 並自動納入相關測試。

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

% atest android.net.wifi.p2p.cts

CTS Verifier 測試

CTS 驗證器測試使用兩種裝置來驗證 Wi-Fi Direct 行為:測試 和已知良好裝置。如要執行測試,請開啟 CTS Verifier 並 前往「Wi-Fi Direct Tests」部分。