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 執行個體。