使用ADB获取已配置的WiFi

4

有没有一种通过ADB从非rooted的Android设备获取配置的WiFi-SSIDS的方法?这应该可以在WiFi开/关状态下独立工作。

谢谢

4个回答

5
通常所有配置的WIFI和它们的密码都保存在wpa_supplicant.conf文件中,该文件保存在/data/misc/wifi/wpa_supplicant.conf中。但是,除非您拥有root权限,否则无法访问它。
您可以使用以下命令拉取该文件:
如果使用Windows:
adb pull /data/misc/wifi/wpa_supplicant.conf c:\
如果使用Ubuntu:
adb pull /data/misc/wifi/wpa_supplicant.conf ~/

点赞因为这是针对已Root设备的有效答案。我已编辑了我的问题,因为我想知道是否有适用于非Root设备的解决方法(例如通过dumpsys或类似方式)。 - Soccertrash
据我所知,如果没有 root 访问权限,您无法访问该分区,但我仍会尝试查找是否有可能在没有 root 权限的情况下实现。 - Nishant Pardamwar
4
非root用户遇到以下错误信息:"adb: error: failed to stat remote object '/data/misc/wifi/wpa_supplicant.conf': Permission denied"。 - Dale

5

最终发现是

adb shell dumpsys wifi | grep -i ssid

提供配置的wifi信息

编辑:仅在启用wifi时


我已经重新启动了我的手机(Nougat)。即使它们不在范围内,已经配置的网络SSID仍然显示出来。它们被列出如下:- DSBLE ID: 1 SSID: "<SSID-NAME>" PROVIDER-NAME: null BSSID: null FQDN: null PRIO: 7 HIDDEN: false。请问您能否取消您的反对票? - Soccertrash
从这个转储中有没有办法判断网络的安全性?(即,保存的SSID是否受到密码保护) - Aaron_H

2

-3

adb pull在未root的设备上可以使用。您需要先以root身份运行该命令。请尝试以下操作:

在同一命令提示框中,

-输入[adb root]以以root身份重新启动adb。点击回车。

-现在输入[adb shell],点击回车。确保提示显示[root@[device]: ]

-在#提示符下输入[cd /data/misc/wifi],点击回车。

-最后输入[cat wpa_supplicant.conf],点击回车。

这将转储您手机上以前连接到的WiFi数据到您的电脑屏幕上。

*不要输入方括号[]

在遇到“远程对象不存在”问题后,这些命令在我的未root设备上都可以正常工作。


2
可能根据投票结果就可以看出来,除非在特殊情况下,否则这不起作用。使用来自谷歌的 adb 二进制文件,adb root 仅在开发版本中启用。尝试在其他情况下运行此命令将会显示:adb cannot run as root in production builds,除非你曾经有过 root 访问权限并已将 ro.debuggable 的值更改为 1,或者正在运行修改过的 adb 二进制版本(来自其他来源)。 - De Novo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接