이 페이지에서는 REST API나 명령줄 인터페이스를 사용하여 Cuttlefish 기기의 환경을 제어하는 방법을 설명합니다. 예를 들어 Wi-Fi 신호를 수정하거나 Cuttlefish 기기의 GPS 위치를 업데이트할 수 있습니다.
서비스
cvd env
명령어는 Cuttlefish 환경을 제어하는 다음 서비스를 제공합니다.
서비스 | 설명 |
---|---|
GnssGrpcProxy
|
Cuttlefish 위치정보 기능의 GNSS를 제어합니다. |
OpenwrtControlService
|
Cuttlefish Wi-Fi 기능을 위한 가상화된 Wi-Fi AP 제공자인 Openwrt 를 제어합니다. |
WmediumdService
|
Cuttlefish Wi-Fi 기능을 위한 무선 매체 시뮬레이터인 Wmediumd 를 제어합니다. |
REST API를 사용하여 환경 제어
이 섹션에서는 <https://localhost:1443>
서비스 엔드포인트를 통해 REST API를 사용하여 환경을 제어하는 방법을 설명합니다.
사용 가능한 서비스 또는 메서드 목록
모든 서비스의 목록을 가져오려면 GET
요청을 기기 ID와 함께 다음 URL로 전송합니다.
https://localhost:1443/devices/DEVICE_ID/services
서비스의 모든 메서드 목록을 가져오려면 기기 ID 및 서비스 이름과 함께 GET
요청을 다음 URL로 전송합니다.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME
요청 또는 응답 메시지 유형과 같은 메서드의 세부정보를 가져오려면 기기 ID와 서비스 이름, 메서드 이름과 함께 다음 URL로 GET
요청을 전송합니다.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
요청 및 응답 유형에 관한 세부정보 확인
요청 또는 응답 메시지 유형의 세부정보를 가져오려면 기기 ID와 서비스 이름, 요청 또는 응답 메시지 유형과 함께 GET
요청을 다음 URL로 전송합니다. 이렇게 하면 메시지에 있는 각 필드의 모든 이름과 유형이 출력됩니다. 그러면 이 정보를 사용하여 RPC 요청 전송을 위한 JSON 형식의 proto 메시지를 작성할 수 있습니다.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/REQUEST_OR_RESPONSE_TYPE_NAME/type
환경을 변경하기 위해 RPC 요청 전송
JSON 형식 proto를 사용하여 서비스 메서드를 호출하는 RPC 요청을 전송하려면 기기 ID와 서비스 이름, 메서드 이름과 함께 POST
요청을 다음 URL로 전송합니다. JSON 형식 proto는 본문에 포함되어야 합니다.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
사용 사례
다음은 SetTxpower
를 호출하여 Wi-Fi 신호 강도를 수정하기 위한 REST API의 사용 사례입니다.
Wi-Fi 신호 강도를 수정하기 위한 서비스 이름, 메서드 이름, 요청 메시지 유형 이름을 결정합니다.
GET
요청을 다음 URL로 전송하여 사용할 수 있는 모든 서비스 목록을 가져옵니다.https://localhost:1443/devices/cvd-1/services
다음은 응답 예입니다.
{"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
GET
요청을 다음 URL로 전송하여WmediumdService
의 메서드 목록을 가져옵니다.https://localhost:1443/devices/cvd-1/services/WmediumdService
다음은 응답 예입니다.
{"methods":["ListStations","LoadConfig","ReloadConfig","SetCivicloc","SetLci","SetPosition","SetSnr","SetTxpower","StartPcap","StopPcap"]}
GET
요청을 다음 URL로 전송하여SetTxpower
메서드의 요청 및 응답 메시지 유형에 관한 정보를 가져옵니다.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
다음은 응답 예입니다.
{"request_type_name":"wmediumdserver.SetTxpowerRequest","response_type_name":"google.protobuf.Empty"}
GET
요청을 다음 URL로 전송하여wmediumdserver.SetTxpowerRequest
요청 메시지 유형의 세부정보를 가져옵니다.https://localhost:1443/devices/cvd-1/services/WmediumdService/wmediumdserver.SetTxpowerRequest/type
다음은 응답 예입니다.
message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
다음 요청 본문과 함께 다음 URL에
POST
요청을 전송해 Wi-Fi 신호 강도를 원하는 수준으로 수정하려면WmediumdService
서비스에 RPC 요청을 전송합니다.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
{"mac_address":"42:00:00:00:00:00", "tx_power":1}
다음은 응답 예입니다.
{}
명령줄을 사용하여 환경 제어
이 섹션에서는 cvd env
CLI 명령어에 사용할 수 있는 하위 명령어를 설명합니다.
자세한 내용을 확인하려면 cvd help env
를 사용하여 도움말 메시지를 출력하세요.
사용 가능한 서비스 또는 메서드 목록
모든 서비스 목록을 가져오려면 인수 없이 cvd env ls
를 사용하세요.
cvd env ls
서비스를 위한 모든 메서드 목록을 가져오려면 서비스 이름을 인수로 포함합니다.
cvd env ls SERVICE_NAME
메서드의 요청 또는 응답 메시지 유형과 같은 자세한 내용을 확인하려면 서비스 이름과 메서드 이름을 포함하세요.
cvd env ls SERVICE_NAME METHOD_NAME
요청 및 응답 유형에 관한 세부정보 확인
요청 또는 응답 메시지 유형에 관한 자세한 내용을 확인하려면 cvd env type
명령어를 사용하세요. 이 명령어는 메시지에 있는 각 필드의 모든 이름과 유형을 출력합니다. 그러면 이 정보를 사용하여 RPC 요청 전송을 위한 JSON 형식의 proto 메시지를 작성할 수 있습니다.
cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME
환경을 변경하기 위해 RPC 요청 전송
JSON 형식 proto를 사용하여 서비스 메서드를 호출하는 RPC 요청을 전송하려면 cvd enc call
명령어를 사용하세요. RPC 요청이 종료되면 인터페이스가 Rpc succeeded with OK status
메시지를 출력하며, 가능한 경우 값이 포함된 응답 메시지도 출력합니다.
cvd env call SERVICE_NAME METHOD_NAME JSON_FORMATTED_PROTO
사용 사례
다음은 SetTxpower
를 호출하여 Wi-Fi 신호 강도를 수정하기 위한 cvd env
CLI 명령어의 사용 사례입니다.
Wi-Fi 신호 강도를 수정하기 위한 서비스 이름, 메서드 이름, 요청 메시지 유형 이름을 결정합니다.
사용 가능한 모든 서비스 목록을 가져옵니다.
cvd env ls (Omitted) { "services" : [ "OpenwrtControlService", "EchoService", "GnssGrpcProxy", "WmediumdService" ] }
WmediumdService
의 메서드 목록을 가져옵니다.cvd env ls WmediumdService (Omitted) { "methods" : [ "ListStations", "LoadConfig", "ReloadConfig", "SetCivicloc", "SetLci", "SetPosition", "SetSnr", "SetTxpower", "StartPcap", "StopPcap" ] }
SetTxpower
메서드의 요청 및 응답 메시지 유형에 관한 정보를 가져옵니다.cvd env ls WmediumdService SetTxpower (Omitted) { "request_type" : "wmediumdserver.SetTxpowerRequest", "response_type" : "google.protobuf.Empty" }
wmediumdserver.SetTxpowerRequest
요청 메시지 유형의 세부정보를 가져옵니다.cvd env type WmediumdService wmediumdserver.SetTxpowerRequest (Omitted) message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
WmediumdService
서비스에 RPC 요청을 전송하여 Wi-Fi 신호 강도를 원하는 수준으로 수정합니다.cvd env call WmediumdService SetTxpower "{mac_address:'42:00:00:00:00:00', tx_power:1}" (Omitted) Rpc succeeded with OK status {}