调试wpa_supplicant先读一下对应的README.txt文件。根据README.txt修改编译配置。
wpa_supplicant需要打开以下开关进行编译
CONFIG_DRIVER_NL80211=y
CONFIG_DRIVER_WEXT=y
内核也要打开这些接口。
wpa_supplicant需要rfkill接口控制wifi,所以内核必须选上对应选项。
如果发现wpa_supplicant打不开rfkill接口,显示not permit,很可能是wpa_supplicant没有权限,应该想办法提升
wpa_supplicant的权限或是chown rfkill。
logcat -s "wpa_supplicant" &
insmod /system/vendor/modules/lib80211.ko
insmod /system/vendor/modules/bcmdhd.ko
wpa_supplicant -d -Dnl80211 -C/data/misc/wifi/sockets/wpa_supplicant -iwlan0 -Dnl80211 -c/system/etc/wifi/wpa_supplicant.conf -d &
wpa_cli -iwlan0 -p/data/misc/wifi/sockets/wpa_supplicant
进入wpa_cli后,命令如下:
scan
scan_reault
;会显示搜索到的wifi信号列表,假设你的wifi ssid是wireless0
add_net
;会打印一个net编号,如果打印0
set_net 0 ssid "wireless0"
set_net 0 psk "123456"
;123456是wireless0的密码。
select_net 0
enable_net 0
q
;执行q就会退出wpa_cli
如果连接成功,则执行dhcpd进行ip配置,命令如下。
dhcpd -iwlan0 &
如果配置成功,即可ping通路由。