天天看点

Android 用代码查看本机保存的Wifi密码

在android手机中,连接了wifi之后,密码一般就看不到了,那有没有什么办法可以查看到这些密码呢?办法一般有两种,一种是通过查看wifi的配置文件,一种是使用命令。对于第一种,网上已经有很多了,大致就是先root,然后使用一些手机助手或者手机文件查看之类的工具(如es、root exploere等)来查看wifi配置文件(位置是进入data/misc/wifi,目录里有个wpa_supplicant.conf或者其他文件名以.conf结尾的文件)。

但是用这一种方法,有时会遇到一些问题,比如当手机的root不够彻底时,会引发遇想不到的问题。比如小米手机,当我们使用root工具去root后,看似root成功了,却会引起一些问题,比如授权出问题了、wifi不可用了、手机无法连接到电脑了等。

那如果不用这种方式,还有什么方式呢?这就是今天的主题,查看wifi密码的第二种方式:命令。

先来看看效果图:

Android 用代码查看本机保存的Wifi密码

从图中,我们可以看到,通过依次输入命令后,拿到了wifi的用户名(test)和密码(12345)。现在来看这几个命令。

1、adb connect 192.168.1.6。这是使用adb来连接手机。如果adb没有配置到环境变量中,请先定位到adb所在的目录,然后执行该命令或者将其所在目录加入环境变量中。

2、adb shell。这是启动手机的命令终端。

wifimanage.java

wifiinfo.java

注:

1、通过runtime.getruntime().exec("su")获取root权限。

2、通过process.getoutputstream()和process.getinputstream()获取终端的输入流和输出流。

3、通过dataoutputstream.writebytes("cat /data/misc/wifi/*.conf\n")往终端中输入命令。注意,这里必须要有\n作为换行,否则会与后一个exit命令作为一个命令,最终导致命令执行失败,无法得到结果。

4、通过datainputstream获取命令执行结果,并以utf-8的编码转换成字符串。

5、使用正则表达式过滤出wifi的用户名和密码。

附上显示密码的代码:

最终效果图:

Android 用代码查看本机保存的Wifi密码