level 12
XV-40
楼主
这次带来WIFI密码查看例程:



我看过很多wifi密码查看的源码,其中绝大部分都是直接读取wifi密码文件取密码文本就完事,我不清楚他们是没有考虑到细节还是不想放重要的步骤...
你们可以百度搜搜其他人的源码,app不是root检测有问题就是读取密码时崩溃(当然也有没问题的)。
===========================================================
读取原理:[1]Android 8.0以下(不包括8.0):(均需root)
wifi配置文件为/data/misc/wifi下的wpa_supplicant.conf文件
[2]Android 8.0及以上:
wifi配置文件为/data/misc/wifi下的WifiConfigStore.xml文件
读取wifi配置文件内的ssid以及psk(自行打开文本查看内容),其中涉及:
执行命令行()、去指定文本()、合并文本数组()
============================================================
其实崩溃的原因就是:列表框添加的项目与取指定文本()后的项目不对,比如:(请先了解读取原理)
wifi:A,密码:123456
wifi:B,密码:无密码
wifi:C,密码:13579
当我们读取ssid以及psk时会连同B一起读取,
这就引发了个问题,我们取指定文本()是文本型数组,我们添加在列表框中需要用计次=计次+1实现累添,
假设A的排序为0,则B为1,C为2;我们列表框就会添加A(1),B(2),C(3)
但是我们取psk时因为B密码为空,因此他不会取到B的密码(自行查看文件参考有密码和无密码的区别)
因此,我们添加列表框A(1),B(2),C(3)时ssid和psk对不上号,直接app崩溃。
所以我们需要用合并文本数组()来解决这个问题。
具体请参考源码:
百度网盘
2018年08月18日 15点08分
1



我看过很多wifi密码查看的源码,其中绝大部分都是直接读取wifi密码文件取密码文本就完事,我不清楚他们是没有考虑到细节还是不想放重要的步骤...你们可以百度搜搜其他人的源码,app不是root检测有问题就是读取密码时崩溃(当然也有没问题的)。
===========================================================
读取原理:[1]Android 8.0以下(不包括8.0):(均需root)
wifi配置文件为/data/misc/wifi下的wpa_supplicant.conf文件
[2]Android 8.0及以上:
wifi配置文件为/data/misc/wifi下的WifiConfigStore.xml文件
读取wifi配置文件内的ssid以及psk(自行打开文本查看内容),其中涉及:
执行命令行()、去指定文本()、合并文本数组()
============================================================
其实崩溃的原因就是:列表框添加的项目与取指定文本()后的项目不对,比如:(请先了解读取原理)
wifi:A,密码:123456
wifi:B,密码:无密码
wifi:C,密码:13579
当我们读取ssid以及psk时会连同B一起读取,
这就引发了个问题,我们取指定文本()是文本型数组,我们添加在列表框中需要用计次=计次+1实现累添,
假设A的排序为0,则B为1,C为2;我们列表框就会添加A(1),B(2),C(3)
但是我们取psk时因为B密码为空,因此他不会取到B的密码(自行查看文件参考有密码和无密码的区别)
因此,我们添加列表框A(1),B(2),C(3)时ssid和psk对不上号,直接app崩溃。
所以我们需要用合并文本数组()来解决这个问题。
具体请参考源码:
百度网盘