Wi-Fi Aware

Android 8.0에 추가된 Wi-Fi Aware 기능을 통해 지원 기기에서 인터넷 또는 모바일 네트워크 액세스 없이 Wi-Fi Aware 프로토콜을 사용하여 직접 서로 검색하고 연결하며 범위를 지정(Android 9에 추가됨)할 수 있습니다. Wi-Fi Alliance(WFA) Wi-Fi Aware 사양(버전 2.0, 3.0, 3.1)에 기반하는 이 기능을 사용하면 네트워크 외부에 있는 신뢰할 수 있는 기기와 앱 간에 처리량이 많은 데이터를 쉽게 공유할 수 있습니다.

예시 및 소스

이 기능을 사용하려면 기기 제조업체가 Android 오픈소스 프로젝트(AOSP)에 제공된 Wi-Fi HIDL(Hardware Interface Design Language)을 구현해야 합니다. HIDL은 이전에 사용된 하드웨어 추상화 계층(HAL) 구조를 대체해 인터페이스 및 패키지에 수집되는 유형 및 메서드 호출을 지정하여 구현을 간소화합니다.

Wi-Fi HIDL(hardware/interfaces/wifi/1.2 이상)을 따라 Wi-Fi Aware 기능을 사용합니다. Wi-Fi Aware HAL 표면은 매우 넓으므로 hardware/interfaces/wifi/1.2/README-NAN.md 파일은 프레임워크에서 현재 사용 중인 하위 집합을 설명합니다.

기존 Wi-Fi HAL(hardware/libhardware_legacy/+/master/include/hardware_legacy/wifi_nan.h)을 참조하여 새로운 HIDL 인터페이스와 어떤 상관관계가 있는지 확인할 수 있습니다.

구현

기기 제조업체는 프레임워크와 HAL/펌웨어 지원을 모두 제공해야 합니다.

  • 프레임워크:
    • AOSP 코드
    • Aware 사용 설정: 기능 플래그와 HIDL 빌드 플래그가 모두 필요합니다.
  • Wi-Fi Aware(NAN) HAL 지원(펌웨어 지원을 의미함)

이 기능을 구현하기 위해 기기 제조업체는 Wi-Fi HIDL을 구현하고 두 가지 기능 플래그를 사용 설정합니다.

  • device/<oem>/<device>에 있는 BoardConfig.mk 또는 BoardConfig-common.mk에서 다음 플래그를 추가합니다.

    WIFI_HIDL_FEATURE_AWARE := true
    
  • device/<oem>/<device>에 있는 device.mk에서 PRODUCT_COPY_FILES 환경 변수를 수정하여 Wi-Fi Aware 기능 지원을 포함합니다.

    PRODUCT_COPY_FILES +=
    frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml
    

Wi-Fi Aware에는 왕복 시간(RTT)이라고도 하는 IEEE 802.11mc 프로토콜을 사용하는 동종 기기에 이르는 범위가 포함됩니다. Wi-Fi Aware의 이 하위 기능은 Wi-Fi RTT 기능을 지원하는 기기를 조건으로 합니다. 즉, 기기에서 Wi-Fi Aware와 Wi-Fi RTT를 모두 지원해야 합니다. 자세한 내용은 Wi-Fi RTT를 참조하세요.

그렇게 하지 않으면 이 기능에 필요한 모든 것이 AOSP에 포함됩니다.

WIFI_HAL_INTERFACE_COMBINATIONS 플래그가 지정되면 WIFI_HIDL_FEATURE_AWARE 플래그는 무시됩니다. 자세한 내용은 Wi-Fi 다중 인터페이스 동시 실행을 참조하세요.

MAC 주소 무작위 지정

Android에서는 Wi-Fi Aware 검색과 데이터 인터페이스(NDP)의 MAC 주소(NMI)가 무작위로 지정되고 기기의 실제 MAC 주소와 동일해서는 안 됩니다. MAC 주소는 다음과 같아야 합니다.

  • Wi-Fi Aware가 사용 설정되거나 다시 사용 설정될 때마다 무작위로 주소를 지정합니다.
  • Wi-Fi Aware가 사용 설정되면 MAC 주소는 NanConfigRequest.macAddressRandomizationIntervalSec HIDL 매개변수로 구성된 일정한 간격으로 순서가 무작위 지정되어야 합니다. 기본적으로 프레임워크에서 30분으로 구성됩니다.

유효성 검사

Android에서는 단위 테스트, 통합 테스트(ACTS), 호환성 테스트 모음(CTS) 테스트 및 CTS 인증 도구 테스트 세트를 제공하여 Wi-Fi Aware 기능을 확인합니다. Wi-Fi Aware는 공급업체 테스트 모음(VTS)을 사용하여 테스트할 수도 있습니다.

단위 테스트

Wi-Fi Aware 패키지 테스트는 다음을 사용하여 실행됩니다.

서비스 테스트:

atest com.android.server.wifi.aware

관리자 테스트:

atest android.net.wifi.aware

통합 테스트(ACTS)

tools/test/connectivity/acts_tests/tests/google/wifi/aware/README.md에 설명된 acts/sl4a 테스트 도구 모음은 기능, 성능 및 스트레스 테스트를 제공합니다.

호환성 테스트 모음(CTS) 테스트

CTS 테스트를 사용하여 Wi-Fi Aware 기능을 확인합니다. CTS는 기능이 사용 설정되면 설정을 감지하고 관련 테스트를 자동으로 포함합니다.

CTS 테스트는 다음을 사용하여 트리거할 수 있습니다.

atest SingleDeviceTest

CTS 인증 도구 테스트

CTS 인증 도구 테스트는 테스트 기기와 정상으로 알려진 기기라는 두 가지 기기를 사용하여 Wi-Fi Aware 동작을 확인합니다. 테스트를 실행하려면 CTS 인증 도구를 열고 Wi-Fi Aware Tests 섹션으로 이동합니다.