root cause:
/data/vendor/wifi/wpa/wpa_supplicant.conf 是0字节,导致wpa_supplicant_init_iface缺少”p2p_disabled=1“的配置就会在走错flow到p2p
wpa_supplicant_init_iface =》wpas_p2p_init
从而在HidlManager::registerInterface 进入 if (isP2pIface(wpa_s))
最终 E SupplicantStaIfaceHal: Failed to create ISupplicantIface 1
wifi 完整开启过程可以参考:https://blog.csdn.net/qq_39036223/article/details/124164745
总共做了三次实验:
实验一:在/data/vendor/wifi/wpa/wpa_supplicant.conf 加入”p2p_disabled=1“,并重启,问题消失
实验二:删除/data/vendor/wifi/wpa/wpa_supplicant.conf ,并重启,问题消失
实验三:/data/vendor/wifi/wpa/wpa_supplicant.conf 清空内容,确认文件大小为0字节,并重启,问题复现。
仍存在的疑点:
目前暂不知在升级中为何导致/data/vendor/wifi/wpa/wpa_supplicant.conf 是0字节;有可能是写入失败,也可能是内容被清空
目前想到的解法,供斟酌参考:
如果发现/data/vendor/wifi/wpa/wpa_supplicant.conf 是0字节,可以重新写入配置;或者删除后重新生成wpa_supplicant.conf