Wi-Fi Direct

Wi-Fi P2P라고도 하는 Wi-Fi Direct 기능을 사용하면 지원 기기에서 인터넷 또는 모바일 데이터 네트워크에 액세스하지 않고도 Wi-Fi Direct 프로토콜을 사용하여 다른 기기를 직접 검색하고 서로 연결할 수 있습니다. Wi-Fi Alliance(WFA) Wi-Fi Direct 사양을 기반으로 하는 이 기능을 사용하면 네트워크 연결이 끊어진 신뢰할 수 있는 기기와 앱 간에 처리량이 많은 데이터를 공유할 수 있습니다.

예 및 소스

이 기능을 사용하려면 기기 제조업체에서 Wi-Fi 공급업체와 서플리컨트 HAL 인터페이스를 구현해야 합니다.

Android 13에서 서플리컨트 인터페이스는 HAL 정의에 AIDL을 사용합니다. Android 14 이상에서는 공급업체 HAL 인터페이스가 AIDL을 사용합니다. Android 12 이하에서는 Supplicant 및 공급업체 HAL 인터페이스가 HIDL을 사용하여 정의됩니다.

Wi-Fi Direct 기능을 사용하려면 다음 Wi-Fi HAL 노출 영역이 필요합니다.

  • hardware/interfaces/wifi/aidl 또는 hardware/interfaces/wifi/1.3 이상
  • hardware/interfaces/wifi/supplicant/aidl 또는 hardware/interfaces/wifi/supplicant/1.2 이상

구현

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

  • 프레임워크:
    • AOSP 코드
    • Wi-Fi Direct 사용 설정: 기능 플래그 필요
  • Wi-Fi Direct(P2P) HAL 지원(펌웨어 지원을 의미함)

이 기능을 구현하기 위해 기기 제조업체는 Wi-Fi HIDL 또는 AIDL 인터페이스를 구현하고 Wi-Fi Direct 기능 플래그를 사용 설정합니다. device/<oem>/<device>에 있는 device.mk에서 PRODUCT_COPY_FILES 환경 변수를 수정하여 Wi-Fi Direct 기능 지원을 포함합니다.

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

Wi-FI Direct를 지원하기 위한 기타 모든 요구사항은 AOSP에 포함되어 있습니다.

MAC 주소 무작위 지정

Android에서는 Wi-Fi Direct 기기 주소인터페이스 주소가 무작위로 지정되어야 합니다. 이러한 주소는 기기의 실제 MAC 주소와 달라야 하며 다음 요구사항을 충족해야 합니다.

  • 저장된 영구 그룹이 없다면 Wi-Fi Direct 기기 주소는 인터페이스 생성 시 무작위로 지정되어야 합니다. 그렇지 않으면 기기 주소는 마지막으로 생성된 MAC 주소를 계속 사용해야 합니다.
  • 그룹 주소라고도 하는 Wi-Fi Direct 인터페이스 주소는 연결이 설정될 때마다 무작위로 지정되어야 합니다.

Wi-Fi Direct MAC 주소 무작위 지정은 'wpa_supplicant'로 구현되며 두 가지 구성, 즉 p2p_device_random_mac_addrp2p_interface_random_mac_addr로 제어됩니다.

이 기능을 사용 설정하려면 기기 제조업체에서 다음 작업을 완료해야 합니다.

  • Wi-Fi 서플리컨트 ISupplicantP2pIface::setMacRandomization API를 구현합니다. 이 API는 구현된 인터페이스에 따라 다음 위치에 있습니다.
    • hardware/interface/wifi/supplicant/1.2(HIDL의 경우)
    • hardware/interface/wifi/supplicant/aidl(AIDL의 경우)
  • 기기 맞춤 오버레이에서 config_wifi_p2p_mac_randomization_supported를 'true'로 설정합니다.

유효성 검사

Android는 Wi-Fi Direct 기능의 유효성을 검사하기 위해 일련의 단위 테스트, 호환성 테스트 모음 (CTS) 테스트, CTS 인증 도구 테스트를 제공합니다. 또한 공급업체 테스트 모음(VTS)을 사용하여 Wi-Fi Direct를 테스트할 수도 있습니다.

단위 테스트

다음 테스트를 사용하여 Wi-Fi Direct 패키지를 확인할 수 있습니다.

서비스 테스트:

atest com.android.server.wifi.p2p

관리자 테스트:

atest android.net.wifi.p2p

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

CTS 테스트를 사용하여 Wi-Fi Direct 기능의 유효성을 검사할 수 있습니다. CTS는 기능이 사용 설정되면 설정을 감지하고 관련 테스트를 자동으로 포함합니다.

CTS 테스트를 트리거하려면 다음을 실행합니다.

% atest android.net.wifi.p2p.cts

CTS 인증 도구 테스트

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