Android如何通过命令行获取WiFi列表以及参数:
一个工具加一个参数:
wpa_cli => The command line interface of wpa_supplicant
wifi interface socket目录
一般Android习题WiFi所对应着的interface名为wlan0,若不一样请参看init.{xxx}.rc中启动wpa_supplicant daemon的参数,或通过getprop查询得到。
找到带有wlan0 socket文件的目录,比如
/data/misc/wifi/
在我的手机上(Android 4.2.2)为/dev/socket/
然后adb shell
通过-p 选项指定socket文件目录
- root@android:/dev/socket # wpa_cli -p /dev/socket/
- wpa_cli v2.0-devel-
- Copyright (c) 2004-2012, Jouni Malinen <j@w1.fi> and contributors
- This software may be distributed under the terms of the BSD license.
- See README for more details.
- Selected interface 'wpa_wlan0'
- Interactive mode
- <3>CTRL-EVENT-SCAN-RESULTS
- >
- >
- <3>CTRL-EVENT-SCAN-RESULTS
- > scan
- FAIL-BUSY
- <3>CTRL-EVENT-SCAN-RESULTS
- > scan
- OK
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- > scan_results
- bssid / frequency / signal level / flags / ssid
- 80:81:00:e3:ee:88 2447 -42 [ESS] alipay-wifi-podinns
- 1c:aa:07:c6:ea:10 2412 -49 [WPA-EAP-TKIP][WPA2-EAP-TKIP+CCMP][ESS] alibaba-inc
- bc:d1:77:9c:12:52 2437 -68 [WPA-PSK-CCMP][WPA2-PSK-CCMP][WPS][ESS] 21F_ISV
- 38:22:d6:4d:e9:60 2412 -75 [ESS] CMCC
- 00:87:36:39:e4:df 2462 -75 [ESS] mike.lx
- 38:22:d6:4d:a1:30 2412 -72 [ESS] CMCC
- 1c:aa:07:c7:24:b0 2462 -75 [WPA-EAP-TKIP][WPA2-EAP-TKIP+CCMP][ESS] alibaba-inc
- 1c:aa:07:c7:24:b2 2462 -75 [ESS] alilang-setup
- c8:3a:35:07:e4:c8 2412 -82 [WPA2-PSK-CCMP][ESS] mars-new
- 9e:21:6a:01:54:30 2437 -55 [ESS] -UFreet-
- 3c:ce:73:c6:5d:63 2412 -69 [ESS] alilang-setup
- 1c:aa:07:f5:81:b0 2462 -93 [WPA-EAP-TKIP][WPA2-EAP-TKIP+CCMP][ESS] alibaba-inc
- 1c:aa:07:c7:1a:71 2412 -76 [ESS] alibaba-guest
- 1c:aa:07:c6:ea:12 2412 -55 [WPA-EAP-TKIP][WPA2-EAP-TKIP+CCMP][ESS] alipay-pre
- 1c:aa:07:f5:85:32 2437 -96 [ESS] alilang-setup
- 1c:aa:07:f5:81:b2 2462 -77 [WPA-EAP-TKIP][WPA2-EAP-TKIP+CCMP][ESS] alipay-pre
- 1c:aa:07:c7:1a:70 2412 -81 [WPA-EAP-TKIP][WPA2-EAP-TKIP+CCMP][ESS] alibaba-inc
- 1c:aa:07:c6:ea:11 2412 -54 [ESS] alibaba-guest
- 1c:aa:07:c7:24:b1 2462 -75 [ESS] alibaba-guest
- 1c:aa:07:c7:1a:72 2412 -79 [WPA-EAP-TKIP][WPA2-EAP-TKIP+CCMP][ESS] alipay-pre
- 3c:ce:73:c6:5d:61 2412 -69 [ESS] alibaba-guest
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- > list_networks
- network id / ssid / bssid / flags
- 0 xiaodai any
- 1 alibaba-inc any [CURRENT]
- 2 77.NET any
- 3 alipay-wifi-podinns any
- 4 alilang-setup any
- 5 CMCC any
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
- <3>CTRL-EVENT-SCAN-RESULTS
root@android:/dev/socket # wpa_cli -p /dev/socket/ wpa_cli v2.0-devel- Copyright (c) 2004-2012, Jouni Malinen <j@w1.fi> and contributors This software may be distributed under the terms of the BSD license. See README for more details. Selected interface 'wpa_wlan0' Interactive mode <3>CTRL-EVENT-SCAN-RESULTS > > <3>CTRL-EVENT-SCAN-RESULTS > scan FAIL-BUSY <3>CTRL-EVENT-SCAN-RESULTS > scan OK <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS > scan_results bssid / frequency / signal level / flags / ssid 80:81:00:e3:ee:88 2447 -42 [ESS] alipay-wifi-podinns 1c:aa:07:c6:ea:10 2412 -49 [WPA-EAP-TKIP][WPA2-EAP-TKIP+CCMP][ESS] alibaba-inc bc:d1:77:9c:12:52 2437 -68 [WPA-PSK-CCMP][WPA2-PSK-CCMP][WPS][ESS] 21F_ISV 38:22:d6:4d:e9:60 2412 -75 [ESS] CMCC 00:87:36:39:e4:df 2462 -75 [ESS] mike.lx 38:22:d6:4d:a1:30 2412 -72 [ESS] CMCC 1c:aa:07:c7:24:b0 2462 -75 [WPA-EAP-TKIP][WPA2-EAP-TKIP+CCMP][ESS] alibaba-inc 1c:aa:07:c7:24:b2 2462 -75 [ESS] alilang-setup c8:3a:35:07:e4:c8 2412 -82 [WPA2-PSK-CCMP][ESS] mars-new 9e:21:6a:01:54:30 2437 -55 [ESS] -UFreet- 3c:ce:73:c6:5d:63 2412 -69 [ESS] alilang-setup 1c:aa:07:f5:81:b0 2462 -93 [WPA-EAP-TKIP][WPA2-EAP-TKIP+CCMP][ESS] alibaba-inc 1c:aa:07:c7:1a:71 2412 -76 [ESS] alibaba-guest 1c:aa:07:c6:ea:12 2412 -55 [WPA-EAP-TKIP][WPA2-EAP-TKIP+CCMP][ESS] alipay-pre 1c:aa:07:f5:85:32 2437 -96 [ESS] alilang-setup 1c:aa:07:f5:81:b2 2462 -77 [WPA-EAP-TKIP][WPA2-EAP-TKIP+CCMP][ESS] alipay-pre 1c:aa:07:c7:1a:70 2412 -81 [WPA-EAP-TKIP][WPA2-EAP-TKIP+CCMP][ESS] alibaba-inc 1c:aa:07:c6:ea:11 2412 -54 [ESS] alibaba-guest 1c:aa:07:c7:24:b1 2462 -75 [ESS] alibaba-guest 1c:aa:07:c7:1a:72 2412 -79 [WPA-EAP-TKIP][WPA2-EAP-TKIP+CCMP][ESS] alipay-pre 3c:ce:73:c6:5d:61 2412 -69 [ESS] alibaba-guest <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS > list_networks network id / ssid / bssid / flags 0 xiaodai any 1 alibaba-inc any [CURRENT] 2 77.NET any 3 alipay-wifi-podinns any 4 alilang-setup any 5 CMCC any <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS <3>CTRL-EVENT-SCAN-RESULTS
获得当前连接详细参数:
> signal_poll RSSI=-28 LINKSPEED=65 NOISE=-97 FREQUENCY=2412
其他命令(极其丰富):
- > help
- commands:
- status [verbose] = get current WPA/EAPOL/EAP status
- ping = pings wpa_supplicant
- relog = re-open log-file (allow rolling logs)
- note <text> = add a note to wpa_supplicant debug log
- mib = get MIB variables (dot1x, dot11)
- help = show this usage help
- interface [ifname] = show interfaces/select interface
- level <debug level> = change debug level
- license = show full wpa_cli license
- quit = exit wpa_cli
- set = set variables (shows list of variables when run without arguments)
- get <name> = get information
- logon = IEEE 802.1X EAPOL state machine logon
- logoff = IEEE 802.1X EAPOL state machine logoff
- pmksa = show PMKSA cache
- reassociate = force reassociation
- preauthenticate <BSSID> = force preauthentication
- identity <network id> <identity> = configure identity for an SSID
- password <network id> <password> = configure password for an SSID
- new_password <network id> <password> = change password for an SSID
- pin <network id> <pin> = configure pin for an SSID
- otp <network id> <password> = configure one-time-password for an SSID
- passphrase <network id> <passphrase> = configure private key passphrase
- for an SSID
- bssid <network id> <BSSID> = set preferred BSSID for an SSID
- blacklist <BSSID> = add a BSSID to the blacklist
- blacklist clear = clear the blacklist
- blacklist = display the blacklist
- log_level <level> [<timestamp>] = update the log level/timestamp
- log_level = display the current log level and log options
- list_networks = list configured networks
- select_network <network id> = select a network (disable others)
- enable_network <network id> = enable a network
- disable_network <network id> = disable a network
- add_network = add a network
- remove_network <network id> = remove a network
- set_network <network id> <variable> <value> = set network variables (shows
- list of variables when run without arguments)
- get_network <network id> <variable> = get network variables
- list_creds = list configured credentials
- add_cred = add a credential
- remove_cred <cred id> = remove a credential
- set_cred <cred id> <variable> <value> = set credential variables
- save_config = save the current configuration
- disconnect = disconnect and wait for reassociate/reconnect command before
- connecting
- reconnect = like reassociate, but only takes effect if already disconnected
- scan = request new BSS scan
- scan_results = get latest scan results
- bss <<idx> | <bssid>> = get detailed scan result info
- get_capability <eap/pairwise/group/key_mgmt/proto/auth_alg> = get capabilies
- reconfigure = force wpa_supplicant to re-read its configuration file
- terminate = terminate wpa_supplicant
- interface_add <ifname> <confname> <driver> <ctrl_interface> <driver_param>
- <bridge_name> = adds new interface, all parameters but <ifname>
- are optional
- interface_remove <ifname> = removes the interface
- interface_list = list available interfaces
- ap_scan <value> = set ap_scan parameter
- scan_interval <value> = set scan_interval parameter (in seconds)
- sched_scan_intervals <short_interval> <long_interval> <num_short_intervals>
- Set sched scan intervals parameters
- <short|long_interval> = intervals values (in seconds)
- <num_short_intervals> = num of intervals to use short_interval
- bss_expire_age <value> = set BSS expiration age parameter
- bss_expire_count <value> = set BSS expiration scan count parameter
- stkstart <addr> = request STK negotiation with <addr>
- ft_ds <addr> = request over-the-DS FT with <addr>
- wps_pbc [BSSID] = start Wi-Fi Protected Setup: Push Button Configuration
- wps_pin <BSSID> [PIN] = start WPS PIN method (returns PIN, if not hardcoded)
- wps_check_pin <PIN> = verify PIN checksum
- wps_cancel Cancels the pending WPS operation
- wps_reg <BSSID> <AP PIN> = start WPS Registrar to configure an AP
- wps_ap_pin [params..] = enable/disable AP PIN
- wps_er_start [IP address] = start Wi-Fi Protected Setup External Registrar
- wps_er_stop = stop Wi-Fi Protected Setup External Registrar
- wps_er_pin <UUID> <PIN> = add an Enrollee PIN to External Registrar
- wps_er_pbc <UUID> = accept an Enrollee PBC using External Registrar
- wps_er_learn <UUID> <PIN> = learn AP configuration
- wps_er_set_config <UUID> <network id> = set AP configuration for enrolling
- wps_er_config <UUID> <PIN> <SSID> <auth> <encr> <key> = configure AP
- ibss_rsn <addr> = request RSN authentication with <addr> in IBSS
- sta <addr> = get information about an associated station (AP)
- all_sta = get information about all associated stations (AP)
- deauthenticate <addr> = deauthenticate a station
- disassociate <addr> = disassociate a station
- suspend = notification of suspend/hibernate
- resume = notification of resume/thaw
- drop_sa = drop SA without deauth/disassoc (test command)
- roam <addr> = roam to the specified BSS
- p2p_find [timeout] [type=*] = find P2P Devices for up-to timeout seconds
- p2p_stop_find = stop P2P Devices search
- p2p_connect <addr> <"pbc"|PIN> [ht40] = connect to a P2P Device
- p2p_listen [timeout] = listen for P2P Devices for up-to timeout seconds
- p2p_group_remove <ifname> = remove P2P group interface (terminate group if GO)
- p2p_group_add [ht40] = add a new P2P group (local end as GO)
- p2p_prov_disc <addr> <method> = request provisioning discovery
- p2p_get_passphrase = get the passphrase for a group (GO only)
- p2p_serv_disc_req <addr> <TLVs> = schedule service discovery request
- p2p_serv_disc_cancel_req <id> = cancel pending service discovery request
- p2p_serv_disc_resp <freq> <addr> <dialog token> <TLVs> = service discovery response
- p2p_service_update = indicate change in local services
- p2p_serv_disc_external <external> = set external processing of service discovery
- p2p_service_flush = remove all stored service entries
- p2p_service_add <bonjour|upnp> <query|version> <response|service> = add a local service
- p2p_service_del <bonjour|upnp> <query|version> [|service] = remove a local service
- p2p_reject <addr> = reject connection attempts from a specific peer
- p2p_invite <cmd> [peer=addr] = invite peer
- p2p_peers [discovered] = list known (optionally, only fully discovered) P2P peers
- p2p_peer <address> = show information about known P2P peer
- p2p_set <field> <value> = set a P2P parameter
- p2p_flush = flush P2P state
- p2p_cancel = cancel P2P group formation
- p2p_unauthorize <address> = unauthorize a peer
- p2p_presence_req [<duration> <interval>] [<duration> <interval>] = request GO presence
- p2p_ext_listen [<period> <interval>] = set extended listen timing
- wfd_subelem_set <subelem> [contents] = set Wi-Fi Display subelement
- wfd_subelem_get <subelem> = get Wi-Fi Display subelement
- sta_autoconnect <0/1> = disable/enable automatic reconnection
- tdls_discover <addr> = request TDLS discovery with <addr>
- tdls_setup <addr> = request TDLS setup with <addr>
- tdls_teardown <addr> = tear down TDLS with <addr>
- signal_poll = get signal parameters
- reauthenticate = trigger IEEE 802.1X/EAPOL reauthentication
- driver <command> = driver private commands
> help commands: status [verbose] = get current WPA/EAPOL/EAP status ping = pings wpa_supplicant relog = re-open log-file (allow rolling logs) note <text> = add a note to wpa_supplicant debug log mib = get MIB variables (dot1x, dot11) help = show this usage help interface [ifname] = show interfaces/select interface level <debug level> = change debug level license = show full wpa_cli license quit = exit wpa_cli set = set variables (shows list of variables when run without arguments) get <name> = get information logon = IEEE 802.1X EAPOL state machine logon logoff = IEEE 802.1X EAPOL state machine logoff pmksa = show PMKSA cache reassociate = force reassociation preauthenticate <BSSID> = force preauthentication identity <network id> <identity> = configure identity for an SSID password <network id> <password> = configure password for an SSID new_password <network id> <password> = change password for an SSID pin <network id> <pin> = configure pin for an SSID otp <network id> <password> = configure one-time-password for an SSID passphrase <network id> <passphrase> = configure private key passphrase for an SSID bssid <network id> <BSSID> = set preferred BSSID for an SSID blacklist <BSSID> = add a BSSID to the blacklist blacklist clear = clear the blacklist blacklist = display the blacklist log_level <level> [<timestamp>] = update the log level/timestamp log_level = display the current log level and log options list_networks = list configured networks select_network <network id> = select a network (disable others) enable_network <network id> = enable a network disable_network <network id> = disable a network add_network = add a network remove_network <network id> = remove a network set_network <network id> <variable> <value> = set network variables (shows list of variables when run without arguments) get_network <network id> <variable> = get network variables list_creds = list configured credentials add_cred = add a credential remove_cred <cred id> = remove a credential set_cred <cred id> <variable> <value> = set credential variables save_config = save the current configuration disconnect = disconnect and wait for reassociate/reconnect command before connecting reconnect = like reassociate, but only takes effect if already disconnected scan = request new BSS scan scan_results = get latest scan results bss <<idx> | <bssid>> = get detailed scan result info get_capability <eap/pairwise/group/key_mgmt/proto/auth_alg> = get capabilies reconfigure = force wpa_supplicant to re-read its configuration file terminate = terminate wpa_supplicant interface_add <ifname> <confname> <driver> <ctrl_interface> <driver_param> <bridge_name> = adds new interface, all parameters but <ifname> are optional interface_remove <ifname> = removes the interface interface_list = list available interfaces ap_scan <value> = set ap_scan parameter scan_interval <value> = set scan_interval parameter (in seconds) sched_scan_intervals <short_interval> <long_interval> <num_short_intervals> Set sched scan intervals parameters <short|long_interval> = intervals values (in seconds) <num_short_intervals> = num of intervals to use short_interval bss_expire_age <value> = set BSS expiration age parameter bss_expire_count <value> = set BSS expiration scan count parameter stkstart <addr> = request STK negotiation with <addr> ft_ds <addr> = request over-the-DS FT with <addr> wps_pbc [BSSID] = start Wi-Fi Protected Setup: Push Button Configuration wps_pin <BSSID> [PIN] = start WPS PIN method (returns PIN, if not hardcoded) wps_check_pin <PIN> = verify PIN checksum wps_cancel Cancels the pending WPS operation wps_reg <BSSID> <AP PIN> = start WPS Registrar to configure an AP wps_ap_pin [params..] = enable/disable AP PIN wps_er_start [IP address] = start Wi-Fi Protected Setup External Registrar wps_er_stop = stop Wi-Fi Protected Setup External Registrar wps_er_pin <UUID> <PIN> = add an Enrollee PIN to External Registrar wps_er_pbc <UUID> = accept an Enrollee PBC using External Registrar wps_er_learn <UUID> <PIN> = learn AP configuration wps_er_set_config <UUID> <network id> = set AP configuration for enrolling wps_er_config <UUID> <PIN> <SSID> <auth> <encr> <key> = configure AP ibss_rsn <addr> = request RSN authentication with <addr> in IBSS sta <addr> = get information about an associated station (AP) all_sta = get information about all associated stations (AP) deauthenticate <addr> = deauthenticate a station disassociate <addr> = disassociate a station suspend = notification of suspend/hibernate resume = notification of resume/thaw drop_sa = drop SA without deauth/disassoc (test command) roam <addr> = roam to the specified BSS p2p_find [timeout] [type=*] = find P2P Devices for up-to timeout seconds p2p_stop_find = stop P2P Devices search p2p_connect <addr> <"pbc"|PIN> [ht40] = connect to a P2P Device p2p_listen [timeout] = listen for P2P Devices for up-to timeout seconds p2p_group_remove <ifname> = remove P2P group interface (terminate group if GO) p2p_group_add [ht40] = add a new P2P group (local end as GO) p2p_prov_disc <addr> <method> = request provisioning discovery p2p_get_passphrase = get the passphrase for a group (GO only) p2p_serv_disc_req <addr> <TLVs> = schedule service discovery request p2p_serv_disc_cancel_req <id> = cancel pending service discovery request p2p_serv_disc_resp <freq> <addr> <dialog token> <TLVs> = service discovery response p2p_service_update = indicate change in local services p2p_serv_disc_external <external> = set external processing of service discovery p2p_service_flush = remove all stored service entries p2p_service_add <bonjour|upnp> <query|version> <response|service> = add a local service p2p_service_del <bonjour|upnp> <query|version> [|service] = remove a local service p2p_reject <addr> = reject connection attempts from a specific peer p2p_invite <cmd> [peer=addr] = invite peer p2p_peers [discovered] = list known (optionally, only fully discovered) P2P peers p2p_peer <address> = show information about known P2P peer p2p_set <field> <value> = set a P2P parameter p2p_flush = flush P2P state p2p_cancel = cancel P2P group formation p2p_unauthorize <address> = unauthorize a peer p2p_presence_req [<duration> <interval>] [<duration> <interval>] = request GO presence p2p_ext_listen [<period> <interval>] = set extended listen timing wfd_subelem_set <subelem> [contents] = set Wi-Fi Display subelement wfd_subelem_get <subelem> = get Wi-Fi Display subelement sta_autoconnect <0/1> = disable/enable automatic reconnection tdls_discover <addr> = request TDLS discovery with <addr> tdls_setup <addr> = request TDLS setup with <addr> tdls_teardown <addr> = tear down TDLS with <addr> signal_poll = get signal parameters reauthenticate = trigger IEEE 802.1X/EAPOL reauthentication driver <command> = driver private commands