android_wifi读书笔记之4-HAL层分析

本文详细分析了Android系统中WiFi HAL层的功能,包括驱动的加载卸载、wpa_supplicant的启动与通信接口,以及数据的发送和接收过程。在驱动加载部分,介绍了wifi_load_driver()和wifi_unload_driver()。wpa_supplicant的启动涉及wifi_start_supplicant()。数据传输部分讲解了发送数据的wifi_command()和接收数据的wifi_wait_for_event()。此外,还提到了与驱动交互的私有命令,如设置国家代码、扫描模式等。
摘要由CSDN通过智能技术生成

本文为读书笔记,整理自网络文献和源码

4 HAL层分析

Hardware/libhardware_legacy/wifi/wifi.c

这个文件主要是实现驱动的加载和卸载,wpa_supplicant的开启和关闭

4.1 驱动的加载卸载:

wifi_load_driver():驱动的加载。wifi驱动是编译成ko文件, ko文件储存的位置#defineWIFI_DRIVER_MODULE_PATH "/system/lib/modules/bcmdhd.ko" 。

这个方法会被上层调用加载驱动。

卸载方法 wpa_unload_driver()

4.2 Wpa_supplicant相关( 这也是wpa_supplicant的上行接口):

wifi_start_supplicant():上层要开启wpa_supplicant,直接调用的是这个方法,这个方法实际上是调用wifi_start_supplicant_common(const char *config_file)

wifi_start_supplicant_common(const char*config_file):这个方法实际上为wifi.c进程与wpa_supplicant进程相连做一些准备工作。

wifi_connect_to_supplicant():wifi.c进程与wpa_supplicant进程进行通信,他们之间采用socket的方式来实现进程间通信。wifi_connect_to_supplicant()方法两次调用的是wpa_ctrl.c里面的wpa_ctrl_open(constchar *ctrl_path)方法来实现,一个为ctrl interface,用于发送命令,获取信息。将另外一个接口作为参数,调用wpa_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值