使用adb shell连接到受密码保护的wifi网络

时间:2014-04-03 00:08:26

标签: android networking wifi adb access-point

我有一部Android手机,目标是将手机连接到受密码保护的wifi网络。

到目前为止我所知道的步骤:

adb root
adb shell svc wifi enable

好的甜蜜,wifi打开了。 现在我需要将手机连接到需要密码的某个无线网络。 我希望我可以使用adb shell命令进行连接。

任何帮助?

我不想将程序下载到设备上

2 个答案:

答案 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。