
深入理解Android:WiFi模块 NFC和GPS卷
文章平均质量分 76
《深入理解Android:WiFi模块 NFC和GPS卷》读书笔记
D0m1no
我们准备着深深地领受
那些意想不到的奇迹,
在漫长的岁月里忽然有
彗星的出现,狂风乍起。
展开
-
Chapter 5 Part 2 WifiStateMachine走读
1 WifiService构造函数分析教材源码和我现在看的Android 11还是有区别的,想了以下,还是按教材源码(Android 4)来按教材走完之后,还是需要按Android 11再走读一次WifiStateMachine是WifiService的核心mAsyncServiceChannel和mWifiStateMachineHandler都和AsyncHandler相关,与它们交互的Handler分别位于WifiManger和WifiStateMachine中2 WifiStateMach原创 2021-04-14 15:55:19 · 455 阅读 · 0 评论 -
Chapter 5 Part 1 WifiService简介
1 WifiService简介WifiService是Android Java Framework中负责Wi-Fi功能的核心服务它主要借助WPAS来管理和控制Android平台中的Wi-Fi功能虽然WPAS才是Android平台中整个Wi-Fi模块的真正核心但WifiService作为JavaFramework中Wi-Fi功能的总入口,其重要性也不言而喻教材分两条路线研究WifiService1.WifiService的创建和初始化2.在Settings中打开Wi-Fi功能、扫描无线网络及加入原创 2021-04-14 13:39:05 · 1565 阅读 · 0 评论 -
Chapter 4 Part 8 关联处理源码走读
1 关联事件处理流程分析WPAS中的driver wrapper将收到来自wlan driver的 NL80211_CMD_CONNECT 命令case NL80211_CMD_CONNECT:case NL80211_CMD_ROAM: /* 调用mlme_event_connect进行处理 NL80211_ATTR_STATUS_CODE 保存AP的处理结果 NL80211_ATTR_REQ_IE 保存Association Request请求时包含的I原创 2021-04-13 16:33:58 · 772 阅读 · 0 评论 -
Chapter 4 Part 7 关联源码走读
1 wpa_supplicant_connectevents.cint wpa_supplicant_connect(struct wpa_supplicant *wpa_s, struct wpa_bss *selected, struct wpa_ssid *ssid) { wpa_msg(wpa_s, MSG_DEBUG, "Considering connect request: reassociate: %d selected: " MACSTR " bs原创 2021-04-13 16:13:16 · 368 阅读 · 0 评论 -
Chapter 4 Part 6 扫描结果处理源码走读
1 扫描结果处理流程分析在上一节的扫描请求中,driver_nl80211发送了 NL80211_CMD_TRIGGER_SCAN 命令以通知它开始扫描周围的无线网络msg = nl80211_scan_common(bss, NL80211_CMD_TRIGGER_SCAN, params);当driver完成此任务后,它将向wpa_driver_nl80211_init_nl_global函数中注册的三个netlink组播之一的"scan"组播地址发送结果现在来看do_process_drv_原创 2021-04-13 15:21:14 · 1477 阅读 · 0 评论 -
Chapter 4 Part 5 WPAS扫描源码走读
1 wpa_supplicant连接无线网络分析1.在Settings中开启无线网络这个操作,会完成wlan驱动及相应固件加载的工作,这个工作实际上由netd来完成2.开启无线网络后,WifiService和wpa_supplicant开始工作下面按顺序分析 wpa_supplicant_ctrl_iface_process 处理ADD_NETWORK、SET_NETWORK、以及ENABLE_NETWORK的代码2 ADD_NETWORKADD_NETWORK的真正处理在 wpa_supplic原创 2021-04-13 13:46:10 · 658 阅读 · 0 评论 -
Chapter 4 Part 4 WPAS源码走读
1 wpa_supplicant_init_ifacestatic int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s, const struct wpa_interface *iface){ struct wpa_driver_capa capa; int capa_res; u8 dfs_domain; if (iface->confname) {#ifdef CONFIG_BACKEND_FILE原创 2021-04-12 17:37:11 · 423 阅读 · 0 评论 -
Chapter 4 Part 3 WPAS源码走读
1 wpa_supplicant_add_iface用于向WPAS添加接口设备,其实就是初始化这些设备wpa_supplicant.cstruct wpa_supplicant * wpa_supplicant_add_iface(struct wpa_global *global, struct wpa_interface *iface, struct wpa_supplicant *parent) { struct wpa_supplicant *wpa_s; st原创 2021-04-12 15:43:41 · 559 阅读 · 0 评论 -
Chapter 4 Part 2 WPAS源码走读
1 wpa_supplicant.confAndroid系统中,wpa_supplicant启动是通过setprop ctrl.start wpa_supplicant来触发init进程去fork一个子进程来完成的wpa_supplicant源代码中包含一个启动配置文件的模板,路径为external/wpa_supplicant_8/wpa_supplicant/wpa_supplicant.conf该文件对各项配置参数都有说明下面是我司手机pull出来的一份配置./data/vendor原创 2021-04-12 14:28:16 · 493 阅读 · 0 评论 -
Chapter4 Part 1 WPAS简介
1 wpa_supplicant简介一个开源软件项目,实现了Station对无线网络进行管理和控制的功能列举几个重要的功能:1.支持WPA和IEEE 802.11i所定义的大部分功能2.支持多种EAP Method3.对各种无线网卡和驱动的支持2 wpa_supplicant_8wpa_supplicant_8包含3个主要子目录1.hostapd:手机进入Soft AP模式,需要hostapd提供AP的功能2.wpa_supplicant:Station模式,也叫Managed模式3.s原创 2021-04-09 20:53:05 · 1109 阅读 · 0 评论 -
Chapter 3 Part 4 802.11管理帧
1 管理帧中的定长字段1.Authentication Algorithm Number 认证过程中使用的认证类型0 - 开放系统身份认证(Open System Authentication)1 - 共享密钥身份认证(Shared Key Authentication)2 - 快速BSS切换(Fast BSS Transition)3 - SAE(Simultaneous Authentication of Equals,等值同时认证),用于两个STA互相认证,常用于Mesh BSS(多跳互原创 2021-04-09 16:11:24 · 817 阅读 · 0 评论 -
Chapter 3 Part 3 MAC帧
1 MAC帧格式MAC帧由三个基本域组成1.MAC Header:包括帧控制(Frame Control)、时长(Duration)、地址(Address)等2.Frame Body:数据域,具体存储内容由帧类型和子类型决定3.FCS:帧校验序列,用于保障帧数据完整性规范指出:1.如果是QoS数据帧,需要附加QoS Control字段;如果是HT数据帧,需要附加HT Control字段2.Frame Body长度是7951字节,与Aggregate-MPDU(MAC报文聚合)以及HT有关2原创 2021-04-09 14:38:16 · 1596 阅读 · 0 评论 -
Chapter 3 Part 2 802.11组件和服务
1 801.11物理组件802.11无线网络包含四种主要物理组件1.WM(Wireless Medium),无线媒介2.STA(Station),工作站3.AP(Access Point),接入点4.DS(Distrubution System),分布式系统2 BSSBSS,基本服务集是整个无线网络的基本构建组件,BSS有两种类型1.独立型BSS,Independent BSS,不需AP参与,各STA之间直接交互,也叫ad-hoc BSS(译为自组网络或对等网络)2.基础结构型网络,Inf原创 2021-04-09 13:45:18 · 337 阅读 · 0 评论 -
Chapter 3 Part 1 基础知识
1 无线频谱无线频谱,即无线电波的频率, Radio Spectrum无须授权的频谱大部分集中在ISM,国际共用频段中各国的ISM频段并不完全一致,但都将2.4GHz频段划分ISM范围,所以Wi-Fi、蓝牙均可工作在此频段上虽然无需授权就可以使用这些资源,但管制机构对设备的功率却又要求因为无线频谱具有易被污染的特点,而较大的功率会干扰周围其他设备的使用2 IEEE 802.11802是IEEE成立于80年2月,任务为制定局域网和城域网标准的委员会802.11 是802项目的第11个工作组,专原创 2021-04-08 21:15:57 · 242 阅读 · 0 评论