Wi-Fi

本頁說明如何在 Cuttlefish 裝置上控制 Wi-Fi。

使用 Wmediumd

Cuttlefish Wi-Fi 功能會使用模擬工具 Wmediumd 模擬無線介質。Wmediumd 會管理兩個 Cuttlefish 執行個體之間,或 Cuttlefish 執行個體與 OpenWRT 執行個體之間的 Wi-Fi 封包傳送作業。適用於 Cuttlefish 的 Wmedium 已在 /platform/external/wmediumd/ 中實作。

如要控制 Wmediumd 介面,請使用 WmediumdService (Android 14 以上版本) 或 wmedium_control (Android 13 以下版本) 工具。

WmediumdService

如果是搭載 Android 14 以上版本的裝置,請使用 WmediumdService 控制 Wmedium 工具。如要進一步瞭解如何使用 REST API 或指令列介面 (CLI) 控制這項服務,請參閱 Cuttlefish:環境控制

下表列出 WmediumdService 中的各項方法。如要進一步瞭解這些方法,請參閱 wmediumd.proto

方法 說明
ListStations 列出已連結至 Wmediumd 的所有電台。
LoadConfig 使用指定檔案載入 Wmediumd 設定。
ReloadConfig 重新載入目前載入的 Wmediumd 設定檔。
SetCivicloc 設定特定車站的民用地址 (例如郵遞地址)。
SetLci 設定特定站點的 LCI (緯度、經度、海拔高度)。
SetPosition 在二維空間中設定車站位置。
SetSnr 設定兩個站點之間的信噪比 (SNR) 值 (0 到 255)。
SetTxpower 設定特定站點的傳輸功率 (TX 功率)。
StartPcap 開始擷取所有傳送至空中的影格,並儲存至 .pcap 檔案。
StopPcap 停止並完成目前的封包擷取作業。

wmediumd_control

如果是搭載 Android 13 以下版本的裝置,請使用 wmediumd_control 工具控管 Cuttlefish 裝置中的無線介質。下表列出 wmediumd_control 中的子指令。

子指令 說明
list_stations 列出已連結至 Wmediumd 的所有電台。
reload_config [CONFIG_FILE_PATH] 使用 CONFIG_FILE_PATH 重新載入 Wmediumd 設定。如果省略 CONFIG_FILE_PATH,請重新載入目前載入的設定檔。
set_civicloc MAC_ADDR CIVICLOC 設定特定車站的民用地點 (例如郵遞地址)。
set_lci MAC_ADDR LCI 設定特定站點的 LCI (緯度、經度、高度)。
set_position MAC_ADDR X_POSITION Y_POSITION 在二維空間中設定站點位置。
set_snr MAC_ADDR1 MAC_ADDR2 SNR_VALUE 設定兩個站之間的信噪比 (SNR) 值 (0 到 255)。
start_pcap PCAP_FILE_PATH 開始擷取傳送至空中的所有影格,並儲存至 .pcap 檔案。
stop_pcap 停止並完成目前的封包擷取作業。

使用 OpenWrt

Cuttlefish Wi-Fi 功能支援使用 OpenWRT 將 Wi-Fi 存取點 (AP) 虛擬化。Cuttlefish 的 OpenWRT 實作項目位於 platform/external/openwrt-prebuilts/

如要連線至 OpenWRT,請參考下表中的資訊。如果您在啟動 Cuttlefish 時未附加任何選項,裝置 ID 就是 cvd-1,OpenWRT WAN IP 位址則是 192.168.94.2192.168.96.2

連線類型 到達網頁
SSH root@OPENWRT_WAN_IP_ADDRESS
網頁 https://localhost:1443/devices/DEVICE_ID/openwrt
網頁 (舊版) https://OPENWRT_WAN_IP_ADDRESS

OpenwrtControlService

如果是搭載 Android 14 以上版本的裝置,請使用 OpenwrtControlService 服務來控制及設定虛擬 Wi-Fi AP。如要進一步瞭解如何使用 REST API 或 CLI 控制這項服務,請參閱 Cuttlefish:環境控制

下表列出 OpenwrtControlService 中的各項方法。如要進一步瞭解這些方法,請參閱 openwrt_control.proto

方法 說明
LuciRpc 將 RPC 呼叫傳送至 OpenWRT 中的 Luci 網頁介面。
OpenwrtIpAddr 取得 OpenWRT WAN IP 位址。使用這個位址,透過 SSH 或網頁介面連線至 OpenWRT 執行個體。