自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

D0m1no的博客

仅此一生,竭尽全力。

  • 博客(82)
  • 收藏
  • 关注

原创 【WIFI-6】wifi6的一些理解

最近入职新公司,被分配了wifi6特性验证和测试的任务,所以整篇文章记录下自己的一些理解(基础原理部分不做介绍了)参考资料没有精力去上传这些资料或者贴链接,读者有意可以私信找我。

2024-06-24 15:02:43 1019 1

原创 wifi连接上后是怎么提供网络的?

WifiService 在开机完成后就像 CS 注册了一个 NetworkProvider,并经由这个NetworkProvider注册了一个 NetworkOffer,只不过处于一个无法向外提供服务的状态。当连接上某wifi(完成了数据链路层的连接)后,wifi 创建一个 NetworkAgent 用于管理这个网络,同时CS创建一个 NetworkMonitor 用于监管这个网络。

2024-03-08 17:04:47 1157

原创 [杂谈]我未来的职业发展

前段时间六个月的试用期过了,简单走了下流程转正。谁知很快就得到内部消息,整个公司组织架构面临调整,连带着,整个IOT研发部将有一部分人出走新的公司,而我就在这部分人之中。新的公司以为座舱研发操作系统为主要业务。唏嘘过后,我开始从一些角度审视自己的职业道路,它将延伸向何方,又将延伸多远。

2023-11-23 10:40:23 196

原创 [杂谈]未来的学习计划

最近终于从老东家离职,入职了新公司换了一家打工,心中有压制不住的兴奋,尤其是入职几天发现自己的主要任务是做特性开发,不用花太多时间在交付问题上的时候入职之后,有从内部文档找到这样一段话,其实也就是放在BOSS直聘上的招聘需求(高级)无线协议工程师工作职责:1. 负责Android手机系统短距离通信(WiFi/BT/NFC/UWB/GNSS)相关功能模块研发;2. 负责智能移动设备与智能汽车、智能家居设备的互联功能开发、技术预研与功能创新;

2023-05-17 11:22:45 495 1

原创 《理解了实现再谈网络性能》读书笔记

内核和⽹络设备驱动是通过中断的⽅式来处理的。当设备上有数据到达的时候,会给 CPU 的相关引脚上触发⼀个电压变化,以通知 CPU 来处理数据。对于⽹络模块来说,由于处理过程⽐较复杂和耗时,如果在中断函数中完成所有的处理,将会导致中断处理函数(优先级过⾼)将过度占据 CPU ,将导致 CPU ⽆法响应其它设备,例如⿏标和键盘的消息。因此。上半部是只进⾏最简单的⼯作,快速处理然后释放CPU ,接着 CPU 就可以允许其它中断进来。剩下将绝⼤部分的⼯作都放到下半部中,可以慢慢从容处理。

2023-05-11 14:42:21 877

原创 【杂谈】一些碎碎念

面试告一阶段了,有了一些心仪的offer,下午跟老板提了离职,和组里的几个好友也说了下。并没有感觉一身轻松,相反,竟有些惆怅。人总是会在一些意义重大的时刻审视自己。回顾我的职业发展道路,入职被分去modem,因为一些机缘巧合又被拉去做wifi,跟了一个不错的导师,干着android开发的活,吃了点fwk的源码和协议,导师一离职,走马上任,被迫处理了很多疑难杂症问题,有整理一些方法论。干到现在,愈发意识到,深入底层的重要性,决意往驱动方向去做,奈何在这层的开发经验太少,没有任何能去芯片厂的机会。

2023-04-13 10:56:19 615

原创 【杂谈】一些面经

上条博客竟是去年十月份写的,而今已是快四月了。半年时间真是快啊。没有写什么博客,一是因为工作业务多,二是本身也没所有什么想记录和输出的,这次只是纯纯吐槽一些东西,补点面经。

2023-03-30 15:58:10 442

原创 对双STA-双连接的一些思考

近期做这个开发,因为要和硬件同事合作,花了很多功夫和他们解释为什么双连接提升不了吞吐实际上,我自己也对这个特性有很多不懂的地方,实在头痛,这里整篇文章,把自己最近的困惑写一下基本都是口语化,没什么逻辑。

2022-09-29 15:00:19 1242 3

原创 wifi研习者 专栏的学习笔记

