Androidでドコモ公衆無線LANに自動ログイン

ドコモの公衆無線LANサービス Mzoneがmopera Uスタンダードなら無料で使える、というので、mopera Uライトから契約変更してみた。

ドコモの手順によればAndroidの場合、SSID:docomoに接続した後、ブラウザ上でログイン処理を行わないといけない、ということになっている。
しかし、Windows系とか他の環境では、その処理も含めて自動的に行えるようになっているらしい。

では、標準ではないだけで、実現する方法があるはず、と探してみたところ、Android Marketで、mzoneconfというアプリがありました。
類似の機能を持つアプリは他にもありますが、mzoneconfの利点は常駐しないアプリで、Androidの無線LAN設定にMzone用の設定を追加してくれるだけ、という非常に割り切った作りである、という点です。

やってることは、手動で設定すると非常にめんどくさいことを、直接設定を書いてしまうことで実現している、という感じなようです。

Androidでは無線LANの設定をLinuxと同様にくwpa_suppilicantを使用して行っています。
Android 2.3の場合、wpa_supplicant ver 0.6.10です。

設定ファイルは、/data/misc/wifi/wpa_supplicant.conf にあります。

mzoneconfで設定を行ったあとの/data/misc/wifi/wpa_supplicant.confは以下のような感じでした。

ctrl_interface=wlan0
ap_scan=2
update_config=1

network={
        ssid="自宅のSSID"
        psk="自宅のWPA-PSKキー"
        key_mgmt=WPA-PSK
        priority=1
}

network={
        ssid="docomo"
        scan_ssid=1
        proto=RSN
        key_mgmt=IEEE8021X
        pairwise=NONE
        group=WEP104 WEP40
        auth_alg=OPEN SHARED
        eap=PEAP
        identity="ユーザ名-mopera@docomo"
        password="パスワード"
        phase2="auth=MSCHAPV2"
        priority=1000
}

Android側か、無線LAN側か、どちらの要因かはわかりませんが、うちの環境では上記設定では、無線LANを検出しなくなってしまいました。
元との設定差異をみた結果、おそらくは「ap_scan=1」が「ap_scan=2」になったことが原因なのではないかと思い、wpa_supplicant.confをファイルを直接書き換えました。
また、プライオリティが1000って大きすぎ?と感じたので、10としてみました。

ctrl_interface=wlan0
ap_scan=1
update_config=1

network={
        ssid="自宅のSSID"
        psk="自宅のWPA-PSKキー"
        key_mgmt=WPA-PSK
        priority=1
}

network={
        ssid="docomo"
        scan_ssid=1
        proto=RSN
        key_mgmt=IEEE8021X
        pairwise=NONE
        group=WEP104 WEP40
        auth_alg=OPEN SHARED
        eap=PEAP
        identity="ユーザ名-mopera@docomo"
        password="パスワード"
        phase2="auth=MSCHAPV2"
        priority=10
}

この変更後、再起動を行って、正常に動作することを確認しました。

ちなみに、mzoneconfでは、Mzoneアカウントを使ってのBB モバイルポイント(mobilepoint)および成田空港エアポートネットでの有料ローミングアクセスが利用できます。
その設定を有効にした場合にwpa_supplicant.confに追加される設定は以下の様になっていました。

network={
        ssid="mobilepoint"
        scan_ssid=1
        proto=RSN
        key_mgmt=IEEE8021X
        pairwise=NONE
        group=WEP104 WEP40
        auth_alg=OPEN SHARED
        eap=PEAP
        identity="ユーザ名-mopera@docomo"
        password="パスワード"
        phase2="auth=MSCHAPV2"
        priority=1000
}

network={
        ssid="NRT-AIRPORT"
        scan_ssid=1
        proto=RSN
        key_mgmt=IEEE8021X
        pairwise=NONE
        group=WEP104 WEP40
        auth_alg=OPEN SHARED
        eap=PEAP
        identity="ユーザ名-mopera@docomo"
        password="パスワード"
        phase2="auth=MSCHAPV2"
        priority=1000
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください