Wi-Fi

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

使用 Wmediumd

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

如要控制 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 以上版本,如要控制及設定虛擬化 Wi-Fi AP,請使用 OpenwrtControlService 服務。如要進一步瞭解如何使用 REST API 或 CLI 控制這項服務,請參閱 Cuttlefish:環境控制

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

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