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 或更低版本)工具。

中型服務

對於運行 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 power)。
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

Openwrt控制服務

對於運行 Android 14 或更高版本的設備,要控制和配置虛擬化 Wi-Fi AP,請使用OpenwrtControlService服務。有關如何使用 REST API 或 CLI 控制此服務的詳細信息,請參閱Cuttlefish:環境控制

下表列出了OpenwrtControlService中的方法。有關這些方法的詳細信息,請參閱openwrt_control.proto

方法描述
LuciRpc向 OpenWRT 中的 Luci Web 介面發送 RPC 呼叫。
OpenwrtIpAddr取得 OpenWRT WAN IP 位址。使用此位址透過 SSH 或 Web 介面連線 OpenWRT 執行個體。