代码改变世界

随笔分类 -  Android wifi

上层应用与wpa_supplicant,wpa_supplicant与kernel 相关socket创建交互分析

2013-09-16 21:43 by ...平..淡..., 3822 阅读, 收藏, 编辑
摘要: 单独拿出来,分析以下上层应用与wpa_supplicant wpa_supplicant与kernel 的socket交互。关联上层应用与wpa_supplicant的socket的创建、连接流程分析[-->./wpa_supplicant/ctrl_iface_unix.c]1.wpa_supplicant初始化时,在wpa_supplicant_ctrl_iface_init方法中,会通过priv->sock=socket(PF_UNIX,SOCK_DGRAM,0);创建了一个socket,然后bind到指定的地址中的路径(/data/misc/wifi/sockets/p2p 阅读全文

wpa_supplicant与kernel交互

2013-09-03 22:43 by ...平..淡..., 8791 阅读, 收藏, 编辑
摘要: wpa_supplicant与kernel交互的操作,一般需要先明确驱动接口,以及用户态和kernel态的接口函数,以此来进行调用操作。这里分为4个步骤讨论。1.首先需要明确指定的驱动接口。因为有较多的驱动接口可以使用,如wext、nl80211等。指定了之后,才能调用相应接口的方法。2.保存驱动接口3.接口函数的实现(分为用户态和kernel态)。系统已经定义了,我们只需找到定义的地方,了解有哪些函数。4.交互(a)用户态向kernel态发送请求(通过ioctl)(b)kernel态向用户态发送事件通知(通过netlink)1.首先需要明确指定的驱动接口(1)查看init.XX.rc中指定的 阅读全文

wpa_supplicant下行接口浅析

2013-08-18 17:25 by ...平..淡..., 5299 阅读, 收藏, 编辑
摘要: wpa_supplicant通过socket通信机制实现下行接口,与内核进行通信,获取信息或下发命令。以下摘自http://blog.csdn.net/fxfzz/article/details/6176414,该文章应该主要是分析wpa_supplicant_6的,和wpa_supplicant_8确实存在一些差别!!!以下还是根据6来分析。wpa_supplicant提供的下行接口主要用于和kernel(driver)进行通信,下发命令和获取信息。wpa_supplicant下行接口主要包括三种重要的接口:1.PF_INETsocket接口,主要用于向kernel发送ioctl命令,控制并 阅读全文

wpa_supplicant上行接口浅析

2013-08-18 17:21 by ...平..淡..., 4046 阅读, 收藏, 编辑
摘要: 摘自http://blog.csdn.net/fxfzz/article/details/6176414wpa_supplicant提供的接口从通信层次上划分,上行接口:wpa_supplicant提供向上的控制接口control interface,用于与其他模块(如UI)进行通信,其他模块可以通过control interface来获取信息或下发命令。下行接口:wpa_supplicant通过socket通信机制实现下行接口,与内核进行通信,获取信息或下发命令。本篇博文主要分析wpa_supplicant的上行接口。一共有两种方式:一种基于传统dbus机制实现与其他进程间的IPC通信;另一 阅读全文

wpa_supplicant之eloop_run分析

2013-08-18 17:20 by ...平..淡..., 8356 阅读, 收藏, 编辑
摘要: 部分内容转自http://blog.chinaunix.net/uid-20273473-id-3128151.html重要结构体!!!struct eloop_sock { int sock; void *eloop_data; void *user_data; eloop_sock_handler handler; //该handler是一个方法,后续socket有变化,就会调用相应的socket所在的结构体中的handler方法来处理 WPA_TRACE_REF(eloop); WPA_TRACE_REF(user); WPA_TRACE_INF... 阅读全文

wpa_supplicant 初始化

2013-07-28 22:59 by ...平..淡..., 2643 阅读, 收藏, 编辑
摘要: 几个重要的结构体介绍:1.structwpa_interface---Parametersforwpa_supplicant_add_iface().wpa_interface对应网络接口。因为wpa_supplicant支持多个网络接口,所以可能有多个wpa_interface结构体,可以通过命令行指定不同的接口。wpa_supplicant在main函数开始的地方会进行遍历!(参考代码main.c)2.structwpa_global---Internal,globaldataforall%wpa_supplicantinterfaces.Thisstructureisinitialize 阅读全文

android4.1 Wifi 浅析

2013-07-28 22:59 by ...平..淡..., 2457 阅读, 收藏, 编辑
摘要: 简单分析下wifi相关类,首先了解几个主要概念AsyncChannel简单理解:AsyncChannel,就是借助Messenger机制,让两个不同的handler之间进行通信。AsyncChannel类有两个Messenger对象:mSrcMessenger,mDstMessenger。mSrcMessenger,一般用于封装源端handler对象mDstMessenger,一般用于封装目的端handler对象而后,调用AsyncChannel的sendMessage方法时,执行两个操作:1.msg.replyTo=mSrcMessenger;//重设消息的replyTo值2.mDstMes 阅读全文