Bry*_*ley 26
您可以自己(或在脚本中)将网络条目添加到wpa_supplicant.conf中.基本上手动连接一次,然后执行:
adb pull /data/misc/wifi/wpa_supplicant.conf
Run Code Online (Sandbox Code Playgroud)
并将网络条目集成到脚本中以实现自动化.示例简单脚本:
#!/bin/bash
#
# Get this information by connecting manually once, and do
# adb pull /data/misc/wifi/wpa_supplicant.conf
ADB_PULL="adb pull /data/misc/wifi/wpa_supplicant.conf"
WIRELESS_CTRL_INTERFACE=wlan0
WIRELESS_SSID=Gondolin
WIRELESS_KEY_MGMT="WPA-EAP IEEE8021X"
WIRELESS_EAP=PEAP
WIRELESS_USER=Turgon
WIRELESS_PASSWORD=IdrilCelebrindal
adb start-server
adb wait-for-device
echo "adb connection....[CONNECTED]"
adb root
adb wait-for-device
adb remount
adb wait-for-device
pushd /tmp
rm wpa_supplicant.conf 2>/dev/null # Remove any old one
adbpull_status=`$ADB_PULL 2>&1`
echo -e "\nAttempting: $ADB_PULL"
if [ `echo $adbpull_status | grep -wc "does not exist"` -gt 0 ]; then
echo " wpa_supplicant.conf does not exist yet on your device yet."
echo "This means you have not used your wireless yet."
echo ""
echo "Taking our best shot at creating this file with default config.."
echo "ctrl_interface=$WIRELESS_CTRL_INTERFACE" >> wpa_supplicant.conf
echo "update_config=1" >> wpa_supplicant.conf
echo "device_type=0-00000000-0" >> wpa_supplicant.conf
else
echo $adbpull_status
echo " wpa_supplicant.conf exists!"
fi
echo ""
echo "Add network entry for wpa_supplicant.conf.."
echo "" >> wpa_supplicant.conf
echo "network={" >> wpa_supplicant.conf
echo " ssid=\"$WIRELESS_SSID\"" >> wpa_supplicant.conf
echo " key_mgmt=$WIRELESS_KEY_MGMT" >> wpa_supplicant.conf
echo " eap=$WIRELESS_EAP" >> wpa_supplicant.conf
echo " identity=\"$WIRELESS_USER\"" >> wpa_supplicant.conf
echo " password=\"$WIRELESS_PASSWORD\"" >> wpa_supplicant.conf
echo " priority=1" >> wpa_supplicant.conf
echo "}" >> wpa_supplicant.conf
echo "Pushing wpa_supplicant.conf.."
adb push wpa_supplicant.conf /data/misc/wifi/wpa_supplicant.conf
popd #/tmp
adb shell chown system.wifi /data/misc/wifi/wpa_supplicant.conf
adb shell chmod 660 /data/misc/wifi/wpa_supplicant.conf
echo ""
echo "Finished!"
adb shell am start -a android.intent.action.MAIN -n com.android.settings/.Settings
echo "Please toggle wifi off/on now.. (ifconfig not sufficient, monkey this)"
Run Code Online (Sandbox Code Playgroud)
jpi*_*ihl 19
晚了,但我想出了一种在没有root的设备上完成此任务的方法.
它可能不漂亮,但它的工作原理.
基本上我的建议是创建一个应用程序,EXTRAS在启动应用程序时根据给定的加入接入点.在EXTRAS随后的使用所提供的am命令的-e <KEY> <VALUE>参数.
我已经构建了一个应用程序,它可以在这里找到它:https://github.com/steinwurf/adb-join-wifi
安装应用程序后,可以使用以下ADB命令连接wifi访问点:
adb shell am start -n com.steinwurf.adbjoinwifi/com.steinwurf.adbjoinwifi.MainActivity -e ssid [SSID] -e password_type [PASSWORD_TYPE] -e password [WIFI PASSWORD]
Run Code Online (Sandbox Code Playgroud)
Github上的README中有更多信息.
希望它可以帮助某人.
小智 14
您可以使用带有这些参数的命令 adb shell cmd -w wifi connect-network
- connect-network open|owe|wpa2|wpa3 [] [-m] [-d] [-b ] [-r auto|none|persistent|non_persistent]
使用提供的参数连接到网络并添加到已保存的网络列表
open|owe|wpa2|wpa3 - 网络的安全类型。
- 网络的SSID
- 对没有密码的网络使用“开放”或“欠”
- '开放' - 开放网络(最普遍)
- “欠” - 增强的开放网络
- 对带有密码的网络使用“wpa2”或“wpa3”
- 'wpa2' - WPA-2 PSK 网络(最流行)
-m - 将网络标记为按流量计费。
- 'wpa3' - WPA-3 PSK 网络
-d - 将网络自动加入标记为禁用。
-h - 将网络标记为隐藏。
-p - 将网络标记为私有(不共享)。
-b - 设置特定的 BSSID。
-r auto|none|persistent|non_persistent - 网络的 MAC 随机化方案
要使用 wpa2 身份验证和密码“qwertyuiop”连接到 wifi 网络“Home”,请使用
adb shell cmd -w wifi connect-network Home wpa2 qwertyuiop
Run Code Online (Sandbox Code Playgroud)
要连接到开放 wifi 网络“公共”,请使用
adb shell cmd -w wifi connect-network Public open
Run Code Online (Sandbox Code Playgroud)
作为附加组件:您可以通过svc在设备上以root身份启用wifi
svc wifi enable
Run Code Online (Sandbox Code Playgroud)
并禁用通过
svc wifi disable
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68882 次 |
| 最近记录: |