原因:公司有某个类型设备miracast 华为反控不生效
第一步,查看原因发现反控的TCP连接通道建立失败
第二步,wiresharke抓包,发现TCP三次握手成功后立刻被华为手机方断开连接
第三步,查看华为手机日志:过滤UIBC,发现有一条日志表示,mac比对失败,华为手机断开连接
这里大致猜到原因了,由于miracast是通过P2P建立连接的,我们的P2P设备是做GO的,这个设备通过wpa_supplicant建立GO时是虚拟一个网口的。该网口的mac地址和wpa_supplicant绑定的网口mac地址不一致
查看日志大致判断,华为手机UIBC代码获取mac地址是通过P2P连接过程中获取的。此时获取到的是wpa_supplicant绑定的网口的mac地址。而建立TCP连接时使用的是ip绑定的网口,即生成的虚拟网口的mac地址。
第四部,该如何修改,1:让华为去修改不现实。 2 我自己修改wpa_supplicant源码
第五步,修改代码