关于wifi mac地址的FAQ
时间:10-02
整理:3721RD
点击:
1. 1. 关于wifi mac地址的FAQ
由于没有写MAC Address,会发生WLAN报错“设置已停止运行”
[SOLUTION]
举例:
Main log里分析一:
01-01 03:07:03.221 783 783 E androidRuntime: Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract!
01-01 03:07:03.221 783 783 E AndroidRuntime: at com.android.settings.wifi.WifiSettings.constructAccessPoints(WifiSettings.java:914)
Main log分析二:
01-01 03:06:57.160 421 491 I wifi : 00:00:00:00:00:00 2412 0 [ESS] NVRAM WARNING: Err = 0x10
综述如下:
上面的log 就是在没有烧Mac地址的时候会scan 出来的AP,
当Collections.sort()走到compareTo()中的以下代码的时候, 会出现排序不稳定的状态
// Reachable one goes before unreachable one.
if ((mRssi ^ other.mRssi) < 0) {
return (mRssi != Integer.MAX_VALUE) ? -1 : 1;
}
例如: A.mRssi = 0(没烧Mac地址出现的虚拟的AP)
B.mRssi = -72(正常AP的mRssi都是负数)
那么: compareTo(A, B) = -1
compareTo(B, A) = -1
这样就会抛出 IllegalArgumentException.
所以应该是正常现象, 要求做测试时,要先烧Mac地址, 再做测试
2. 步骤如下:
1、在有WIFI信号的地方,连接WIFI,可连接,并上网;
2、走出WIFI信号区, 此时WIFI掉线,不能上网;
3、回到WIFI信号区,未能自动连接上之前已经注册好的WIFI
有可能是 MAC 地址都一样的,可能会掉线,死机。
77平台,我们另一款从华勤拿的也存在同样的问题。
MAC地址没写,我写一下再验证
3.
为什么会有NVRAM WARNING:Err = 0x10?
原因是没有写合法的MAC地址。这个warning ,是mtk提示您写合法的mac地址。因为不写
mac地址,用个随机数代替,这个是不符合规范的。
MAC地址一样会有什么风险?
mac地址一样会导致wifi无法正常工作。
wifi收到的包都是根据mac地址来发的。打个比方就是,当邮递员拿到一封寄给76号的
信时,他发现这条街所有门牌号都是76号,这个时候就有问题了。可能这封信就没有
发到应该发到的地方。引用到wifi上来就是会出现莫名其妙的断线,死机,等等问题
4.
WiFi中mac地址没有写正确会遇到很多问题,如mac地址不断变动,nvram warning等
。下面对这些问题作详细说明。 Mtk也不会拿掉这个warning,因为这样不合规范。
如何写WIFI MAC地址?
用META工具修改,如果下图,但写入的MAC地址要合法。
见附件的图片
由于没有写MAC Address,会发生WLAN报错“设置已停止运行”
[SOLUTION]
举例:
Main log里分析一:
01-01 03:07:03.221 783 783 E androidRuntime: Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract!
01-01 03:07:03.221 783 783 E AndroidRuntime: at com.android.settings.wifi.WifiSettings.constructAccessPoints(WifiSettings.java:914)
Main log分析二:
01-01 03:06:57.160 421 491 I wifi : 00:00:00:00:00:00 2412 0 [ESS] NVRAM WARNING: Err = 0x10
综述如下:
上面的log 就是在没有烧Mac地址的时候会scan 出来的AP,
当Collections.sort()走到compareTo()中的以下代码的时候, 会出现排序不稳定的状态
// Reachable one goes before unreachable one.
if ((mRssi ^ other.mRssi) < 0) {
return (mRssi != Integer.MAX_VALUE) ? -1 : 1;
}
例如: A.mRssi = 0(没烧Mac地址出现的虚拟的AP)
B.mRssi = -72(正常AP的mRssi都是负数)
那么: compareTo(A, B) = -1
compareTo(B, A) = -1
这样就会抛出 IllegalArgumentException.
所以应该是正常现象, 要求做测试时,要先烧Mac地址, 再做测试
2. 步骤如下:
1、在有WIFI信号的地方,连接WIFI,可连接,并上网;
2、走出WIFI信号区, 此时WIFI掉线,不能上网;
3、回到WIFI信号区,未能自动连接上之前已经注册好的WIFI
有可能是 MAC 地址都一样的,可能会掉线,死机。
77平台,我们另一款从华勤拿的也存在同样的问题。
MAC地址没写,我写一下再验证
3.
为什么会有NVRAM WARNING:Err = 0x10?
原因是没有写合法的MAC地址。这个warning ,是mtk提示您写合法的mac地址。因为不写
mac地址,用个随机数代替,这个是不符合规范的。
MAC地址一样会有什么风险?
mac地址一样会导致wifi无法正常工作。
wifi收到的包都是根据mac地址来发的。打个比方就是,当邮递员拿到一封寄给76号的
信时,他发现这条街所有门牌号都是76号,这个时候就有问题了。可能这封信就没有
发到应该发到的地方。引用到wifi上来就是会出现莫名其妙的断线,死机,等等问题
4.
WiFi中mac地址没有写正确会遇到很多问题,如mac地址不断变动,nvram warning等
。下面对这些问题作详细说明。 Mtk也不会拿掉这个warning,因为这样不合规范。
如何写WIFI MAC地址?
用META工具修改,如果下图,但写入的MAC地址要合法。
见附件的图片
感谢分享,没看到图片。
感谢小编分享
mark~