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 2 次元空間における局の位置を設定します。
SetSnr 2 局間の信号対雑音比(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 2 次元空間における局の位置を設定します。
set_snr MAC_ADDR1 MAC_ADDR2 SNR_VALUE 2 局間の信号対雑音比(SNR)の値(0~255)を設定します。
start_pcap PCAP_FILE_PATH 無線で送信される全フレームのキャプチャを開始し、.pcap ファイルに保存します。
stop_pcap 現在のパケット キャプチャを停止して完了します。

OpenWRT を使用する

Cuttlefish Wi-Fi 機能は、仮想化された Wi-Fi アクセス ポイント(AP)に対して OpenWRT を使用することに対応しています。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 OpenWRT の Luci ウェブ インターフェースに RPC 呼び出しを送信します。
OpenwrtIpAddr OpenWRT WAN の IP アドレスを取得します。このアドレスを使用し、SSH またはウェブ インターフェースを介して OpenWRT インスタンスを接続します。