wifi @android:wpa_wlan0,[RK3288][Android6.0] WiFi的wpa_supplicant服务启动

Platform: Rockchip

OS: Android 6.0

Kernel: 3.10.92

框架:

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

0818b9ca8b590ca3270a3433284dd417.png

Client调用方式指的是通过wpa_cli客户端的方式调用。也就是说wpa_cli和wpa_supplicant是C/S架构的关系,而

Framework层也是C/S的方式通过socket与WPAS通信。

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的通信就靠它来建立。注意只有当服务运行起来后会创建。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值