ドコモの公衆無線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
}