[RK3288][Android6.0] WiFi之wpa_supplicant服务启动

来源:互联网 发布:淘宝去年双十一交易额 编辑:程序博客网 时间:2024/04/28 00:21

Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92

框架:
Android使用wpa_supplicant(开源软件项目,简称WPAS)服务对无线网络进行控制和管理,框架如下(摘自网络)
这里写图片描述

  1. Client调用方式指的是通过wpa_cli客户端的方式调用。也就是说wpa_cli和wpa_supplicant是C/S架构的关系,而
    Framework层也是C/S的方式通过socket与WPAS通信。
  2. WPAS作为framework和driver的中继,也就是framework -> wpa_supplicant -> driver, driver -> wpa_supplicant -> framework, 不过其实wpa_supplicant与driver中间还有一层叫cfg80211,这里当是Kernel driver框架的一部分吧。

启动:
hardware/libhardware_legacy/wifi/wifi.c

int wifi_start_supplicant(int p2p_supported){    //static const char SUPPLICANT_NAME[]     = "wpa_supplicant";    strcpy(supplicant_name, SUPPLICANT_NAME);    property_set("ctl.start", supplicant_name);}

启动wpa_supplicant服务,对应的配置在device/rockchip/common/init.connectivity.rc

########## kernel version >= 3.10.x ##########service wpa_supplicant /system/bin/wpa_supplicant \    -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \    -I/system/etc/wifi/wpa_supplicant_overlay.conf \    -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0    class main    socket wpa_wlan0 dgram 660 wifi wifi    disabled    oneshot

-iwlan0:对应的interface
-Dnl80211: 使用的驱动
-c/data/misc/wifi/wpa_supplicant.conf: 配置文件,前面文章有提过此文件的由来
-g@android:wpa_wlan0: 控制接口,后面会看到socket的连接对应的名字会用到它
socket wpa_wlan0 dgram 660 wifi wifi: 创建一个socket文件,名字是wpa_wlan0, framwork和WPAD的通信就靠它来建立。注意只有当服务运行起来后会创建。

阅读全文
1 0
原创粉丝点击