이 페이지에서는 Cuttlefish 기기에서 Wi-Fi를 제어하는 방법을 설명합니다.
Wmediumd 사용
Cuttlefish Wi-Fi 기능은 시뮬레이션 도구인 Wmediumd를 사용하여 무선 매체를 시뮬레이션합니다. Wmediumd는 두 Cuttlefish 인스턴스 간 또는 Cuttlefish 인스턴스와 OpenWRT 인스턴스 간 Wi-Fi 패킷 전송을 관리합니다. Cuttlefish용 Wmediumd는 /platform/external/wmediumd/에서 구현됩니다.
Wmediumd 인터페이스를 제어하려면 WmediumdService(Android 14 이상) 또는 wmedium_control(Android 13 이하) 도구를 사용하세요.
WmediumdService
Android 14 이상을 실행하는 기기의 경우 WmediumdService를 사용하여 Wmediumd 도구를 제어하세요. REST API나 명령줄 인터페이스(CLI)를 사용하여 이 서비스를 제어하는 방법에 관한 자세한 내용은 Cuttlefish: 환경 제어를 참고하세요.
다음 표에는 WmediumdService의 메서드가 나열되어 있습니다. 메서드에 관한 자세한 설명은 wmediumd.proto를 참고하세요.
| 메서드 | 설명 | 
|---|---|
| ListStations | Wmediumd에 연결된 모든 스테이션을 나열합니다. | 
| LoadConfig | 주어진 파일로 Wmediumd 구성을 로드합니다. | 
| ReloadConfig | 현재 로드된 Wmediumd 구성 파일을 새로고침합니다. | 
| SetCivicloc | 특정 스테이션의 도시 위치(예: 우편 주소)를 설정합니다. | 
| SetLci | 특정 스테이션의 LCI(위도, 경도, 고도)를 설정합니다. | 
| SetPosition | 2차원 공간에서 스테이션 위치를 설정합니다. | 
| 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 | 2차원 공간에서 스테이션 위치를 설정합니다. | 
| set_snr MAC_ADDR1
MAC_ADDR2
SNR_VALUE | 두 스테이션 간 신호 대 잡음비(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 | RPC 호출을 OpenWRT의 Luci 웹 인터페이스로 전송합니다. | 
| OpenwrtIpAddr | OpenWRT WAN IP 주소를 가져옵니다. 이 주소를 사용하여 SSH 또는 웹 인터페이스를 통해 OpenWRT 인스턴스를 연결합니다. | 
