使用 adb shell 连接到 WiFi

新手上路,请多包涵

我拥有连接到特定接入点的所有详细信息。我只需要使用那个接入点,所以我需要的只是执行它的命令。

原文由 Rohan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.7k
2 个回答

您可以自己(或在您的脚本中)将网络条目添加到 wpa_supplicant.conf 中,基本上手动连接一次,然后执行:

 adb pull /data/misc/wifi/wpa_supplicant.conf

并将网络条目集成到您的脚本中以实现自动化。示例简单脚本:

 #!/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)"

原文由 Bryan Buckley 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用带有这些参数的命令 adb shell cmd -w wifi connect-network

- 连接网络 open|owe|wpa2|wpa3 [] [-m] [-d] [-b ] [-r auto|none|persistent|non_persistent]
    使用提供的参数连接到网络并添加到保存的网络列表
    open|owe|wpa2|wpa3 - 网络的安全类型。
     - 网络的 SSID
        - 对没有密码的网络使用“open”或“owe”
           - 'open' - 开放网络(最普遍)
           - '欠' - 增强的开放网络
        - 对有密码的网络使用“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

要连接到开放的 wifi 网络“公共”,请使用

adb shell cmd -w wifi connect-network Public open

原文由 Mritunjay Gupta 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题