Android 9의 Wi-Fi 왕복 시간(RTT) 기능을 사용하면 지원 기기가 액세스 포인트(AP)이든 Wi-Fi Aware 동종 앱(기기에서 Wi-Fi Aware가 지원되는 경우)이든 상관없이 다른 지원 기기와의 거리를 측정할 수 있습니다. IEEE 802.11mc 프로토콜을 기반으로 구축된 이 기능을 통해 앱에서 향상된 위치 정확성과 인지 기능을 사용할 수 있습니다.
예시 및 소스
이 기능을 사용하려면 공급업체 HAL 인터페이스를 구현하세요. Android 14 이상에서는 공급업체 HAL 인터페이스가 AIDL을 사용하여 정의됩니다. Android 13 이하에서는 공급업체 HAL 인터페이스가 HIDL을 사용하여 정의됩니다. Android 8.0에서 HIDL은 인터페이스 및 패키지로 수집되는 유형 및 메서드 호출을 지정하여 구현을 간소화하는 데 사용된 이전의 하드웨어 추상화 계층(HAL) 구조를 대체합니다.
Wi-Fi 인터페이스를 따라 Wi-Fi RTT 기능을 사용합니다. 구현되는 인터페이스에 따라 다음 중 하나입니다.
- AIDL:
hardware/interfaces/wifi/aidl
- HIDL:
hardware/interfaces/wifi/1.0
이상
기존 Wi-Fi HAL을 참조하여 AIDL 및 HIDL 인터페이스와의 상관관계를 확인할 수 있습니다(hardware/libhardware_legacy/+/main/include/hardware_legacy/rtt.h).
구현
Wi-Fi RTT를 구현하려면 다음과 같이 프레임워크와 HAL/펌웨어 지원을 모두 제공해야 합니다.
프레임워크:
- AOSP 코드
- Wi-Fi RTT 사용 설정: 기능 플래그 필요
Wi-Fi RTT(IEEE 802.11mc) HAL 지원(펌웨어 지원을 의미함)
이 기능을 구현하려면 Wi-Fi AIDL 또는 HIDL 인터페이스를 구현하고 기능 플래그를 사용 설정합니다.
device/<oem>/<device>
에 있는device.mk
에서 Wi-Fi RTT 기능 지원을 포함하도록PRODUCT_COPY_FILES
환경 변수를 수정합니다.PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
그렇게 하지 않으면 이 기능에 필요한 모든 것이 AOSP에 포함됩니다.
MAC 주소 무작위 지정
개인 정보 보호를 강화하려면 Wi-Fi RTT 트랜잭션 시 사용되는 MAC 주소의 무작위 지정이 필요합니다. 즉, MAC 주소가 Wi-Fi 인터페이스의 기본 MAC 주소와 일치하지 않아야 합니다. 그러나 예외적으로, AP와 연결된 기기는 이 AP 또는 다른 AP와의 RTT 트랜잭션에 연결된 MAC 주소를 사용할 수 있습니다.
유효성 검사
이 기능을 위해 Android 호환성 테스트 모음(CTS) 테스트가 제공됩니다. CTS는 기능이 사용 설정되면 설정을 감지하고 관련 테스트를 자동으로 포함합니다. 공급업체 테스트 모음(VTS) 및 acts/sl4a(광범위한 통합 테스트를 실행하는 테스트 모음)를 사용하여 이 기능을 테스트할 수도 있습니다.
단위 테스트
Wi-Fi RTT 패키지 테스트는 다음을 사용하여 실행됩니다.
서비스 테스트:
atest com.android.server.wifi.rtt
관리자 테스트:
atest android.net.wifi.rtt
통합(ACTS) 테스트
/tools/test/connectivity/acts_tests/tests/google/wifi/rtt/README.md
에 설명된 것처럼 act/sl4a 테스트 모음은 기능, 성능 및 스트레스 테스트를 제공합니다.
CTS
이 기능을 위해 Android 호환성 테스트 모음(CTS) 테스트가 제공됩니다. CTS는 기능이 사용 설정되면 설정을 감지하고 관련 테스트를 자동으로 포함합니다. Wi-Fi RTT(IEEE 802.11mc)를 지원하는 액세스 포인트는 테스트 중인 기기의 범위 내에 있어야 합니다.
CTS 테스트는 다음을 사용하여 트리거할 수 있습니다.
atest WifiRttTest
보정
Wi-Fi RTT의 정상적인 작동을 위해 802.11mc 프로토콜에서 반환되는 범위는 핵심성과지표(KPI) 내에서 이론적으로는 정확합니다. 90% CDF 오류의 경우 나열된 대역폭에서 범위 예상치의 권장 KPI는 다음과 같은 공차를 갖게 됩니다.
- 80MHz: 2미터
- 40MHz: 4미터
- 20MHz: 8미터
기능 구현이 올바르게 작동하는지 확인하려면 보정 테스트가 필요합니다.
이는 거리를 점점 멀리하면서 실측 자료 범위를 RTT 추정 범위와 비교하여 얻을 수 있습니다. 기본 준수를 위해, RTT 보정된 것으로 알려진 기기를 기준으로 솔루션의 유효성을 검사해야 합니다. 범위 보정은 다음 조건에서 테스트해야 합니다.
- 대규모 개방형 실험실 또는 다중 경로가 비정상적으로 많이 발생할 수 있는 금속 물체가 많지 않은 복도
- 25m 연장을 위한 Line-Of-Sight(LOS) 트랙/경로 최소 1개
- 트랙의 한쪽 끝에서 다른 쪽 끝까지 0.5m 단위로 증가하는 마커
- 바닥 위 20cm에 장착된 트랙의 한쪽 끝에 RTT 가능 액세스 포인트를 고정할 장소, 그리고 트랙을 따라 움직이고 역시 바닥 위 20cm에서 0.5m 마커에 따라 정렬할 수 있는 Android 휴대전화(또는 테스트 중인 다른 Android 휴대기기)용 이동식 마운트. 참고: 이 반복 작업은 소형 로봇이 할 수 있지만 사람이 해도 괜찮습니다.
- 50개의 거리 측정 결과가 액세스 포인트로부터의 거리와 함께 각 마커에 기록되어야 합니다. 범위 평균 및 분산과 같은 통계가 각 마커 위치에서 계산되어야 합니다.
5단계의 결과로부터 추정 범위(y축) 및 최적의 추정 회귀선을 기준으로 실측 자료(x축)의 차트를 그릴 수 있습니다. 기기 보정이 잘되면 y축 오프셋이 0.0m인 1.0의 경사 선이 생성됩니다. 이러한 값의 편차는 해당하는 대역폭의 KPI 내에 있는 경우 허용됩니다. 결과가 KPI를 벗어나면 KPI 사양 내로 들어오도록 기기 기능을 다시 보정해야 합니다.