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 或更高版本的设备,如需控制和配置虚拟化 Wi-Fi AP,请使用 OpenwrtControlService 服务。如需详细了解如何使用 REST API 或 CLI 控制此服务,请参阅 Cuttlefish:环境控制

下表列出了 OpenwrtControlService 中的方法。如需详细了解这些方法,请参阅 openwrt_control.proto

方法 说明
LuciRpc 将 RPC 调用发送到 OpenWRT 中的 Luci 网页界面。
OpenwrtIpAddr 获取 OpenWRT WAN IP 地址。使用此地址通过 SSH 或网页界面连接 OpenWRT 实例。