
Wifi
文章平均质量分 68
wifi记录
i加加
定个小目标,每周末一篇博客。
展开
-
(两百八十九)Android R supplicant的恢复机制
1.简介我无聊试了下用命令把supplicant杀了,但是supplicant后来又自己启动起来了,看下流程2.流程梳理WifiNative /** Helper method invoked to start supplicant if there were no STA ifaces */ private boolean startSupplicant() { synchronized (mLock) { if (!mIfac.原创 2021-01-01 16:38:42 · 1328 阅读 · 0 评论 -
(两百三十八)Android Q 学习WiFi AP的临时禁用 续
接续(一百九十三) Android Q 学习WiFi AP的临时禁用1.临时禁用的场景上一篇梳理到了网络不通会导致临时禁用 /** * Network Selection disable reason thresholds. These numbers are used to debounce network * failures before we...原创 2020-04-24 20:22:01 · 2333 阅读 · 1 评论 -
(两百三十七)Android Q WiFi 校验带来的后续影响
目录1.流程梳理1.1 网络校验1.1.1 网络校验失败1.1.2 网络校验成功1.2 超时校验2.总结1.流程梳理1.1 网络校验ConnectivityService case EVENT_NETWORK_TESTED: { final NetworkAgentInfo na...原创 2020-04-24 20:11:56 · 1939 阅读 · 0 评论 -
(两百一十七)Android Q WiFi对应用前后台扫描的限制
1.流程梳理ScanRequestProxy // Check and throttle scan request unless, // a) App has either NETWORK_SETTINGS or NETWORK_SETUP_WIZARD permission. // b) Throttling has been disabl...原创 2020-03-29 13:34:00 · 2030 阅读 · 0 评论 -
(两百一十六)Android Q WiFi p2p mac地址生成逻辑梳理
1.流程梳理WifiP2pServiceImpl case ENABLE_P2P: if (!mIsWifiEnabled) { Log.e(TAG, "Ignore P2P enable since wifi is " + mIsWifiEnab...原创 2020-03-29 13:11:53 · 3030 阅读 · 0 评论 -
(两百零七)Android Q wifi config开机加载流程
目录1.思路2.流程梳理3. 总结1.思路wifi config在手机中是以文件形式保存的,那开机的时候手机必然要解析文件成对应的config对象,梳理下流程2.流程梳理ClientModeImpl case CMD_BOOT_COMPLETED: // get other service...原创 2020-03-01 00:30:06 · 3973 阅读 · 0 评论 -
(两百零一) 探讨p2p0的粘性
前言:在平常工作中,注意到关闭热点后,p2p0就自己起来了,而这是自己又没操作p2p相关的应用,这是为什么呢?1.p2p0自启动流程 // Check & re-enable P2P if needed. // P2P interface will be created if all of the below are true: ...原创 2020-01-22 20:25:16 · 1301 阅读 · 0 评论 -
(一百九十七)Android Q 学习WiFi的评分机制(四)
1.NetworkAgentInfo对评分的再处理 private int getCurrentScore(boolean pretendValidated) { // TODO: We may want to refactor this into a NetworkScore class that takes a base score from // ...原创 2019-12-22 10:36:15 · 1249 阅读 · 0 评论 -
(一百九十六)Android Q 学习WiFi的评分机制(三)
前言:之前在(一百九十六)Android Q 学习WiFi的评分机制(二)梳理了CS对WiFi score变化的处理,主要是rematchAllNetworksAndRequests方法中的处理,其中有个linger相关的处理,抽取出来过一下流程。目录1. lingerRequest2.updateLingerTimer3.CS的后续处理4.NetworkAgent的后...原创 2019-12-22 10:27:18 · 2069 阅读 · 0 评论 -
(一百九十六)Android Q 学习WiFi的评分机制(二)
前言:在之前的(一百九十五)Android Q 学习WiFi的评分机制(一)中梳理到了WiFi 更新评分后会发送给CS,继续梳理下目录1.ConnectivityService1.1updateNetworkScore1.2rematchAllNetworksAndRequests1.2.1 满足request1.2.2 过去满足request1.2...原创 2019-12-22 00:12:01 · 2573 阅读 · 0 评论 -
(一百九十五)Android Q 学习WiFi的评分机制(一)
目录1.ClientModeImpl1.1getWifiLinkLayerStats1.2fetchRssiLinkSpeedAndFrequencyNative1.3 calculateAndReportScore2.总结前言:WiFi除了自动连接的评分还有网络的评分,学习下具体逻辑1.ClientModeImplClientModeImpl里面...原创 2019-12-20 23:55:04 · 5865 阅读 · 0 评论 -
(一百九十四)Android Q 学习WiFi AP的永久禁用
1. 永久禁用WifiConfigManager /** * Helper method to mark a network permanently disabled for network selection. */ private void setNetworkSelectionPermanentlyDisabled( Wif...原创 2019-12-14 23:25:20 · 2800 阅读 · 0 评论 -
(一百九十三) Android Q 学习WiFi AP的临时禁用
1.临时禁用WifiConfigManager /** * Helper method to mark a network temporarily disabled for network selection. */ private void setNetworkSelectionTemporarilyDisabled( Wifi...原创 2019-12-14 00:11:53 · 2715 阅读 · 0 评论 -
(一百九十二) Android Q 学习WiFi AP的禁用
前言:wifi ap使用过程中会由于各种原因变得不可靠,比如密码错误,认证失败等等,这时候需要禁用该类型的AP使得WiFi不自动连接该AP,优化用户体验1.ClientModeImpl case WifiMonitor.AUTHENTICATION_FAILURE_EVENT: mWifiDiagnostics....原创 2019-12-13 23:34:05 · 3556 阅读 · 0 评论 -
(四十九)Android O Wifi中的状态模式-WifiStateMachine的状态初始化
前言:WifiController和WifiStateMachine中都用到了状态模式,据《Head First设计模式》所讲状态模式就是封装基于状态的行为,并将行为委托到当前状态。PS:如果条件允许的话,可以先学习下《Head First设计模式》的第十章状态模式,讲的很好。或者参考https://blog.youkuaiyun.com/shuangde800/article/details/1013282...原创 2018-06-23 11:45:57 · 4109 阅读 · 1 评论 -
(五十) Android O WiFi的扫描流程梳理
前言:在之前的WiFi博客中主要梳理了WiFi的启动流程,WiFi启动后给人最直观的感觉就是开始扫描出周围的AP了,那扫描流程是怎么样的呢? aosp : android O 1. WiFi扫描流程简介wifi的扫描流程和启动流程一样,也是设置将扫描命令下发到framework,再往下我就不大梳理地下去了,所以本篇梳理也是Settings+framework组合的模式开始梳理。...原创 2018-06-23 17:22:52 · 9281 阅读 · 3 评论 -
(四十四)Android O WiFi启动流程梳理
最近又重新拿起来WiFi模块,从WiFi 各个流程梳理开始复习一下。原创 2018-06-17 16:34:59 · 7379 阅读 · 2 评论 -
(五十三) Android O wifi 状态机消息处理及状态切换流程分析-以WifiController为例
前言:最近写了几篇wifi状态机相关的博客,但是状态转换方面一直是囫囵吞枣,感觉代码对的上流程就开始梳理了,没有真正关注过状态切换和消息处理流程,现在梳理一下。原创 2018-06-29 21:20:33 · 4175 阅读 · 0 评论 -
(五十四)Android O WiFi 获取扫描结果流程梳理
前言:之前在(五十) Android O WiFi的扫描流程梳理已经梳理过扫描流程了,那扫描完的结果会呈现在设置的WiFi界面,那扫描结果是如何获取的呢?1. wifi扫描结果简介WiFi的扫描结果是WiFi扫描后呈现在设置WiFi界面上的,每个AP是以设置比较特色的组件Preference呈现的,点击即可触发连接操作。同样扫描结果的获取也是Settings+SettingsLib...原创 2018-06-30 13:53:43 · 7881 阅读 · 3 评论 -
(五十五)Android O 连接WiFi AP流程梳理
前言:之前已经梳理了WiFi的启动、扫描,扫描到了AP,是时候看下连接AP的流程了。 1. WIFI AP简介WiFi AP即WIFI Acess Point,它的安全性分无、WEP、WPA/WPA2 PSK和 802.1x EAP,我们日常生活中用的最多的应该是WPA/WPA2 PSK,连接该类型的热点的时候只需要输入对应的密码就好了。本文梳理也只梳理这种最常见类型的AP连接流程,当...原创 2018-07-01 10:35:23 · 8279 阅读 · 1 评论 -
(五十六)Android O WifiManager和WifiSerivceImpl间的AsyncChannel双向通道建立流程
前言:看了这篇https://blog.youkuaiyun.com/u010961631/article/details/48179305#t13写的AsyncChannel写的很好,就着这篇博客梳理下WifiManager和WifiSerivceImpl间的双向通道建立流程。1.WifiManagerWifiManager相当于客户端,主动建立单向通道 private sync...原创 2018-07-01 12:34:02 · 1251 阅读 · 1 评论 -
(五十九)Android O WiFi启动流程梳理续——enableSupplicant
前言:之前在 (四十四)Android O WiFi启动流程梳理 梳理到了WifiNative的enableSupplicant ,没有继续梳理下去,现在接着梳理。 1.wpa_supplicant的简单介绍wpa_supplicant是一个开源项目,它实现了station对无线网络的管理和控制功能,根据官方描述,它支持的功能很多,比如:1.支持WPA和IEEE802.11i所定义的大...原创 2018-07-08 09:52:20 · 2989 阅读 · 0 评论 -
(五十八)Android O WiFi启动流程梳理续——setupForClientMode
前言:之前在 (四十四)Android O WiFi启动流程梳理 梳理到了WifiNative的setupForClientMode ,没有继续梳理下去,现在接着梳理。 参考:Android wifi打开流程(Android O)hidl:1.https://source.android.com/devices/architecture/hidl/2.https://blo...原创 2018-07-08 09:52:05 · 7186 阅读 · 11 评论 -
(六十二)HIDL 相关知识转载
HIDLHAL 接口定义语言(简称 HIDL,发音为“hide-l”)是用于指定 HAL 和其用户之间的接口的一种接口描述语言 (IDL)。HIDL 允许指定类型和方法调用(会汇集到接口和软件包中)。从更广泛的意义上来说,HIDL 是用于在可以独立编译的代码库之间进行通信的系统。HIDL 旨在用于进程间通信 (IPC)。进程之间的通信经过 Binder 化。对于必须与进程相关联的代码库,还可以使用...转载 2018-07-09 20:16:15 · 969 阅读 · 0 评论 -
(六十三)HIDL C++ && HIDL Java
转载:1.https://source.android.com/devices/architecture/hidl-cpp/2.https://source.android.com/devices/architecture/hidl-java/#autogenHIDL C++Android O 对 Android 操作系统的架构重新进行了设计,以在独立于设备的 Android 平台与特定于设备和供...转载 2018-07-09 20:40:07 · 4623 阅读 · 0 评论 -
(六十六)HIDL 服务和数据传输
转载:https://source.android.com/devices/architecture/hidl/services服务和数据传输本部分介绍了如何注册和发现服务,以及如何通过调用 .hal 文件内的接口中定义的方法将数据发送到服务。注册服务HIDL 接口服务器(实现接口的对象)可注册为已命名的服务。注册的名称不需要与接口或软件包名称相关。如果没有指定名称,则使用名称“默认”;这应该用于...转载 2018-07-13 09:58:52 · 3132 阅读 · 0 评论 -
(六十七)HIDL 代码样式指南
转载:代码样式指南HIDL 代码样式类似于 Android 框架中的 C++ 代码,缩进 4 个空格,并且采用混用大小写的文件名。软件包声明、导入和文档字符串与 Java 中的类似,只有些微差别。下面针对 IFoo.hal 和 types.hal 的示例展示了 HIDL 代码样式,并提供了指向每种样式(IFooClientCallback.hal、IBar.hal 和 IBaz.hal 已省略)详...转载 2018-07-13 10:50:45 · 1156 阅读 · 0 评论 -
(六十八) HIDL C++ 软件包&&接口
转载:软件包注意:本部分使用 .hal 示例文件来说明 HIDL 语言结构如何映射到 C++。HIDL 接口软件包位于 hardware/interfaces 或 vendor/ 目录下(少数例外情况除外)。hardware/interfaces 顶层会直接映射到 android.hardware 软件包命名空间;版本是软件包(而不是接口)命名空间下的子目录。hidl-gen 编译器会将 .hal...转载 2018-07-13 11:28:57 · 2263 阅读 · 0 评论 -
(五十七)Android O WiFi的扫描流程梳理续——梳理java与c++之间的aidl-cpp通信
前言:之前在(五十) Android O WiFi的扫描流程梳理 中梳理到wificond,就是找不到wificond对应的具体实现类,本文在现有发现上继续梳理,服务端是有cpp实现的,这种aidl实现方式被Google成为aidl-cpp1.问题在梳理WiFi 扫描流程的时候遇到如下方法,然后找不到对应服务端的实现类,现在专门梳理下找到的线索。mWificond = mWifiInjector....原创 2018-07-06 20:10:08 · 7853 阅读 · 0 评论 -
(七十二)IEEE 802.11i2004——Four-way handshake
转载:1.https://en.wikipedia.org/wiki/IEEE_802.11i-20042.https://en.wikipedia.org/wiki/Cryptographic_nonce3.https://en.wikipedia.org/wiki/WLAN_Authentication_and_Privacy_Infrastructure IEEE 802...转载 2018-07-19 10:34:44 · 1220 阅读 · 0 评论 -
(七十一)Android O WiFi热点 开启流程梳理
前言:之前主要梳理了WiFi开启扫描连接的流程,现在梳理下WiFi 热点 的开启流程。时序图mdj样式:https://download.youkuaiyun.com/download/sinat_20059415/105421861. wifi热点简介wifi热点是将手机接收的GPRS、3G或4G信号转化为wifi信号发出去的技术,手机必须有无线AP功能,才能当做热点。有些系统自带建...原创 2018-07-15 10:56:00 · 7784 阅读 · 5 评论 -
(七十三)WifiP2pSettings学习
前言:最近在看WiFi相关的知识,发现WiFi direct是一种连接方式,WiFi直连(一种类似于蓝牙的传输应用)和WFD(Wifi Display)都会用到,先学习一下设置里比较熟悉的WifiP2pSettings。 1. WiFi p2pWiFi P2P是Wi-Fi联盟推出的一项重要技术规范。 该规范的商品名为Wi-Fi Direct, 它支持多个Wi-Fi设备在没有AP的情况下...原创 2018-07-20 20:28:59 · 2475 阅读 · 0 评论 -
(八十一)探索hidl-gen使用及IWifi.hal 实现
1.文件路径/hardware/interfaces/wifi/1.0/IWifi.hal/* * Copyright 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this fil...原创 2018-08-18 15:00:32 · 8552 阅读 · 0 评论 -
(八十二)学习wpa_supplicant-devel——chapter1
前言:对应wpa_supplicant-devel 中Developers’ documentation for wpa_supplicant and hostapd,主要内容就是wpa_supplicant和hostapd的简介 1.wpa_supplicant-devel简介The goal of this documentation and comments in the sou...原创 2018-08-19 10:20:03 · 1075 阅读 · 0 评论 -
(八十三)学习wpa_supplicant-devel——chapter2
前言:对应wpa_supplicant-devel 中Chapter2 Structure of the source code,主要内容就是源码结构。 1.源码结构整体介绍wpa_supplicant implementation is divided into number of independent modules. Core code includes func-tiona...原创 2018-08-19 10:54:20 · 663 阅读 · 0 评论 -
(八十六)探讨WiFi开关变化的原因
前言:之前只知道WiFi开关有所变化是由于接收到了WiFi state变化的广播,根据广播所携带的state信息更新开关,那变化的深层原因是什么呢?先期工作:1)先抓取了小米Mix2 8.0的WiFi开启log:09-01 00:07:19.994 1561 2456 D WifiStateMachine: setting operational mode to 109-0...原创 2018-09-01 00:21:56 · 2222 阅读 · 0 评论 -
(八十四)学习wpa_supplicant-devel——chapter3
前言:对应wpa_supplicant-devel 中Chapter3 wpa_supplicant control interface,主要内容是wpa_supplicant 控制接口的介绍。 1. 控制接口简介wpa_supplicant implements a control interface that can be used by external programs to ...原创 2018-08-25 14:48:04 · 2314 阅读 · 0 评论 -
(八十七) WiFi & DHCP
参考:1)DHCP的一些解释2)DHCP详细工作过程1.wifi的连接过程WiFi的连接过程直到现在还没完全梳理清楚,大致知道其中几块,app到framework的流程大致梳理过,后续是到wpa_supplicant的四次握手,这后面不知道了,接着会到DhcpClient的ip地址获取。本文主要学习下WiFi连接过程中的dhcp。(有时间好好梳理下)2.WiFi连接...原创 2018-09-01 13:02:24 · 7468 阅读 · 2 评论 -
(八十八)Android O WiFi启动流程梳理续——connectToSupplicant
前言:之前在如下几篇中梳理了Android wifi的启动流程,但是没有梳理完全,在(八十六)探讨WiFi开关变化的原因发现少了一步connectToSupplicant,在加载驱动和将supplicant启动起来后,上层还要连接上supplicant,这样才算WiFi启动流程梳理了差不多。(四十四)Android O WiFi启动流程梳理 (五十八)Android O WiFi启动流程梳...原创 2018-09-02 00:22:51 · 3451 阅读 · 2 评论 -
(八十九) Android O 探索WiFi直连默认名称由来
1.SettingsWifiP2pSettings布局文件为wifi_p2p_settings @Override protected int getPreferenceScreenResId() { return R.xml.wifi_p2p_settings; }<PreferenceScreen xmlns:android="h...原创 2018-09-07 22:30:19 · 1711 阅读 · 1 评论