WLAN

本页介绍如何控制 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 实例。