没有系统原生设置应用又需要调试WiFi功能时,可以使用如下指令来验证WiFi相关功能
最常用的就是 svc wifi enable/disable,再使用wpa_supplicant/wpa_cli来验证,但对于AP功能就没办法验证了,其实Android有组很强大的shell指令集,包含各个方便,这里只记录下平时使用的WiFi相关指令
1、adb shell cmd wifi -h
查看WiFi所有指令以及参数
2、打开关闭WLAN
adb shell cmd wifi set-wifi-enabled enabled
adb shell cmd wifi set-wifi-enabled disabled
3、扫描WiFi
adb shell cmd wifi start-scan //扫描
adb shell cmd wifi list-scan-results //查看扫描结果
4、连接WiFi
adb shell cmd wifi connect-network TP-LINK_5G_0FE1 wpa2 12345678
//TP-LINK_5G_0FE1 连接WiFi名称
//wpa2 加密方式
//12345678 密码
5、查看WiFi状态
adb shell cmd wifi status
6、打开关闭热点
adb shell cmd wifi start-softap ap_ssidxx wpa2 12345678 -b5
// ap_ssidxx 热点名称
// wpa2 加密方式
//12345678 密码
//-b5 5G频段
adb shell cmd wifi stop-softap
其他可以指令可以使用adb shell cmd wifi -h查看,如果需要连接WiFi以外的相关指令可以使用adb shell cmd -l(小写L)
Wi-Fi (wifi) commands:help or -hPrint this help text.get-country-codeGets country code as a two-letter stringset-wifi-enabled enabled|disabledEnables/disables Wifi on this device.set-scan-always-available enabled|disabledSets whether scanning should be available even when wifi is off.list-scan-resultsLists the latest scan resultsstart-scanStart a new scanlist-networksLists the saved networksconnect-network <ssid> open|owe|wpa2|wpa3 [<passphrase>] [-m] [-d] [-b <bssid>]Connect to a network with provided params and add to saved networks list<ssid> - SSID of the networkopen|owe|wpa2|wpa3 - Security type of the network.- Use 'open' or 'owe' for networks with no passphrase- 'open' - Open networks (Most prevalent)- 'owe' - Enhanced open networks- Use 'wpa2' or 'wpa3' for networks with passphrase- 'wpa2' - WPA-2 PSK networks (Most prevalent)- 'wpa3' - WPA-3 PSK networks-m - Mark the network metered.-d - Mark the network autojoin disabled.-b <bssid> - Set specific BSSID.add-network <ssid> open|owe|wpa2|wpa3 [<passphrase>] [-m] [-d] [-b <bssid>]Add/update saved network with provided params<ssid> - SSID of the networkopen|owe|wpa2|wpa3 - Security type of the network.- Use 'open' or 'owe' for networks with no passphrase- 'open' - Open networks (Most prevalent)- 'owe' - Enhanced open networks- Use 'wpa2' or 'wpa3' for networks with passphrase- 'wpa2' - WPA-2 PSK networks (Most prevalent)- 'wpa3' - WPA-3 PSK networks-m - Mark the network metered.-d - Mark the network autojoin disabled.-b <bssid> - Set specific BSSID.forget-network <networkId>Remove the network mentioned by <networkId>- Use list-networks to retrieve <networkId> for the networkstatusCurrent wifi statusset-verbose-logging enabled|disabledSet the verbose logging enabled or disabledadd-suggestion <ssid> open|owe|wpa2|wpa3 [<passphrase>] [-u] [-m] [-s] [-d][-b <bssid>]Add a network suggestion with provided paramsUse 'network-suggestions-set-user-approved com.android.shell yes' to approve suggestions added via shell (Needs root access)<ssid> - SSID of the networkopen|owe|wpa2|wpa3 - Security type of the network.- Use 'open' or 'owe' for networks with no passphrase- 'open' - Open networks (Most prevalent)- 'owe' - Enhanced open networks- Use 'wpa2' or 'wpa3' for networks with passphrase- 'wpa2' - WPA-2 PSK networks (Most prevalent)- 'wpa3' - WPA-3 PSK networks-u - Mark the suggestion untrusted.-m - Mark the suggestion metered.-s - Share the suggestion with user.-d - Mark the suggestion autojoin disabled.-b <bssid> - Set specific BSSID.remove-suggestion <ssid>Remove a network suggestion with provided SSID of the networkremove-all-suggestionsRemoves all suggestions added via shelllist-suggestionsLists the suggested networks added via shellset-connected-score <score>Set connected wifi network score (to choose between LTE & Wifi for default route).This turns off the active connected scorer (default or external).Only works while connected to a wifi network. This score will stay in effect until you call reset-connected-score or the device disconnects from the current network.<score> - Integer score should be in the range of 0 - 60reset-connected-scoreTurns on the default connected scorer.Note: Will clear any external scorer set.start-softap <ssid> (open|wpa2) <passphrase> [-b 2|5|6|any]Start softap with provided paramsNote that the shell command doesn't activate internet tethering. In some devices, internet sharing is possible when Wi-Fi STA is also enabled and isassociated to another AP with internet access.<ssid> - SSID of the networkopen|wpa2 - Security type of the network.- Use 'open' for networks with no passphrase- Use 'wpa2' for networks with passphrase-b 2|5|6|any - select the preferred band.- Use '2' to select 2.4GHz band as the preferred band- Use '5' to select 5GHz band as the preferred band- Use '6' to select 6GHz band as the preferred band- Use 'any' to indicate no band preferenceNote: If the band option is not provided, 2.4GHz is the preferred band.The exact channel is auto-selected by FW unless overridden by force-softap-channel commandstop-softapStop softap (hotspot)set-ipreach-disconnect enabled|disabledSets whether CMD_IP_REACHABILITY_LOST events should trigger disconnects.get-ipreach-disconnectGets setting of CMD_IP_REACHABILITY_LOST events triggering disconnects.set-poll-rssi-interval-msecs <int>Sets the interval between RSSI polls to <int> milliseconds.get-poll-rssi-interval-msecsGets current interval between RSSI polls, in milliseconds.force-hi-perf-mode enabled|disabledSets whether hi-perf mode is forced or left for normal operation.force-low-latency-mode enabled|disabledSets whether low latency mode is forced or left for normal operation.network-suggestions-set-user-approved <package name> yes|noSets whether network suggestions from the app is approved or not.network-suggestions-has-user-approved <package name>Queries whether network suggestions from the app is approved or not.imsi-protection-exemption-set-user-approved-for-carrier <carrier id> yes|noSets whether Imsi protection exemption for carrier is approved or notimsi-protection-exemption-has-user-approved-for-carrier <carrier id>Queries whether Imsi protection exemption for carrier is approved or notimsi-protection-exemption-clear-user-approved-for-carrier <carrier id>Clear the user choice on Imsi protection exemption for carriernetwork-requests-remove-user-approved-access-points <package name>Removes all user approved network requests for the app.clear-user-disabled-networksClears the user disabled networks list.send-link-probeManually triggers a link probe.force-softap-channel enabled <int> | disabledSets whether soft AP channel is forced to <int> MHzor left for normal operation.force-country-code enabled <two-letter code> | disabledSets country code to <two-letter code> or left for normal valueset-wifi-watchdog enabled|disabledSets whether wifi watchdog should trigger recoveryget-wifi-watchdogGets setting of wifi watchdog trigger recovery.get-softap-supported-featuresGets softap supported features. Will print 'wifi_softap_acs_supported'and/or 'wifi_softap_wpa3_sae_supported', each on a separate line.settings-resetInitiates wifi settings resetadd-request <ssid> open|owe|wpa2|wpa3 [<passphrase>] [-b <bssid>]Add a network request with provided paramsUse 'network-requests-set-user-approved android yes' to pre-approve requests added via rooted shell (Not persisted)<ssid> - SSID of the networkopen|owe|wpa2|wpa3 - Security type of the network.- Use 'open' or 'owe' for networks with no passphrase- 'open' - Open networks (Most prevalent)- 'owe' - Enhanced open networks- Use 'wpa2' or 'wpa3' for networks with passphrase- 'wpa2' - WPA-2 PSK networks (Most prevalent)- 'wpa3' - WPA-3 PSK networks-b <bssid> - Set specific BSSID.remove-request <ssid>Remove a network request with provided SSID of the networkremove-all-requestsRemoves all active requests added via shelllist-requestsLists the requested networks added via shellnetwork-requests-set-user-approved <package name> yes|noSets whether network requests from the app is approved or not.Note: Only 1 such app can be approved from the shell at a timenetwork-requests-has-user-approved <package name>Queries whether network requests from the app is approved or not.Note: This only returns whether the app was set via the 'network-requests-set-user-approved' shell commandqca-list-ifacesLists active STA/AP interfaces (could be bridge interfaces). Command to set bridge iface will only apply to the first internal ifaceqca-set-txpower <iface> <power in dBm>Sets max txpower in dBm, and <iface> is from 'qca-list-ifaces'qca-set-ani-level <iface> <auto|fixed> [<ofdmlvl>]Sets ani level, and <iface> is from 'qca-list-ifaces'qca-get-thermal-info <iface>Gets thermal info, and <iface> is from 'qca-list-ifaces'qca-dump-thermal-eventsDump thermal events from driver/firmware after bootqca-set-congestion-report <iface> <enable|disable> [<threshold> [interval]]Sets congestion report, and <iface> is AP iface from 'qca-list-ifaces'qca-dump-congestion-eventsDump congestion events from driver/firmware after boot