在android手機中,連接配接了wifi之後,密碼一般就看不到了,那有沒有什麼辦法可以檢視到這些密碼呢?辦法一般有兩種,一種是通過檢視wifi的配置檔案,一種是使用指令。對于第一種,網上已經有很多了,大緻就是先root,然後使用一些手機助手或者手機檔案檢視之類的工具(如es、root exploere等)來檢視wifi配置檔案(位置是進入data/misc/wifi,目錄裡有個wpa_supplicant.conf或者其他檔案名以.conf結尾的檔案)。
但是用這一種方法,有時會遇到一些問題,比如當手機的root不夠徹底時,會引發遇想不到的問題。比如小米手機,當我們使用root工具去root後,看似root成功了,卻會引起一些問題,比如授權出問題了、wifi不可用了、手機無法連接配接到電腦了等。
那如果不用這種方式,還有什麼方式呢?這就是今天的主題,檢視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的使用者名和密碼。
附上顯示密碼的代碼:
最終效果圖: