作一个本身的WiFi密码查看器——Android

若是本文帮助到你,本人不胜荣幸,若是浪费了你的时间,本人深感抱歉。 但愿用最简单的大白话来帮助那些像我同样的人。若是有什么错误,请必定指出,以避免误导你们、也误导我。 本文来自:www.jianshu.com/users/320f9… 感谢您的关注。java

WiFi密码查看器 配合 WiFi万能钥匙 太爽了。 有时候用万能钥匙破解了密码以后想要让电脑连上却又不知道密码,或者想告诉别人密码装一把逼的时候,找不到密码,就蛋疼了。 以前在小米市场下载了一个,后来更新了就不能用了,每次去翻 re文件管理 也挺麻烦的。 干脆本身作一个,省的惧怕别人的App作什么手脚。 最终成品: 当、当、当当~~~~~android

目前市面流行的查看WiFi密码的方法基本相同, 就是想办法进入 data/misc/wifi 目录下,找到 wpa_supplicant.conf 文件,而后读取里面的数据。git

因此咱们的步骤也很是简单github

  1. 一切的前提是应用要获取到root权限;
  1. 用命令行的方式,获取 /data/misc/wifi/wpa_supplicant.conf 文件的数据;
  2. 解析数据,用列表显示;

这里要先声明一点,Android 上你获取到root权限,只是表明你可使用 su 了,你依然没法直接读取 /data/misc/wifi/ 这个路径的,你想要作的一切“非法”操做,都必须经过 su 来完成,也就是经过 shell 命令。 关于 shell 的方法,有个工具类,挺好用。 ShellUtils.javashell


而后来开始作:app

1. 一切的前提是应用要获取到root权限

这个就很少说了,我的的手机如何获取root权限,得靠本身了。工具

2. 用命令行的方式,获取 /data/misc/wifi/wpa_supplicant.conf 文件的数据;

其实也特别简单,直接上代码,要点在注释中说。spa

StringBuffer wifiConf = new StringBuffer();

Process process = null;
DataOutputStream dataOutputStream = null;
DataInputStream dataInputStream = null;
try {
	// 获取 root 环境
    process = Runtime.getRuntime().exec("su"); 
    dataOutputStream = new DataOutputStream(process.getOutputStream());
    dataInputStream = new DataInputStream(process.getInputStream());
	// cat file 打印文件的内容
	// 获取 /data/misc/wifi/wpa_supplicant.conf 数据,
    dataOutputStream.writeBytes("cat /data/misc/wifi/wpa_supplicant.conf\n"); 
    dataOutputStream.writeBytes("exit\n");
    dataOutputStream.flush();
    InputStreamReader inputStreamReader = new InputStreamReader(dataInputStream, "UTF-8");
    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
    String line = null;
	// 保存数据,这里都是最基本的 IO 操做,不作过多介绍
    while ((line = bufferedReader.readLine()) != null) {
        wifiConf.append(line);
    }
    bufferedReader.close();
    inputStreamReader.close();
    process.waitFor(); // 线程等待
} catch (Exception e) {
    return;
} finally {
    try {
        if (dataOutputStream != null) {
            dataOutputStream.close();
        }
        if (dataInputStream != null) {
            dataInputStream.close();
        }
        process.destroy(); // 线程销毁
    } catch (Exception e) {
    }
}
复制代码

这样 /data/misc/wifi/wpa_supplicant.conf  文件的内容就被保存在刚开始定义的 StringBuffer 当中,接下来,咱们经过本身喜欢的方式,将数据解析出来便可。命令行

3. 解析数据,用列表显示

都已经拿到数据了,解析完成以后,使用 ListView 进行显示便可。线程


总体的核心就是使用 shell 获取到 /data/misc/wifi/wpa_supplicant.conf 文件的内容,拿到数据以后,一切都变得简单了,都是最基本的操做。

源码在这里: WifiPassword 里面有 Apk 的下载连接哦~~~ wifi密码查看我仍是用的比较多的,每次给这个 apk root 权限的时候总惧怕他干了什么坏事,如今终于不怕啦。

相关文章
相关标签/搜索