很多公司内部的无线网络会用到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无线网络的范例如下:

network={
	ssid=“无限网络名称“
	key_mgmt=你的无线网络使用的加密方式
	eap=LEAP
	identity=“用户名“
	password=“密码“
}

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

# key_mgmt: list of accepted authenticated key management protocols
# WPA-PSK = WPA pre-shared key (this requires 'psk' field)
# WPA-EAP = WPA using EAP authentication
# IEEE8021X = IEEE 802.1X using EAP authentication and (optionally) dynamically
#	generated WEP keys
# NONE = WPA is not used; plaintext or static WEP could be used
# WPA-PSK-SHA256 = Like WPA-PSK but using stronger SHA256-based algorithms
# WPA-EAP-SHA256 = Like WPA-EAP but using stronger SHA256-based algorithms
# If not set, this defaults to: WPA-PSK WPA-EAP

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

network={
	ssid=“digglife“
	key_mgmt=WPA-EAP
	eap=LEAP
	identity=“momojie“
	password=“123456“
}

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

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

-rw-rw----    1 system   wifi           444 Apr  7 19:49 wpa_supplicant.conf

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

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

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

支持配置 LEAP 无线网络的 Android 应用 Full WiFi

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

支持 LEAP 无线网络的 Android 应用 LEAP WiFi Free

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