回复
#创作者激励#使用命令行wpa工具连接WiFi
软通动力HOS
发布于 2023-3-23 09:01
浏览
1收藏
【本文正在参加2023年第一期优质创作者激励计划】
引言
通过adb命令行或hdc命令行,可以直接打开supplicant,从而运行wpa_cli,可以解决没有显示屏而无法操作WIFI的问题,还可以避免UI的问题带到driver。
一、wpa_supplicant
首先打开wpa_supplicant,运行起后才可以使用wpa_cli来连接
#wpa_supplicant -h
[WpaSample]init enter.
wpa_supplicant v2.9
Copyright (c) 2003-2019, Jouni Malinen <j@w1.fi> and contributors
This software may be distributed under the terms of the BSD license.
See README for more details.
usage:
wpa_supplicant [-BddhKLqqtvW] [-P<pid file>] [-g<global ctrl>] \
[-G<group>] \
-i<ifname> -c<config file> [-C<ctrl>] [-D<driver>] [-p<driver_param>] \
[-b<br_ifname>] [-e<entropy file>] [-f<debug file>] \
[-o<override driver>] [-O<override ctrl>] \
[-N -i<ifname> -c<conf> [-C<ctrl>] [-D<driver>] \
[-m<P2P Device config file>] \
[-p<driver_param>] [-b<br_ifname>] [-I<config file>] ...]
drivers:
nl80211 = Linux nl80211/cfg80211
options:
-b = optional bridge interface name
-B = run daemon in the background
-c = Configuration file
-C = ctrl_interface parameter (only used if -c is not)
-d = increase debugging verbosity (-dd even more)
-D = driver name (can be multiple drivers: nl80211,wext)
-e = entropy file
-f = log output to debug file instead of stdout
-g = global ctrl_interface
-G = global ctrl_interface group
-h = show this help text
-i = interface name
-I = additional configuration file
-K = include keys (passwords, etc.) in debug output
-L = show license (BSD)
-m = Configuration file for the P2P Device interface
-N = start describing new interface
-o = override driver parameter for new interfaces
-O = override ctrl_interface parameter for new interfaces
-p = driver parameters
-P = PID file
-q = decrease debugging verbosity (-qq even less)
-t = include timestamp in debug messages
-v = show version
-W = wait for a control interface monitor before starting
example:
wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf
二、wpa_cli
wpa_cli 是一个基于文本的前端程序,用于与 wpa_supplicant 交互,wpa_supplicant运行起后,需要另开一个shell串口使用wpa_cli进行搜索和连接。
wpa_cli 支持两种模式:交互模式和命令行模式。两种模式共享相同的命令集,主要区别在于交互模式提供对未经请求的消息(事件消息、用户名/密码请求)的访问。
交互模式常用操作:
查看当前状态
wpa_state=DISCONNECTED
p2p_device_address=4a:e7:da:8d:71:5d
address=48:e7:da:8d:71:5d
uuid=e2e48e16-dc35-59b5-9d30-6c31677e5937
搜索wifi网络
使用scan命令搜索网络,显示ok后使用scan_result查看搜索结果
OK
> scan_result
bssid / frequency / signal level / flags / ssid
ec:60:73:ff:bc:22 2412 -40 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] TP-LINK_BC22
f6:60:73:ff:bc:22 2412 -41 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS]
82:50:92:9a:7f:c4 2412 -46 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] test999
82:56:89:e4:2c:9c 2437 -59 [WPA2-PSK-CCMP][ESS] nova 7 SE 5G
dc:21:e2:4e:f8:c1 2437 -62 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] \x00
58:48:49:01:23:7c 2462 -66 [WPA2-PSK-CCMP][ESS] TP-LINK_1987
dc:21:e2:4e:ef:e1 2437 -78 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] \x00
e8:4e:06:9d:85:74 2437 -79 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] 4G-WIFI-8574
e8:91:20:fc:2c:ac 2457 -37 [ESS] MOWiFi_2.4G_2CAB
新建网络并连接无密码的wifi
>set_network 0 ssid “666”
>set_network 0 key_mgmt NONE
>enable_network 0
新建网络并连接有密码的wifi
>add_network (assume returns 2)
>set_network 2 ssid “666”
>set_network 2 psk “your pre-shared key”
>select_network 2
>enable_network 2
命令模式常用命令:
wpa_supplicant -iwlan0 -Dnl80211 -c/etc/ambaipcam/IPC_Q313/config/wlan/wpa_supplicant.conf -B
#查询网卡状态
wpa_cli -p/var/run/wpa_supplicant -iwlan0 status
#搜索附近网络功能 no/ok
wpa_cli -i wlan0 scan
#搜索附近网络,并列出结果
wpa_cli -i wlan0 scan_result
#查看当前连接的是哪个网络
wpa_cli -i wlan0 list_network
#获取一个存储wifi结构的id,假设为1
wpa_cli -i wlan0 add_network
#设置ID为1的热点SSID
wpa_cli -i wlan0 set_network 1 ssid '"HO4428"'
#设置ID为1的热点的密码
wpa_cli -i wlan0 set_network 1 psk '"442701102"'
#设置加密方式,可以不加
wpa_cli -i wlan0 set_network 1 key_mgmt WPA2-PSK-CCMP
#启动连接ID为1的网络
wpa_cli -i wlan0 enable_network 1
#选择网络0(这样做的好处在于,可以取消先前的其它网络连接)
wpa_cli -i wlan0 select_network 1
#保存刚刚填写的wifi帐号,写入配置文件
wpa_cli -i wlan0 save_config
#请求自动分配IP地址,-b:后台(back) –i:指定接口 –q:获得续约后退出,如果想尽在前台运行,则去掉-b,加上-f
#不用不加,会自动分配
udhcpc -b -i wlan0 -q
总结
wpa_supplicant包含两个主要的可执行工具:wpa_supplicant和wpa_cli。wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用wpa_cli来搜索、设置、和连接网络。
已于2023-3-23 09:01:38修改
赞
2
收藏 1
回复
相关推荐