如果本文幫助到你,本人不勝榮幸,如果浪費了你的時間,本人深感抱歉。 希望用最簡單的大白話來幫助那些像我一樣的人。如果有什麼錯誤,請一定指出,以免誤導大家、也誤導我。 本文來自:www.jianshu.com/users/320f9… 感謝您的關注。
WiFi密碼檢視器 配合 WiFi萬能鑰匙 太爽了。 有時候用萬能鑰匙破解了密碼之後想要讓電腦連上卻又不知道密碼,或者想告訴別人密碼裝一把逼的時候,找不到密碼,就蛋疼了。 之前在小米市場下載了一個,後來更新了就不能用了,每次去翻 re檔案管理 也挺麻煩的。 乾脆自己做一個,省的害怕別人的App做什麼手腳。 最終成品: 當、當、噹噹~~~~~
目前市面流行的檢視WiFi密碼的方法基本相同, 就是想辦法進入 data/misc/wifi 目錄下,找到 wpa_supplicant.conf 檔案,然後讀取裡面的資料。
所以我們的步驟也非常簡單
- 一切的前提是應用要獲取到root許可權;
- 用命令列的方式,獲取 /data/misc/wifi/wpa_supplicant.conf 檔案的資料;
- 解析資料,用列表顯示;
這裡要先宣告一點,Android 上你獲取到root許可權,只是代表你可以使用 su 了,你依然無法直接讀取 /data/misc/wifi/ 這個路徑的,你想要做的一切“非法”操作,都必須通過 su 來完成,也就是通過 shell 命令。 關於 shell 的方法,有個工具類,挺好用。 ShellUtils.java
然後來開始做:
1. 一切的前提是應用要獲取到root許可權
這個就不多說了,個人的手機如何獲取root許可權,得靠自己了。
2. 用命令列的方式,獲取 /data/misc/wifi/wpa_supplicant.conf 檔案的資料;
其實也特別簡單,直接上程式碼,要點在註釋中說。
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 許可權的時候總害怕他幹了什麼壞事,現在終於不怕啦。