[BUG]新加坡地区wlan mac地址异常

复现场景

在产线的反馈中,发现当地区选择新加坡时,工模测试wlan mac address会测试fail。而当连接一次wifi后在进行测试又能pass。

LOG分析

开机初始化时,读取NV获得mac地址:90:78:b2:b0:c5:4a

这个地方这个mac地址被更改为ba:78:9d:ef:fb:a6

最后发现是这个已保存网络”SingTel WIFI” 在上层配置了随机mac地址导致。

这个地方就很奇怪,地区选择新加坡地区,就会自动创一个名为“SingTel WIFI”的保存网络。后续继续check小米的需求,发现这个是新加坡地区的定制需求。

工模apk中mac地址的判断

判断地址的前2位的16进制数转化成2进制数不能有1,根据spec这个是company_id,而蓝牙 的mac地址的规则也是这么定义的。

而ba:78:9d:ef:fb:a6很明显就是不合法的mac地址,所以fail.

修正方案

  1. 小米上层在配置”SingTel WIFI”时,修改随机mac地址的规则即可!
  2. 工模代码修改
    去掉对G/L位的判断
    G/L(Global/Local,也称为U/L位,其中U表示Universal)位,如果G/L=0,则是全局管理地址,由IEEE分配;如果G/L=1,则是本地管理地址,是网络管理员为了加强自己对网络管理而指定的地址。因为随机MAC是强制的,不能保证用户不会切换到随机MAC。

剑气纵横三万里

“为什么要努力?” “想去的地方很远,想要的东西很贵,喜欢的人很优秀,父母的白发,朋友的约定,周围人的嘲笑,以及,天生傲骨。”

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐

暂无内容!