本页介绍了如何在 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.2 或 192.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 实例。 |