Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92
主要结构体:
wpa_interface: 每个网络接口的表示,可以支持多个
wpa_supplicant: 每个网络接口相对一个
wpa_params: 记录与网络接口无关的一些参数
wpa_global: 包含所有信息
流程说明:
2.1 main()
a. wpa_supplicant_init(), 初始化WPAS
b. wpa_supplicant_add_iface(), 添加网络接口
c. wpa_supplicant_run(), 运行处理收发消息
2.2 wpa_supplicant_init()
a. eap_register_methods() 注册EAP方法
b. 申请struct wpa_global内存
c. 设置wpa_global中的wpa_params中的参数
d. wpa_supplicant_global_ctrl_iface_init(), 初始化wpa_global中的ctrl_interface
e. wifi_display_init(), wifi display 初始化
2.3 wpa_supplicant_add_iface()
a. wpa_supplicant_alloc(), 分配struct wpa_supplicant
b. wpa_supplicant_init_iface(), 网络初始化工作,包括读取配置文件,初始化驱动,创建和driver通信的netlink,获取硬件特性以及能力,wpa,控制接口,bss, eapol初始化
c. wpa_supplicant_ctrl_iface_init(