我是个中度游戏爱好者,平时闲下来只会选择去打游戏。我很喜欢只狼、老头环之类的大作,不闲的时候就忙里偷闲,去b站看这类游戏的剧情解析,所以认识了龙崎棒棒糖这个up主,他有一系列视频专栏解析这些魂类游戏的剧情,看的我很是着迷。这些专栏都以 研习者 命名,比如,狼学研习者,环学研习者。有一天,机缘巧合,我刷知乎刷到了 徐方鑫,他也有一个文章专栏,叫 :,文章大概有一百多篇,我很喜欢 研习者 这个词,所以点进去看了几篇。此人是个博士,就读期间专门研究802.11协议,里面的很多文章,我读完感觉深受启发。

2022-09-23 17:42:43 818

原创 初探Android S 双STA

Android S 双STA

2022-09-15 14:47:02 2333 4

原创 【Android S WiFi Framework】我的一份笔记

昨天出差来了重庆,组里有意让我给新人简单介绍下Android WiFi Framework。然鹅,我对fwk的理解还停留在Android R上,所以写一份笔记简单记录下我对Android S WiFi Framework的一些理解,这篇文章不放入任何专栏,且长期更新。(主要看心情)由于是笔记,所以写的比较随意,不会用心去画什么图来详细展示。packages/modules/Wifi/ 路径下开机时,SystemServer会去 load wifi service jar,创建WifiService,然

2022-07-09 15:22:16 2066

原创 【wpa_supplicant】driver如何告诉supplicant自己做的一些事情以及结果

按之前计划的,这期我们来看 driver如何告诉supplicant自己(被要求)做的一些事情以及结果老样子,adb logcat -c /adb logcat -s wpa_supplicant会发现如下的类似打印于是我们定位了 driver与supplicant通信的关键一环还记得之前 wpa_supplicant 初始化过程中调用的 nl80211_global_init 吗这里其实描述的有些错误在 nl80211_register_eloop_read 之前有一行目前看不大懂,但大致能猜到这是

2022-06-25 20:41:57 1205

原创 【wpa_supplicant】从 assoc 动作窥伺supplicant与driver的交互(二)

