我拥有所有连接到特定接入点的详细信息。我只能使用该接入点,所以我需要的只是执行该命令的命令。使用adb外壳连接到wi-fi
回答
您可以添加网络进入的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)"
这需要设备被植入,并且由于安全原因,我们不应该建议用户对设备进行根目录。 – CodeFlash 2017-08-02 08:09:15
@ RajA.P .:感谢您的反馈。看似除[@jpihl](https://stackoverflow.com/a/37303412/1587329)之外的所有方法都需要设备根植,他们只是没有明确地说明这一点。如果downvote是从你那里得到的:你是否全部倒下了它们? – 2017-08-02 09:47:00
我曾尝试上述命令说我的设备是根植,我使用我的企业设备,我不想妥协。 – CodeFlash 2017-08-02 10:30:03
禁用作为另一个附加-on:虽然我的设备已经扎根,但在尝试执行adb pull
时,出现了 remote object ''/data/misc/wifi/wpa_supplicant.conf'' does not exist
错误。发生这种情况是因为adb
本身不能以ROOT模式运行。若要此你身边可以这样
adb shell "su -c 'cp -R /data/misc/wifi/wpa_supplicant.conf /data/misc/wpa_supplicant.conf'"
adb shell "su -c 'chmod -R 777 /data/misc/wpa_supplicant.conf'"
adb pull /data/misc/wpa_supplicant.conf
adb shell "su -c 'rm /data/misc/wpa_supplicant.conf'"
迟到了执行的东西,但我想出了一个办法做到这一点的设备上没有根。
它可能不漂亮,但它的工作原理。
基本上我建议创建一个应用程序,该应用程序基于启动应用程序时给出的EXTRAS
加入接入点。 然后使用am
命令的-e <KEY> <VALUE>
参数提供EXTRAS
。
我已经建立一个应用程序,它这样做,它是可以在这里找到:https://github.com/steinwurf/adb-join-wifi
一旦安装了该应用,WiFi接入点可以使用以下ADB
命令加入:
adb shell am start -n com.steinwurf.adbjoinwifi/com.steinwurf.adbjoinwifi.MainActivity -e ssid [SSID] -e password_type [PASSWORD_TYPE] -e password [WIFI PASSWORD]
还有更多Github上的README信息。
希望它可以帮助别人。
谢谢你 - 好主意! – 2017-04-18 21:43:01
我用这个解决的问题: adb pull /data/misc/wifi/wpa_supplicant.conf ~/Desktop
,然后编辑这个文件,添加网络模块,我的整个的conf文件是:
##### wpa_supplicant configuration file template #####
update_config=1
ctrl_interface=DIR=/data/system/wpa_supplicant GROUP=wifi
eapol_version=1
ap_scan=1
fast_reauth=1
network={
ssid="your ssid"
psk="your pswd"
key_mgmt=WPA-PSK
priority=241
}
然后RM原始文件,添加它推到/data/misc/wifi
文件夹,请重新启动您的设备。请注意,不同的设备在网络线上方有不同的内容,请勿修改该部分。
这只适用于有根设备 – user2340356 2017-08-19 17:25:22
超晚,但我希望这可以帮助任何人可能偶然发现此线程。
如果你想在亚行拉法却收到“远程对象不存在”,试试这个:
在同一个命令提示框,
- 型
adb root
重新启动亚行根。点击进入。 - 现在键入
adb shell
,点击输入。确保提示显示[email protected][device]:
- 在#提示符下输入
cd /data/misc/wifi
点击输入。 - 最后输入
cat wpa_supplicant.conf
点击输入。
这应该转储你以前连接到你的手机的WiFi数据到你的电脑屏幕上。
在运行到“远程对象不存在”问题后,这些命令对我的无根设备起作用。
C:\ Program Files(x86)\ Minimal ADB和Fastboot> adb shell .......................... .............................. shell @ android:/ $ cd/data/misc/wifi ...... ....................................... ......... ........... .................... ........... /system/bin/sh:cd:/ data/misc/wifi:权限被拒绝................................... ................... ............. 2 | shell @ android:/ $ cat wpa_supplicant.conf ..................................... .... .................... .................. – user2340356 2017-08-19 19:50:58
/system/bin/sh:cat:wpa_supplicant.conf:没有这样的文件或目录................................... .............. 1 | shell @ android:/ $ cd/data/misc/wifi .................... ......................... ....................... ......................... /system/bin/sh:cd:/ data/misc/wifi:Permission denied ...... ................................................ ......... – user2340356 2017-08-19 19:52:07
这就是当我运行这些命令:(我有一个三星galaxy相机。android版本4.1.2。也许有一个安全bug,我可以使用它并检索wifi密码? – user2340356 2017-08-19 19:52:38
- 1. 如何使用ADB外壳?
- 2. 通过WiFi通过ADB外壳关闭ADB?
- 3. 使用phpMyAdmin连接外壳
- 4. 连接到Android外壳的宽带网络和WiFi网络
- 5. 使用Android的WIFI到WIFI连接性
- 6. adb外壳和adb推特定avd
- 7. 通过wifi连接adb连接时遇到新的USB连接/分离
- 8. 如何获取从adb外壳连接到Android设备的设备列表
- 9. 对讲未通过adb外壳启用
- 10. linux外壳日期连接
- 11. adb无法通过WiFi连接后找不到设备
- 12. 修复:无法通过wifi连接到adb
- 13. 如何通过WiFi连接到adb *使用方便的BAT文件*
- 14. 连接到WPS WiFi
- 15. linux外壳 - 无法比较字符串:adb外壳getprop ro.product.brand
- 16. 使用无WiFi连接的WiFi
- 17. 使用wifi连接到3G加密狗
- 18. 如何使用CMD连接到WiFi?
- 19. 将Nexus 9连接到adb
- 20. 等到wifi连接到android
- 21. Java程序来执行adb外壳screenrecord
- 22. 通过访问数据库。 adb外壳
- 23. 如何adb外壳getprop和setprop工作
- 24. adb外壳“监视”命令来监视
- 25. Android:adb外壳,没有命令adb发现
- 26. adb外壳screencap - “权限被拒绝”
- 27. Android:在adb外壳上执行程序
- 28. ADB外壳安装/卸装SD卡
- 29. 使用ADB从外壳卸载应用程序
- 30. 如何使用wpf中的简单wifi连接到wifi?
你想实现什么? – 2012-01-03 07:03:11
我必须自动化一些只能使用wi-fi的东西。我可以使用猴子并点击设置 - >等,但最后一件事是我如何选择网络ABC,因为可能有多个网络可用。所以如果我能得到一个命令,我可以做到这一点使用SSID和密码:) – Rohan 2012-01-03 07:05:48
为了补充答案: http://stackoverflow.com/questions/10282484/android-adb-turn-on-wifi- via-adb – EthraZa 2013-03-15 20:12:29