Wi-Fi Easy Connect

Android 10 では、Wi-Fi Easy Connect プロトコル(Device Provisioning Protocol、DPP)のサポートが導入されています。Wi-Fi Easy Connect は、Wi-Fi Protected Setup(WPS)に代わるものとして Wi-Fi Alliance(WFA)によって導入されました。Android 9 では WPS のサポートは終了しています。

Wi-Fi Easy Connect は次のようなシンプルで安全な方法を提供します。

  • Wi-Fi デバイス(ヘッドレス デバイスを含む)を、パスワードを必要とせずにネットワークに接続します。
  • パスワードを知らなくても、またはパスワードを入力しなくても Wi-Fi ネットワークに接続します。

ブートストラップと認証は、カメラで QR コードをスキャンして取得するか、BLE や NFC などの帯域外に設定した URI を使用して設定します。

Wi-Fi Easy Connect は、暗号化されたチャネルを使用してデバイス間で Wi-Fi 認証情報を送信します。また、公開アクション フレームを使用するため、デバイスは既存のアクセス ポイントを使用できます。

Android 10 は、イニシエータ モードでのみ Wi-Fi Easy Connect をサポートします(レスポンダ モードはサポートしていません)。サポートされるオペレーション モードは以下のとおりです。

  • Initiator-Configurator: QR コードをスキャンしてネットワーク認証情報を新しいデバイスに送信します。
  • Initiator-Enrollee: ネットワークの QR コードをスキャンしてネットワークに参加します。

Android 10 は、WPA2 の事前共有キー(PSK)プロトコルと、WPA3 の Simultaneous Authentication of Equals(SAE)プロトコルをサポートしています。

Wi-Fi Easy Connect はクライアント モードでのみサポートされます(SoftAP モードはサポートしていません)。

実装

Wi-Fi Easy Connect をサポートするには、Android オープンソース プロジェクト(AOSP)で提供されているサプリカント インターフェースを実装します。実装されたインターフェースに応じて、以下のようになります。

DPP をサポートするには、以下が必要です。

  • DPP をサポートする Linux カーネルパッチ:

    • cfg80211
    • nl80211
  • DPP をサポートする wpa_supplicant

  • DPP をサポートする Wi-Fi ドライバ

  • DPP をサポートする Wi-Fi ファームウェア

Android 10 ではアプリが使用できる公開 API が利用可能です。

Wi-Fi Easy Connect を有効にする

Android フレームワークで Wi-Fi Easy Connect を有効にするには、CONFIG_DPP コンパイル オプションを wpa_supplicant 設定ファイルである android.config に含めます。

# Easy Connect (Device Provisioning Protocol - DPP)
CONFIG_DPP=y

検証

実装をテストするには、次のテストを実行します。

単体テスト

DppManagerTest を実行して、DPP の機能フラグの動作を検証します。

atest DppManagerTest

VTS テスト

HIDL インターフェースが実装されている場合は、VtsHalWifiSupplicantV1_2TargetTest を実行して、サプリカント HAL v1.2 の動作をテストします。

AIDL インターフェースが実装されている場合は、VtsHalWifiSupplicantStaIfaceTargetTest を実行して、サプリカント HAL の動作をテストします。