Wi-Fi

На этой странице описано, как управлять Wi-Fi на устройстве Cuttlefish.

Используйте Wmediumd

Функция Wi-Fi в Cuttlefish использует Wmediumd, инструмент моделирования, для имитации беспроводной среды. Wmediumd управляет доставкой пакетов Wi-Fi между двумя экземплярами Cuttlefish или между экземпляром Cuttlefish и экземпляром OpenWRT. Wmedium для Cuttlefish реализован в /platform/external/wmediumd/ .

Для управления интерфейсом Wmediumd используйте инструмент WmediumdService (Android 14 или выше) или wmedium_control (Android 13 или ниже).

WmediumdService

Для устройств под управлением Android 14 и выше используйте WmediumdService для управления инструментом Wmedium. Подробную информацию о том, как управлять этим сервисом с помощью REST API или интерфейса командной строки (CLI), см. в разделе Cuttlefish: Environment Control .

В таблице ниже перечислены методы класса 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 ] Перезагрузите конфигурацию Wmediumd, указав CONFIG_FILE_PATH . Если 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

Функция Wi-Fi в Cuttlefish поддерживает использование OpenWRT для виртуализации точек доступа Wi-Fi (AP). Реализация OpenWRT для Cuttlefish находится в platform/external/openwrt-prebuilts/ .

Для подключения к OpenWRT используйте информацию из следующей таблицы. Если вы не добавите никаких параметров при запуске Cuttlefish, идентификатор устройства будет cvd-1 , а WAN IP-адрес OpenWRT — 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

OpenwrtControl

Для устройств под управлением Android 14 и выше для управления и настройки виртуализированных точек доступа Wi-Fi используйте службу OpenwrtControlService . Подробную информацию о том, как управлять этой службой с помощью REST API или CLI, см. в разделе Cuttlefish: Environment Control .

В таблице ниже перечислены методы класса OpenwrtControlService . Подробную информацию о методах см. в файле openwrt_control.proto .

Методы Описание
LuciRpc Отправка RPC-запроса к веб-интерфейсу Luci в OpenWRT.
OpenwrtIpAddr Получите WAN IP-адрес OpenWRT. Используйте этот адрес для подключения к экземпляру OpenWRT через SSH или веб-интерфейс.