淫技:android无屏操作之adb操控wifi

一些嵌入式设备可能没有屏幕,这时你就不能点击屏幕去开启wifi了。未来大多数物联网设备都是这样,那么如何在无屏幕情况下开启wifi呢?我们可以使用wpa_supplicant+wpa_cli来操作wifi,wpa_supplicant是服务端,用于与内核交流;wpa_cli是客户端,用于与wpa_supplicant交流;即wpa_cli首先发送命令给wpa_supplicant,wpa_supplicant再将命令转告给内核,内核完成wifi操作!!

1.开启wpa_supplicant服务端

/system/bin/wpa_supplicant -iwlan0 -Dnl80211 -c /etc/wifi/meta_wpa_supplicant.conf

meta_wpa_supplicant.conf是配置文件,ctrl_interface是wpa_supplicant与wpa_cli通信的接口,ssid为要连接的wifi热点名称,key_mgmt为加密方式(NONE表示不加密 O(∩_∩)O~)。

ctrl_interface=/data/misc/wifi/sockets

network={
    ssid="TE-NonSignal"
    key_mgmt=NONE
}

2.wpa_cli连接wpa_supplicant

/system/bin/wpa_cli -iwlan0 -p /data/misc/wifi/sockets disable_network 0

3.扫描wifi

/system/bin/wpa_cli -iwlan0 -p /data/misc/wifi/sockets scan type=only

4.使能network0

/system/bin/wpa_cli -iwlan0 -p /data/misc/wifi/sockets enable_network 0

上面都是完整的语句,我们可以直接使用/system/bin/wpa_cli -iwlan0 -p /data/misc/wifi/sockets进入wifi命令模式,如下图所示,wifi命令模式下可以直接使用scan,status等指令

《淫技:android无屏操作之adb操控wifi》 Paste_Image.png

成功连上了TE-NonSignal的wifi,你可能会纳闷,怎么执行enable_network 0就连上了呢?手机怎么知道network 0是什么鬼呢?上面说了有个配置文件meta_wpa_supplicant.conf,有了这个配置文件就会自动连接TE-NonSignal网络了。

上面是使用配置文件去连接网络,当然我们也可以用命令行去连接网络啦
执行scan
然后执行scan_result,下图为扫描结果

《淫技:android无屏操作之adb操控wifi》 扫描结果.png

例如我们要连个公共网络OPPO-SZ,首先我们执行
add_network 如下图返回4,说明接下来要连接的network的id为4

《淫技:android无屏操作之adb操控wifi》 add_network.png

依次执行
set_network 4 ssid “OPPO-SZ”
set_network 4 key_mgmt NONE
enable_network 4
如下图,说明成功连接上wifi了

《淫技:android无屏操作之adb操控wifi》 network.png

    原文作者:九九叔
    原文地址: https://www.jianshu.com/p/d50ca2061c55
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