我有一部Android手机,目标是将手机连接到受密码保护的wifi网络。
到目前为止我所知道的步骤:
adb root
adb shell svc wifi enable
好的甜蜜,wifi打开了。 现在我需要将手机连接到需要密码的某个无线网络。 我希望我可以使用adb shell命令进行连接。
任何帮助?
我不想将程序下载到设备上
答案 0 :(得分:22)
可以使用wpa_cli
的{{1}}命令行界面来实现:
wpa_supplicant
在上面的命令列表中,# Enable WiFi
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
命令将输出新网络的索引,该索引应该用于后续命令。在此示例中,此索引为add_network
。
答案 1 :(得分:1)
使用此程序[更多细节包括:)]
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命令输入了这两个参数,则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。