我有一部 Android 手机,目标是将手机连接到受密码保护的 wifi 网络。
到目前为止我知道的步骤:
adb root
adb shell svc wifi enable
好的,亲爱的,wifi已打开。现在我需要将手机连接到某个需要密码的无线网络。我希望我可以使用 adb shell 命令进行连接。
有什么帮助吗?
我宁愿不将程序下载到设备上
我有一部 Android 手机,目标是将手机连接到受密码保护的 wifi 网络。
到目前为止我知道的步骤:
adb root
adb shell svc wifi enable
好的,亲爱的,wifi已打开。现在我需要将手机连接到某个需要密码的无线网络。我希望我可以使用 adb shell 命令进行连接。
有什么帮助吗?
我宁愿不将程序下载到设备上
This is possible to achieve using wpa_cli
, command line interface of wpa_supplicant
:
# Get to the shell
adb root
adb shell
# Get to wpa_cli prompt
wpa_cli -p /data/misc/wifi/sockets/ -i wlan0
# Add new WiFi network
add_network
set_network 0 auth_alg OPEN
set_network 0 key_mgmt WPA-PSK
set_network 0 ssid "network_name"
set_network 0 proto RSN
set_network 0 mode 0
set_network 0 psk "password"
# Connect to it
select_network 0
enable_network 0
reassociate
# Check the status
status
In the above list of commands, add_network
command will output the index of the new network, which should be used for the subsequent commands. In this example, this index is 0
.
使用此程序 [包括更多详细信息 :) ]
1-确保 wpa_supplicant 正在运行。使用以下命令查找其 pid:
pidof wpa_supplicant
此命令应返回 wpa_supplicant 进程的 pid。如果没有返回,wpa_supplicant 没有运行。使用 svc 命令关闭 wifi,然后再次打开:
svc wifi disable
svc wifi enable
2- 从 wpa_supplicant.conf 文件中读取控制接口目录。该文件通常存在于 /data/misc/wifi/ 中。使用 cat 命令打开此文件:
cat /data/misc/wifi/wpa_supplicant.conf
update_config=1
ctrl_interface=/data/misc/wpa_supplicant
eapol_version=1
ap_scan=1
fast_reauth=1
注意:要查找 wpa_supplicant.conf 文件,您可以在根目录中使用 find 命令进行搜索。使用 cd / 命令转到根目录并使用 find 命令查找 wpa_supplicant.conf:
寻找 。-name wpa_supplicant.conf
转到 ctrl_interafce 指定的控制接口目录。此目录中的第一个文件是接口名称。
cd /data/misc/wpa_supplicant
ls
wlan0
您将需要“控制接口”和“接口名称”来执行 wpa_cli 命令。
注意:如果您错误地为 wpa_cli 命令输入了这 2 个参数,则 wpa_cli 无法连接到 wpa_supplicant 并返回此消息:
Interactive mode
Could not connect to wpa_supplicant: plan - re-trying
或者它可能连接到 wpa_supplicant 但返回 UNKNOW COMMAND 以获取它的交互式命令,如下所示:
> scan
UNKNOWN COMMAND
>add_network
UNKNOWN COMMAND
3- 使用上述参数执行 wpa_cli 命令:
wpa_cli -p [control directory path] -i [interface name]
wpa_cli -p /data/misc/wpa_supplicant -i wlan0
然后此命令进入交互模式,您可以在其中扫描和查找网络,附加到它们并...
# Add new WiFi network
add_network
set_network 0 auth_alg OPEN
set_network 0 key_mgmt WPA-PSK
set_network 0 ssid "network_name"
set_network 0 proto RSN
set_network 0 mode 0
set_network 0 psk "password"
# Connect to it
select_network 0
enable_network 0
reassociate
# Check the status
status
save_config
使用 save_config 您可以将这些设置存储回 wpa_supplicant.conf 文件以供将来使用。下次可以通过 enable_network 命令调用这些设置。下次要启用 wifi 时,请使用以下命令:
wpa_cli -p /data/misc/wpa_supplicant -i wlan0
enable network 0
0 是网络 ID。您可以使用 list_networks 查找其他存储的配置。有关 wpa_cli 的更多信息,请参阅此文档:此页面中还记录了 wpa_cli 的完整交互式命令。
http://w1.fi/cgit/hostap/plain/wpa_supplicant/README
我使用此程序在 Orange Pi 2G IOT 上的 Android 上配置 wifi。