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 服務。如要瞭解如何使用 REST API 或 CLI 控制這項服務,請參閱「Cuttlefish:環境控制」。

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

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