关于nl80211和cfg80211这个之前一直困扰,今天问了下坐我旁边的大神,终于稍微懂了点nl80211 是内核的一套无线驱动接口,标志性的特征就是 TAG-DATA一一对应,例如bssid = nla_data(info->attrs[NL80211_ATTR_MAC]); 就是从netlink msg中取出mac存到bssid中去wpa_supplicant 发起的MLME命令都是按固定格式发送netlink msg(socket通信)给nl80211(supplicant是用户态,而nl8

2022-06-23 20:32:26 938 2

原创 【wpa_supplicant】从 assoc 动作窥伺supplicant与driver的交互(一)

最近看到了一个大神的博客,结合自己学习 wpa_supplicant 的体验,有了一些感悟。ok, 总结完毕。这一期,打算从一个具体的动作 assoc 入手,去看 wpa_supplicant 与 driver 的交互,简单点说,assoc 这个动作怎么调起的driverwpa_supplicant_associate 需要传入两个参数 wpa_bss, wpa_ssid可以看到 wpa_supplicant_associate 的最终操作就是把 connect 动作塞进 radio_work 队列一个

2022-06-21 20:17:17 1140

原创 【wpa_supplicant】 初始化

wpa_supplicant 初始化

2022-06-10 11:23:01 817

原创 【wpa_supplicant】入门 && eloop 机制

wpa_supplicant入门 && eloop机制

2022-06-04 17:13:29 2982

原创 IEEE 802.11 无线局域网络 (Wireless LAN) 笔记

昨天看了 IEEE 802.11 无线局域网络 (Wireless LAN) ,写份笔记简单记录下之前不甚理解的地方。DCF && PCF首先,明确 DCF 是 contention-based ,而 PCF 是 contention-freePCF 中存在一种 PC(Point Coordinator) 的角色,它会按一个 polling list 轮询 PCF 中的每个基站有无封包要送RTS && CTS需要知道 RTS && CTS 是为了解决

2022-03-08 10:37:17 665

原创 【wpa_supplicant】Day 3 eloop

文章目录重要的结构体eloop_runhandler本文主要摘自 wpa_supplicant之eloop_run分析重要的结构体struct eloop_sock_table { size_t count; struct eloop_sock *table; eloop_event_type type; int changed;};struct eloop_sock { int sock; void *eloop_data; void *user_data; eloop_sock

2021-12-23 20:15:49 1413

原创 【wpa_supplicant】Day 2命令及控制

文章目录命令控制命令WPAS对外通过控制接口模块与客户端通信。在Android平台中,WPAS的客户端是位于Framework中的WifiService。用户在Settings界面进行Wi-Fi相关的操作最终都会经由WifiService通过发送命令的方式转交给wpa_supplicant去执行。WPAS定义了许多命令,常见的:PING:心跳检测命令。客户端用它判断WPAS是否工作正常。WPAS收到”PING”命令后需要回复“PONG”。MIB:客户端用该命令获取设备的MIB信息。STATUS

2021-12-21 20:51:00 1503

原创 【wpa_supplicant】Day 1 概述及架构

wpa_supplicant 概述及架构

2021-12-20 20:58:40 1935 3

转载 wpa_supplicant与wpa_cli之间通信过程

wpa_supplicant编译:1. wpa_supplicant/Android.mk :-- wpa_cli-- wpa_supplicant-- libwpa_client.so2. hostapd/Android.mk :-- hostapd_cli-- hostapd从通信层次上划分,wpa_supplicant提供向上的控制接口 control interface,用于与其他模块(如UI)进行通信,其他模块可以通过control i.....

2021-06-07 15:00:12 1547

原创 802.11协议精读(三)

入职后用半个月的时间略读过一次《802.11无线网络》,现在打算精读一次,所以,做好笔记。此前读过的一些章节依然会迅速过掉。这次依然打算只关注连接、验证的细节,对安全相关不做精读。希望有特殊的感悟。Chapter 5、6、8文章目录WEP 有线对等加密WEP的加密操作802.11x用户身份验证EAPEAP的请求与响应EAP身份验证方式EAP认证的成功与失败802.1X的架构及相关术语管理操作扫描被动扫描主动扫描扫描报告加入网络身份验证共享密钥身份验证交换过程预先身份验证关联过程重新关联过程电源管理

2021-06-02 11:37:46 734

原创 802.11协议精读(二)

入职后用半个月的时间略读过一次《802.11无线网络》,现在打算精读一次,所以,做好笔记。此前读过的一些章节依然会迅速过掉。这次依然打算只关注连接、验证的细节,对安全相关不做精读。希望有特殊的感悟。Chapter 4文章目录数据帧Data(数据)Null(空)控制帧RTSCTSACKPS-PollCF-EndCF-End + CF-Ack管理帧长度固定的管理帧组件Authentication Algorithm Number字段Authentication Transaction Sequence

2021-06-02 11:36:04 941

原创 802.11协议精读(一)

入职后用半个月的时间略读过一次《802.11无线网络》,现在打算精读一次,所以,做好笔记。此前读过的一些章节依然会迅速过掉。这次依然打算只关注连接、验证的细节,对安全相关不做精读。希望有特殊的感悟。Chapter 1-3文章目录802.11网络包含四种主要物理组件网络类型IBSS: independant BSS 独立基本服务集基础结构性网络 : infrastructure BSSESS: extended service set 扩展服务集网络服务分布式整合关联重新关联取消关联身份验证接触身份

2021-06-02 11:35:40 1489 2

原创 WifiMonitor解读

一句话总结WifiMonitor 负责从 wpa_supplicant 接收上报事件并通知 framework 进行相应处理WifiMonitor 维护一个 mMonitoringMap ,保存的是当前处于 monitoring 状态的 ifaceWifiMonitor 有一些 startMonitoring、 stopMonitoring 的操作,本质就是在操作这个 mapprivate final Map<String, Boolean> mMonitoringMap = new H

2021-05-27 16:29:33 1162

原创 framework是如何与WPAS通信的

那么现在我们来反向走读framework如何通知WPAS执行一些操作的以 开启wifi 为例,代码走到 WifiNative 之后(不要问我为什么会走到这里)// WifiNative.javapublic boolean connectToNetwork(@NonNull String ifaceName, WifiConfiguration configuration) { // Abort ongoing scan before connect() to unblock connect

2021-05-24 11:02:28 449

原创 WPAS是如何与framework通信的

这里先整理WPAS通知framework事件的源码external\wpa_supplicant_8\wpa_supplicant\hidl\1.3\hidl.cpp 中定义了一些 wpas_hidl_notify 前缀的方法这些方法是 WPAS 通知 hal 事件的接口以 wpas_hidl_notify_disconnect_reason 为例实际调用的是 HidlManager 这个类的 notifyDisconnectReason 方法(wpas_hidl_notify 方法都是这种形式)

2021-05-24 11:01:36 866

原创 WakeupController 走读

下周三要做内部培训这里先走读 WakeupController 完成对Android R WIFI重连场景的代码走读覆盖可以设想这样一种场景:用户手机wifi关闭,回到家自动打开并连接上家里的wifi我们把这个流程代码走读一遍WakeupController先看注释/** * WakeupController is responsible managing Auto Wifi. * * <p>It determines if and when to re-enable wif

2021-05-11 20:16:07 495 1

原创 Android R Framework wifi扫描场景总结

文章目录Android Framework wifi扫描Android R wifi扫描场景(包含客制化项)亮屏情况下,在 WifiSetting 界面亮屏情况下,在非 WifiSettings 界面灭屏情况下无保存网络情况下,固定扫描Android Framework wifi扫描当打开wifi时、进入wifi settings时、亮屏时、灭屏时、连接状态变化时,都会触发扫描以下场景1/2/4中的扫描是全信道扫描,扫描控制逻辑在Android framework,涉及模块依次是WifiTracker

2021-04-27 15:30:31 1712 2

原创 Android R Framework Wi-Fi 扫描机制解读

文章目录WifiScanner.ScanListener && WifiScanner.PnoScanListenerAllSingleScanListenerSingleScanListenerPnoScanListener本文建立在研读 WifiConnectivityManager.java 和 其打印的log 的基础上WifiConnectivityManager 内置三种 ScanListener,分别是AllSingleScanListener implements Wi

2021-04-26 20:06:27 1303

原创 CandidateScorer

文章目录写在前面CompatibilityScorerScoreCardBasedScorerBubbleFunScorerThroughputScorer写在前面Android R 有四个 WifiCandidates.CandidateScorer,分别是CompatibilityScorerScoreCardBasedScorerBubbleFunScorerThroughputScorer它们在 WifiInjector 的构造函数中被初始化,并通过 mWifiNetworkSel

2021-04-25 20:18:32 457

原创 NetworkNominator 解读

NetworkNominator是 WifiNetworkSelector 的内部类,其内部对象记录在 mNominators 中,通过 WifiNetworkSelector 的 registerNetworkNominator 方法注册在 WifiInjector 的构造过程中注册了三个 NetworkNominator 对象:SavedNetworkNominator:用于保存的网络NetworkSuggestionNominator:用于提供最高可用性候选建议ScoredNetworkNo

2021-04-25 16:21:23 503

原创 WifiCandidates 解读

WifiCandidates 解读解释/** * Candidates for network selection */public class WifiCandidatesWifiCandidates 是方便 WifiNetworkSelector 进行 select network 动作时抽象出来的一个类可以简单理解为 参选网络WifiConnectivityManager 在收到底层传递的扫描结果消息时,在 handleScanResults 用到了 NetworkSelector

2021-04-23 16:59:14 454

原创 Android R WiFi 选网机制解读

我们从 WifiNetworkSelector 入手研究 Android R WiFi 选网机制在 WifiInjector 的构造过程中, 会初始化 WifiNetworkSelector 对象,并进行 registerCandidateScorer 动作, 之后注册了三个 NetworkNominator 对象mWifiNetworkSelector.registerCandidateScorer(compatibilityScorer);mWifiNetworkSelector.register

2021-04-23 16:58:21 1615

转载 NetworkSelector 和 WifiConnectivityManager

本文源自 WifiConfigManager NetworkSelector 和 WifiConnectivityManager1. WifiConnectivityManager 管理连接过程在其收到底层传递的扫描结果消息时,在 handleScanResults 中处理,里面调用了如下主要步骤:用到了 NetworkSelector 类对象进行处理,getCandidatesFromScan,以 ScanDetail 对象列表为输入获取到 WifiCandidates.Candidate 对象列

2021-04-22 20:14:13 1329

转载 WiFi 扫描处理过程

本来源自 WiFi 扫描处理过程从 WifiServiceImpl.java 中进行上层的服务请求,进行扫描:/** * See {@link android.net.wifi.WifiManager#startScan} * * @param packageName Package name of the app that requests wifi scan. * @param featureId The feature in the package */@Overridepubli

2021-04-22 15:28:34 1172

转载 WifiConnectivityManager 管理扫描

写这篇博文前,参考了不少优秀的博客,对照着Android 11的源码,做了一次不大精细的走读本文源自WifiConnectivityManager 管理扫描WifiConnectivityManager 通过 WifiScanner.java 中 WifiScanner 类的 registerScanListener 方法注册 Scan 结果的回调监听句柄,实际上内部通过 AsyncChannel 向 WifiScanningService 层发送了 CMD_REGISTER_SCAN_LISTENER

2021-04-22 11:46:26 1551

原创 WifiNetworkSelector 走读

WifiNetworkSelector代码走读写在前面顾名思义,WifiNetworkSelector负责选出符合条件的wifi网络解释这份代码的解释/** * WifiNetworkSelector looks at all the connectivity scan results and * runs all the nominators to find or create matching configurations. * Then it makes a final selecti

2021-04-20 21:24:17 1311

原创 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 412

原创 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 1403

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除