很多公司内部的无线网络会用到LEAP认证机制,需要通过输入用户名和密码来登陆到无线网络。如果你使用的是iOS设备,系统只会会提示你输入用户名和密码,你完全可以不必理会和无限网络技术相关的任何东西,而很遗憾的是,如果你手头上是一个Android设备,当你选择公司WiFi的时候系统弹出框会有几个项目需要自行选择,其中并没有出现LEAP字样(会有PEAP,EAP-TLS等),所以即便输入了用户名和密码也无法登陆。

事实上,Android本身是支持LEAP的,只是没有在图形界面中加入这一选项。这个问题早在2009年初就有人在Android的Google Project讨论区提出,跟帖很多,但是似乎并没有引起Android团队足够的重视,据我所知,直到Android 2.3 LEAP依然没有加入到WiFi的设定选项里,原因不明。

解决方案有两个:

  1. 手动修改wpa_supplicant配置文件,加入LEAP无线网络配置信息
  2. 安装第三方APP

方案一:手动修改wpa_supplicant配置文件,要 Root 权限

Android将所有连接过的WiFi热点信息都保存在/data/misc/wifi/wpa_supplicant.conf这个配置文件下,包括SSID,加密方式,WiFi密码等等,所以我们只要手动加入LEAP无线网络的完整信息,然后重启WiFi,系统就会重新获取配置文件中的信息,我们就能够登入新加入的LEAP无线网络了。

网上有wpa_supplicant.conf的完整说明文件和范例,大家可以参考。关于LEAP无线网络的范例如下:

关于key_mgmt,如果不设置,默认为最常见的WPA-PSK WPA-EAP。具体列表如下:

所以,对于一个SSID为digglife,使用WPA-EAP加密的LEAP无线网络,我们以用户名momojie和密码123456登陆,可以写成下面这样:

将以上几行添加到wpa_supplicant.conf文件中即可。至于修改方法,我想就不必赘述了,用惯终端(或命令提示符)+ADB interface的朋友应该很熟悉。不习惯命令行的利用Root Explorer修改也可以。

注意,如果你在本地修改后上传到手机端,注意最后修改一下文件的权限、文件Owner和Group,否则在机器重启之后,系统可能无法读写这个配置文件,导致WiFi会提示错误。原始文件的权限设定如下:

方案二,安装第三方WiFi配置APP

下面介绍的这些APP只是将以上步骤UI化了而已,原理都是一致的,另外也不需要Root权限。

  1. Full WiFi 支持LEAP WiFi, PEAP, TKIP, CCMP等等,设定选项也很全面。

  1. LEAP WiFi Free 只针对LEAP WiFi的Android App,设定简单,输入SSID、用户名和密码,保存之后就可以在系统的WiFi设置里连接了。

如果你手机已经获得Root权限,我还是建议使用第一种方法,不安装APP就能解决,何乐而不为?