![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
WIfi
文章平均质量分 61
二十岁了还没有去过星巴克
坚持博客更新,不断学习,不断进步。
展开
-
WiFi6 速率表
原创 2023-12-24 10:27:03 · 571 阅读 · 0 评论 -
频段 信道 频率
在一个频段内,可以有多个不同的信道,每个信道都有自己的中心频率。例如,在2.4GHz频段内,信道1的中心频率是2.412GHz,信道6的中心频率是2.437GHz。频段(band)是指一定范围内的频率集合,例如2.4GHz到2.5GHz的频段。在无线通信中,不同的频段可以用于不同的通信标准或应用,例如2.4GHz频段通常用于Wi-Fi和蓝牙通信,而5GHz频段则用于更高速的Wi-Fi通信。例如,在2.4GHz频段内,有多个不同的信道可供选择,每个信道都有自己的中心频率和带宽。原创 2023-12-24 10:25:08 · 598 阅读 · 0 评论 -
Wi-Fi物理层协议
Wi-Fi物理层协议包括以下内容:原创 2023-08-07 15:22:31 · 644 阅读 · 1 评论 -
Android11 Wifi连接流程之IP地址分配
在Android11 wifi连接流程中我们代码跟踪到了supplicant中开始associate,关联成功以后就是四次握手然后连接成功。连接成功以后还需要分配IP地址,才可以通信,这一节我们看一下IP地址的获取流程。一、在ClientModeImpl中有一个函数startIpClient。这个函数会在俩个地方被调用,一个是连接的时候ConnectModeState,一个是连接成功以后进入ObtainingIpState。这俩个地方的区别就是isFilsConnection的不同,连接过程中isFils原创 2021-09-10 17:29:43 · 3207 阅读 · 4 评论 -
Android11 WiFi连接流程梳理
梳理一下Android11的wifi连接流程。一、可以看到点击连接以后,如果config不为null,则先保存网络,再进行连接,所以即使连接失败,此网络依然在已保存网络列表里。packages/apps/Settings/src/com/android/settings/wifi/WifiSettings.javavoid submit(WifiConfigController configController) { final WifiConfiguration config = conf原创 2021-09-10 10:52:49 · 9746 阅读 · 2 评论 -
Android11 DHCP初识
先简单说一下DHCP过程,对于代码理解会有帮助。1、客户端发起Discover,来寻找DHCP服务器2、DHCPServer给Clinet发送offer3、DHCPClient接受Offer以后发送DHCPRequest4、DHCPServer发送packet ack表示可以用此IP,结束。客户端代码主要在DhcpClient.java中。里面有一个状态机。frameworks/base/packages/NetworkStack/src/android/net/dhcp/DhcpClient.原创 2021-09-07 14:01:00 · 3822 阅读 · 0 评论 -
Android11 WAPI证书安装流程
最近遇到几个WAPI证书安装的问题,看了几天WAPI的相关代码,这里总结一下。Android中WAPI证书管理虽然在设置中,但是他是一个单独的app,在packages/apps/WapiCertManage下面。一、点击WAPI证书管理,会进入这个activity。然后点击右上角加载证书。packages/apps/WapiCertManage/src/com/wapi/wapicertmanage/WapiCertManageActivity.javapublic boolean onOptio原创 2021-08-05 19:10:45 · 6010 阅读 · 0 评论 -
Android 11 WiFi扫描流程梳理
上一篇我们梳理了WiFi的开启流程,Android11 WiFi开启流程,在最后我们说到ActiveModeWarden中注册了ClientListener监听器。我们接着这个逻辑继续梳理一下打开WiFi以后的扫描流程。一、WiFi打开以后,ClientListener会监听到,这时候会更新扫描状态。frameworks/opt/net/wifi/service/java/com/android/server/wifi/ActiveModeWarden.javaprivate class Client原创 2021-07-19 11:16:35 · 4460 阅读 · 4 评论 -
Android 11 WiFi开启流程
从刚接触WiFi时跟过wifi的开启流程,当时还是android9。到了Android11代码架构有了不小的改动,在这里重新梳理一遍,便于在工作中更快速的跟踪代码。一、Settings里改动不大,还是从WifiEnabler开始,调用WiFiManager的setWifiEnabled。packages/apps/Settings/src/com/android/settings/wifi/WifiEnabler.javaif (!mWifiManager.setWifiEnabled(isCheck原创 2021-07-16 09:10:41 · 11223 阅读 · 18 评论 -
Wireshark, Sniffer and Omnipeek 三款网络分析工具的比较
一、 网络分析软件概述自从网络出现以来,网络故障就没有停止过。如何快速、准确地定位故障和保持网络的稳定运行一直是人们追求的目标。为了分析网络故障的原因,一类专业的网络分析软件便产生了。网络分析软件充当了网络程序错误的检修工具,开发人员使用它发现协议开发中的BUG,很多人使用它监听网络数据,同时也是检查安全类软件的辅助工具。网络分析软件从产生到现在已经经历了三个阶段:第一阶段是抓包和解码阶段。早期的网络规模比较小、结构比较简单,因此网络分析软件主要是把网络上的数据包抓下来,然后进行解码,以此原创 2021-03-31 09:32:25 · 2629 阅读 · 0 评论 -
wpa_supplicant状态机
wpa_supplicant状态机像WAPI、EAP之类在关联之前也会进行认证。DISCONNECTED 此状态表明客户端未关联,但是可能开始寻找接入点。 连接断开时进入此状态。INACTIVE 如果没有启用的网络,则进入此状态, wpa_supplicant没有尝试与新的网络和外部互动,wpa_supplicant是disabledINTERFACE_DISABLED 如果禁用网络接口,则进入此状态。 wpa_supplicant拒绝任何会使用无线电,直到启用接口为止。AUTH原创 2021-01-15 15:10:02 · 1794 阅读 · 0 评论 -
WiFi的2.4G、5G、6G频段
目前WiFi已经推出了6G频段,Android源码中也增加了相关的功能,这里总结一下。2.4G一共分为14个信道(1-14),从2412到2484,每个信道的有效宽度是 20MHz,另外还有2MHz的强制隔离频带(类似于公路上的隔离带)。即,对于中心频率为 2412 MHz 的1信道,其频率范围为2401~2423MHz。5G一共有60个信道(32-173),从5160到5865,在中国支持的5G信道为36 38 40 44 46 48 52 54 56 60 62 64,后六个是DFS。6G为1-2原创 2021-01-14 18:00:00 · 47360 阅读 · 4 评论 -
Android11 WiFi相关代码改动记录
Android11已经发布,WiFi相关代码改动不大,在这里记录一下,方便日后做开发。WifiConfiguration新增构造函数:WifiConfiguration(WifiConfiguration)新增方法:String getKey() 返回可用于唯一标识此WifiConfiguration的字符串,ssid+安全类型void setSecurityParams(int) 将各种安全性参数设置为与提供的安全性类型相对应。新增变量:int SECURITY_TYPE_EAPint原创 2021-01-14 11:23:31 · 3820 阅读 · 3 评论 -
wpa_supplicant详解
1.wpa_supplicant介绍WPA是WiFi Protected Access的缩写,中文含义为“WiFi网络安全存取”。WPA是一种基于标准的可互操作的WLAN安全性增强解决方案,可大大增强现有以及未来无线局域网络的数据保护和访问控制水平。wpa_supplicant是一个开源项目,已经被移植到Linux,Windows以及很多嵌入式系统上。它是WPA的应用层认证客户端,负责完成认证相关的登录、加密等工作。wpa_supplicant是一个 独立运行的 守护进程,其核心是一个消息循环,在消息原创 2021-01-06 17:56:47 · 6193 阅读 · 1 评论 -
WAPI-PSK环境搭建
设备:华为AP6010DN-AGN一台 console调试线一根 终端仿真软件一、通过Console口登录AR设备(1).使用终端仿真软件通过Console口登录设备。使用Console通信电缆(或自己购买的Console线缆)的DB9(孔)插头插入PC机的9芯(针)串口插座,再将RJ-45插头端插入设备的Console口中。(也有RJ45直接转USB的)(2).在PC上打开终端仿真软件IPOP。选择终端工具,点击开始,设置IPOP连接的接口以及通信参数。说明:a.除端口外,其他参数请与原创 2021-01-14 13:22:21 · 1280 阅读 · 0 评论 -
wlan macaddress加载
高通平台wlan macaddress加载有5种方式:WCN39x0 supports below 5 ways to configure MAC address:• wlan_mac.bin• NV#4678• bdwlan.bin (BDF)• WCNSS_qcom_cfg.ini• Random generate from S/NPriority: wlan_mac.bin > NV#4678 > bdwlan.bin > INI > random MAC/mo原创 2020-10-10 15:05:56 · 1259 阅读 · 1 评论 -
WifiDisplay(Miracast)技术原理及实现
WifiDisplay(Miracast)技术原理及实现文章目录WifiDisplay(Miracast)技术原理及实现1. WifiDisplay简介2. WifiDisplay协议流程3. WifiDisplay显示框架实现4. Android WifiDisplay实现4.1 Source端实现4.1.1 设备扫描及发现4.2 Sink端的实现4.2.1 设备如何被发现4.2.2 设备p2p连接后如何建立RTSP连接4.2.3 RTSP连接实现1. WifiDisplay简介Wi-Fi Disp转载 2020-08-11 16:13:55 · 8351 阅读 · 5 评论 -
wpa_supplicant 框架
1.系统架构Android WiFi系统引入了wpa_supplicant,它的整个WiFi系统以wpa_supplicant为核心来定义上层用户接口和下层驱动接口。整个WiFi系统架构如下图所示:1.1 WifiService由SystemServer启动的时候生成的ConnecttivityService创建,负责启动关闭wpa_supplicant,启动和关闭WifiMonitor线程,把命令下发给wpa_supplicant以及更新WIFI的状态。处理其它模块通过IWifiManager接原创 2020-07-24 15:49:19 · 1640 阅读 · 0 评论 -
高通 wlan 调试抓取日志大全
高通 wlan 调试总结随笔1. 进入ftm模式2. 抓取wifi log2.1 抓取 Android log2.1.1 How to enable wifi verbose log?2.1.2 How to collect adb log and kernel log in one file?2.1.3 How to open wpa_supplicant debug log?2.2 抓取 Tcpdump2.3 抓取 wifi driver log & FW log - for WCN36xx转载 2020-07-16 16:57:46 · 4448 阅读 · 0 评论 -
从wlan_mac.bin文件中读取MAC地址
/vendor/qcom/opensource/wlan/qcacld-3.0/Android.mkifeq ($(PRODUCT_VENDOR_MOVE_ENABLED),true)$(shell ln -sf /mnt/vendor/persist/wlan_mac.bin $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld/wlan_mac.bin)else$(shell ln -sf /mnt/vendor/persist/wlan_mac.bin $(TAR原创 2020-07-16 16:38:06 · 2081 阅读 · 0 评论 -
CE 认证 5G 干扰信号强度threshold修改
5G Adaptivity测试fail,添加干扰以后设备未立即响应,依旧有信号传输,干扰强度从-75加强到-67左右设备通过。解决方案:1> Change threshold/vendor/firmware_mnt/image/bdwlan.bin//2.4Gthr_cca_etsi_ovd_G_0_0 0x0thr_cca_pri20_G_0_0 0x0thr_cca_ext20_G_0_0 0x0thr_cca_ext40_G_0_0 0x0thr_cca_ext80_G_0_0原创 2020-07-07 10:30:55 · 1169 阅读 · 1 评论 -
通过wifi对手机进行adb连接debug调试 adb connect ip_address:5555
adb支持两种连接Android系统的方式,USB方式及网络方式。一般android手机及android平板默认会设置为USB方式(直接插数据线的方式)。USB方式很简单,这里介绍一下网络方式。1、首先保证测试机与PC端处于同一局域网2、执行 adb tcpip 5555 配置端口3、执行adb connect 192.168.103.14:5555 (192.168.103.14...原创 2020-04-12 09:51:12 · 4502 阅读 · 0 评论 -
Android中Wifi里Frameworks和Wpa_Supplicant交互的方式
Wifi中主要通过WifiNative与WPAS通信。如果想从framework层控制WPAS层的OKC,步骤如下:WifiNative–>com_android_server_wifi_WifiNative.cpp–>wifi.c–>wpa_supplicant.ccom_android_server_wifi_WifiNative.cpp是WifiNative的JNI,...原创 2019-07-06 19:09:35 · 1658 阅读 · 0 评论 -
Android9.0Wifi热点开启流程梳理
Android9.0中对热点做了较大改动,将热点很大程度从Wifi中剥离出来了。下面我们看一下热点是怎么开启的。首先是在WifiTetherSettings中,调用startTether()函数,可以看到startTether函数中主要是调用了WifiTetherSwitchBarController.java中的startTether()函数。源码路径:http://androidxre...原创 2019-06-29 12:25:25 · 10840 阅读 · 1 评论 -
Android P中Wifi相关的状态机关联图
1、WifiStateMachine源码路径:http://androidxref.com/9.0.0_r3/xref/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiStateMachine.java2、WifiController源码路径:http://androidxref.com/9.0.0_r3/x...原创 2019-06-29 10:46:47 · 1060 阅读 · 0 评论 -
WiFi Direct详解(p2p使能,扫描,连接流程)基于Android8.1.0
简介:Wi-Fi Direct技术的目的是在没有Wi-Fi AP的情况下由两个或者多个Wi-Fi设备互相之间进行高速的数据通信。通信完全基于TCP/IP 协议,因此对于开发基于Wi-Fi Direct的应用来说非常友好。Wi-Fi Direct在刚提出时叫Wi-Fi Peer-to-Peer,所以也可以称作Wi-Fi P2P。它的主要竞争对手是Blue Tooth,在目前看来Wi-Fi Dire...原创 2019-06-17 14:19:47 · 20909 阅读 · 0 评论 -
WiFI Display 无线投屏花屏问题分析
最近遇到一个无线投屏的问题,就是手机端播放视频横竖屏切换时,TV侧就会短暂花屏,几秒后恢复正常。在这里总结一下WiFi Display花屏问题的分析步骤。首先需要看是偶尔花屏还是每次都会花屏。偶尔的花屏、卡顿是正常现象;连续的花屏、卡顿主要是由于无线干扰导致。这时候可以到屏蔽房进行测试,排除信号干扰的因素。如果在屏蔽房不会出现花屏,那就是信号干扰导致,这种情况下一般不做处理。如果在屏蔽房也会花屏,则排除信号干扰的原因。下一步要判断是WLAN的问题还是视频的问题。检查dump.ts的wifi显示,如原创 2020-06-22 11:06:56 · 6268 阅读 · 1 评论 -
Android wifi信号强度与图标对应关系
android中wifi分为5个等级,对应的图标是0格,1格,2格,3格,4格.那么对应的信号强度是多少呢?根据wifimanager中的算法calculateSignalLevel可以算得:0 rssi<=-1001 (-100, -88]2 (-88, -77]3 (-66, -55]4 rssi>=-55下面看谷歌代码实现:/frameworks/base/packages/SystemUI/src/com/android/systemui/原创 2020-06-18 15:44:16 · 2047 阅读 · 0 评论 -
随机macaddress未完全禁用导致已保存网络无法连接的问题解决
设备是已经禁用掉随机macaddress功能的,也不支持WiFi和热点同时打开。问题发生的条件是:1、打开WiFi,连接AP2、打开热点,此时WiFi会自动关闭3、手动打开WiFi,这时热点会自动关闭4、观察WiFi,发现刚刚连接过的AP没有自动重连抓取log发现第二次打开WiFi时连接AP过程失败,macaddress竟然和之前不一样。但是随机macaddress功能确实已经取消了,如何就继续在代码中搜索随机mac相关的设置,找到了下面这个。定义一个WIFI_HIDL_FEATURE_DIS原创 2020-06-02 15:57:56 · 2396 阅读 · 0 评论 -
Android 代码中对不同国家支持的信道的设置
配置文件在: kernel/msm-4.4/net/wireless/db.txt以中国为例:country CN: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (23), AUTO-BW (5250 - 5330 @ 80), (23), DFS, AUTO-BW (5735 - 5835 @ 80), (33) # 60 gHz band channels 2,3: 44dBm (59400 - 63720 @ 2160),原创 2020-05-28 17:29:38 · 1438 阅读 · 0 评论 -
RTS与CTS协议学习
一、RS232标准中的RTS与CTSRTS,CTS------请求发送/清除发送,用于半双工时的收发切换,属于辅助流控信号。半双工的意思是说,发的时候不收,收的时候不发。那么怎么区分收发呢?缺省时是DCE向DTE发送数据,当DTE决定向DCE发数据时,先有效RTS,表示DTE希望向DCE发送。一般DCE不能马上转换收发状态,DTE就通过监测CTS是否有效来判断可否发送,这样避免了DTE在DCE未...原创 2020-03-28 09:57:05 · 1431 阅读 · 0 评论 -
WLAN 感知概览(Wi-Fi Aware)
原文:https://developer.android.google.cn/guide/topics/connectivity/wifi-awarehttp://androidxref.com/9.0.0_r3/xref/frameworks/base/wifi/java/android/net/wifi/aware/Wi-Fi感知功能使运行Android 8.0(API级别26)及更高版本...翻译 2019-11-06 21:37:46 · 7194 阅读 · 1 评论 -
IP地址的分配过程
IP地址的分配一般分为俩种,手动配置和动态获取。服务器主机一般采用手动配置,而客户端主机(比如我们的手机)采用动态获取。原因有以下几个:1、 客户主机比服务主机移动更加频繁。2、服务器主机需要提供更可靠的服务,其配置信息应该减少对其他系统/主机的依赖。3、客户主机比服务主机的数量要多很多。4、客户主机使用者的网络配置只是比服务主机的使用者低。DHCP协议主要分为俩部分,一个是地址管理:处理IP...原创 2019-08-27 09:36:52 · 4694 阅读 · 0 评论 -
Wifi自动连接评分机制
今天了解了一下Wifi自动连接时的评分机制,总结如下:WifiConnectivityManager的初始化:/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiStateMachine.java class SupplicantStartedState extends State { ...原创 2019-08-26 14:48:45 · 2593 阅读 · 0 评论 -
不打开Wifi获取Mac地址
今天遇到一个问题,要求不打开Wifi的前提下获取Mac地址,所以针对Android上Mac地址的获取做了总结。MAC地址:每个接入网络的设备都有一个专门的序号,这个序号就是MAC。手机里的MAC特指WIFi无线网卡的MAC地址。手机获取MAC地址的方法有以下几种:1.通过WifiManager获取,代码如下:String macAddress = null, ip = null; Wi...原创 2019-08-22 10:16:43 · 3622 阅读 · 0 评论 -
WPA-PSK四次握手
WPA2-PSK,AP/STA在4-wayshake前各自都知道密码(也就是用户连接某SSID输入的密码)AP(Authenticator)在1/4的时候把自己的随机数(ANonce)传给STA,STA在收到ANonce后,已经可以生成PTK2/4的时候把自己的随机数(SNonce)传给AP,同时加了MIC(对应于PTK中的KCK,也就是秘钥确认秘钥)。AP收到SNonce以后,就可以...原创 2019-08-21 16:17:47 · 2596 阅读 · 0 评论 -
WiFI 扫描时选择固定频率(只扫2.4G或者5G的AP)
最近遇到一个新需求,成品如下,就是WiFi扫描界面增加一个选项,可以只扫描2.4G或者5G的AP。方案一/frameworks/opt/net/wifi/service/java/com/android/server/wifi/ScanRequestProxy.java从代码里可以看到WiFi扫描默认是全扫描的,不会对 2.4G 和 5G 做筛选。public boolean startScan(int callingUid, String packageName) { .........原创 2020-05-14 17:26:44 · 2871 阅读 · 2 评论 -
android 系统数据库Settings属性
frameworks/base/packages/SettingsProvider/res/values/defaults.xmldefaults.xml 中是一些系统默认属性,用于在系统第一次开启时加载。例如第一次开机 WiFi 就是默认关闭的。<bool name="def_wifi_on">false</bool>/frameworks/base/core/...原创 2020-04-29 11:33:50 · 1169 阅读 · 0 评论 -
WiFi PowerSave模式以及通过抓包判断是否生效
1、功能实现disable powersave需要修改WCNSS_qcom_cfg.ini中的以下参数:gEnableImps=0gEnableBmps=0如果不行,再增加下面俩个参数:gEnablePowerSaveOffload=0gAutoBmpsTimerValue =0步骤:#1、adb root;adb remount#2、adb pull /vendor/etc...原创 2020-04-28 17:01:12 · 2688 阅读 · 0 评论 -
Android 9.0 飞行模式下WiFi状态变化
在Android 9.0 中,AirPlaneMode与WiFi的原生设定是这样的:1、开启飞行模式时,如果wifi打开,则关闭,如果是关闭状态则不处理。2、开启飞行模式只会关闭WiFi,不会禁用,用户还可在飞行模式下再次手动打开WiFi.3、关闭飞行模式时,WiFi会恢复成开启飞行模式之前的状态,即开启飞行模式时WiFi是开的,则关闭飞行模式后会再次打开WiFi。代码实现:WiFi与飞...原创 2020-04-28 15:05:30 · 1045 阅读 · 0 评论