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://127.0.0.1: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 向 OpenWRT 中的 Luci Web 界面发送 RPC 调用。
OpenwrtIpAddr 获取 OpenWRT WAN IP 地址。使用此地址通过 SSH 或 Web 界面连接 OpenWRT 实例。