- 博客(159)
- 资源 (9)
- 问答 (1)
- 收藏
- 关注
原创 android蓝牙profile配置
功能: 支持通用属性配置文件 (Generic Attribute Profile, GATT),用于低功耗蓝牙 (Bluetooth Low Energy, BLE) 服务和特征的发现和操作。功能: 支持免提配置文件 (Hands-Free Profile, HFP) 和耳机配置文件 (Headset Profile, HS) ,用于与Bluetooth耳机和汽车免提设备的连接。功能: 支持 HID 设备模式 (HID Device Profile),使设备可以充当输入设备。
2024-12-10 16:07:52
541
原创 Android判断蓝牙设备类型
所以我们只需要判断CachedBluetoothDevice.getBtClass().getMajorDeviceClass() == BluetoothClass.Device.Major.AUDIO_VIDEO)就可以了。可以通过下面的方式获取类型,DeviceClass和MajorDeviceClass分别对应上面的Major和其他。最近有个需求是蓝牙界面只显示耳机,不显示其他设备,所以看了一下蓝牙相关代码。在BluetoothClass中定义了蓝牙设备的类型。
2024-10-17 15:18:58
581
原创 频段 信道 频率
在一个频段内,可以有多个不同的信道,每个信道都有自己的中心频率。例如,在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
904
原创 Windows C盘分区扩容
用DiskGenius软件进行无损扩容分区,操作起来更为方便,并且能够尽可能的做到无损扩容分区,将其他分区中的空闲空间转移到空间不足的分区上,不会影响现有数据。
2023-12-24 09:47:10
808
原创 Android11 Wifi连接流程之IP地址分配
在Android11 wifi连接流程中我们代码跟踪到了supplicant中开始associate,关联成功以后就是四次握手然后连接成功。连接成功以后还需要分配IP地址,才可以通信,这一节我们看一下IP地址的获取流程。一、在ClientModeImpl中有一个函数startIpClient。这个函数会在俩个地方被调用,一个是连接的时候ConnectModeState,一个是连接成功以后进入ObtainingIpState。这俩个地方的区别就是isFilsConnection的不同,连接过程中isFils
2021-09-10 17:29:43
3592
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
10511
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
4552
原创 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
6793
1
原创 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
4953
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
12078
18
原创 Android系统模块编译命令
9.0:编译 wpa_supplicant make wpa_supplicant /vendor/bin/hw/wpa_supplicant编译 /frameworks/opt/net/wifi/service/ make wifi-service /system/framework/wifi-service.jar编译/framrwork/ make framework11.0编译 wpa_supplicant make wpa_supplicant
2021-05-27 15:59:50
1316
1
原创 Wireshark, Sniffer and Omnipeek 三款网络分析工具的比较
一、 网络分析软件概述自从网络出现以来,网络故障就没有停止过。如何快速、准确地定位故障和保持网络的稳定运行一直是人们追求的目标。为了分析网络故障的原因,一类专业的网络分析软件便产生了。网络分析软件充当了网络程序错误的检修工具,开发人员使用它发现协议开发中的BUG,很多人使用它监听网络数据,同时也是检查安全类软件的辅助工具。网络分析软件从产生到现在已经经历了三个阶段:第一阶段是抓包和解码阶段。早期的网络规模比较小、结构比较简单,因此网络分析软件主要是把网络上的数据包抓下来,然后进行解码,以此
2021-03-31 09:32:25
2936
原创 error: Missing nullability on parameter `cfg_cmd` in method 报错解决
最近做从android9.0到11.0的代码移植工作,需要在WifiManager.java中添加接口,添加以后编译报错:frameworks/base/wifi/java/android/net/wifi/WifiManager.java:5703: error: Missing nullability on parameter `cmd` in method `****` [MissingNullability]frameworks/base/wifi/java/android/net/wifi/W
2021-02-26 15:06:27
4806
1
原创 adb命令判断手机是user版本还是debug版本
手机研发中看手机是user版本还是userdebug或是eng版本有时候版本号里面没有显示是user还是debug,可以通过命令看:adb shell getprop ro.build.type就可以看到对应的值了,就是当前的版本
2021-01-29 16:48:39
6773
转载 深度:一文看懂Linux内核!Linux内核架构和工作原理详解
简介作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。目前支持模块的动态装卸(裁剪)。Linux内核就是基于这个策略实现的。Linux进程1.采用层次结构,每个进程都依赖于一个父进程。内核启动init程序作为第一个进程。该进程负责进一步的系统初始化操作。init进程是进程树的根,所有的进程都直接或者间接起源于该进程。virt/ ---- 提供虚拟机技术的支持。Linux内核预备工作理解Linux内核最好预备的知识点:懂C语言懂一点操作系统的知识熟悉少量相关算
2021-01-25 11:31:43
1010
原创 wpa_supplicant状态机
wpa_supplicant状态机像WAPI、EAP之类在关联之前也会进行认证。DISCONNECTED 此状态表明客户端未关联,但是可能开始寻找接入点。 连接断开时进入此状态。INACTIVE 如果没有启用的网络,则进入此状态, wpa_supplicant没有尝试与新的网络和外部互动,wpa_supplicant是disabledINTERFACE_DISABLED 如果禁用网络接口,则进入此状态。 wpa_supplicant拒绝任何会使用无线电,直到启用接口为止。AUTH
2021-01-15 15:10:02
2105
原创 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
48723
4
原创 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
1523
原创 Android11 WiFi相关代码改动记录
Android11已经发布,WiFi相关代码改动不大,在这里记录一下,方便日后做开发。WifiConfiguration新增构造函数:WifiConfiguration(WifiConfiguration)新增方法:String getKey() 返回可用于唯一标识此WifiConfiguration的字符串,ssid+安全类型void setSecurityParams(int) 将各种安全性参数设置为与提供的安全性类型相对应。新增变量:int SECURITY_TYPE_EAPint
2021-01-14 11:23:31
4000
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
7552
1
原创 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
1390
1
原创 高通平台如何使用QPST抓DUMP
手动强制进入dump的脚本手机系统死机白屏后,使用USB线 连接手机和计算机。打开计算机设备管理器 ,当其中与手机相关的端口只有DIAG 口 项(9006端口)时,表明手机处于DUMP 模式,可以抓DUMP LOG.注意Diag口为死机端口Dol端口为下载端口二 : 抓取DUMP LOG打开 QPST Configuration 软件,该软件 会自动抓DUMP LOG. 其中 Ports 项显示手机状态是 Sahara Memory Dump 。DUMP LOG 抓完后手机会自动重启。三 提
2020-09-05 10:27:37
2770
原创 NFC配置文件保存路径
NFC配置文件在手机中的保存路径:/vendor/etc/libnfc-mtp-SN100.conf代码路径:/vendor/qcom/proprietary/nqnfc-firmware/libnfc-mtp-SN100.conf
2020-08-20 17:39:12
5807
转载 WFD_RTSP交互包分析
在WFD交互过程中,在Source端或者Sink端抓取tcpdump,通过数据包分析软件Wireshark或者Omnipeek即可以直观的分析RTSP协议交互的过程。目录0.准备1.抓包2.包过滤3.包分析3.1 RTSP M1 MessageM1 RequestM1 Response3.2 RTSP M2 MessageM2 RequestM2 Response3.3 RTSP M3 MessageM3 RequestM3 Response3.4 RTSP M4 MessageM4 RequestM4
2020-08-11 17:55:21
821
转载 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
9239
5
原创 直接通过手机抓取GPS的qxdm日志
不借助QXDM,直接通过手机抓取qxdm日志。主要用于测试GPS的时候使用,因为测试GPS大都需要在室外进行(室外卫星信号良好),并且GPS问题一般需要获取QXDM日志,在室外不能连接PC端使用QXDM客户端工具。adb shell mkdir /sdcard/diag_logsadb push gnss.cfg /sdcard/diag_logs/Diag.cfg_GNSS_Generic_2020.cfgadb shelldiag_mdlog -f /sdcard/diag_logs/Di
2020-08-04 10:07:29
1630
1
原创 连接部分蓝牙耳机播放音乐无声音(aptx)问题
1、问题描述问题原因:基线默认配置a2dp支持aptx、aptx-HD.hardware/qcom/audio/configs/msm8998/msm8998.mkPRODUCT_PROPERTY_OVERRIDES += persist.vendor.bt.a2dp_offload_cap=sbc-aptx-aptxhd-aac但是aptx、aptxhd编码格式的支持,需要Qcom license,也就是说,要使用该功能,需要付专利费。然而我们的产品没有买Qcom的license,相关功能也
2020-07-31 09:41:44
4935
2
原创 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
1794
原创 获取手机nfc的MW version 和 FW version 记录
/vendor/nxp/opensource/commonsys/packages/apps/Nfc/nci/jni/NativeNfcManager.cpp 中会打印NFC的版本信息。MW version static jboolean nfcManager_doInitialize(JNIEnv * e, jobject o) { initializeGlobalDebugEnabledFlag(); uint8_t switchToUiccSlot = 0;#if (NXP_E
2020-07-23 16:42:43
1841
1
原创 E: Sub-process /usr/bin/dpkg returned an error code (1) 解决方案
前言:apt-get install 安装软件时失败报错:E: Sub-process /usr/bin/dpkg returned an error code (1) 。从网上找到的解决办法,在这里记录一下。解决方法:现将info文件夹更名sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bk新建一个新的info文件夹sudo mkdir /var/lib/dpkg/info安装修复sudo apt-get update$sudoapt-g
2020-07-21 14:12:04
1759
1
原创 adb shell读取设置手机ocd值以及ocd介绍
每个ocd数据对应一个索引值。 您可以使用index获取ocd数据。 OCD指标值枚举如下所示。enum ocd_lockable_table{magic_number = 0, //ocd.index.0magic_number_factory = 1, //ocd.index.1revision = 2, //ocd.index.2 and so on...system_ocd = 3,modem = 4,gps = 5,module_sn = 6,board_sn = 8,pr
2020-07-17 16:13:17
386
转载 高通 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
5033
原创 从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
2279
原创 Linux文件权限修改
chmod 命令修改文件权限u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。+表示增加权限、- 表示取消权限、= 表示唯一设定权限。r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)将文件 file1.txt 设为所有人皆可读取 :chmod ugo+r file1.txt将文件
2020-07-16 16:17:13
536
原创 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
1357
1
原创 Android开发必须知道的adb命令大全
Android adb 命令大全描述命令1、查询已连接设备/模拟器adb devices2、指定设备获取屏幕分辨率adb -s 设备号 shell wm size3、给指定设备安装应用adb -s 设备号 install test.apk4、启动 adb server 命令adb start-server5、停止 adb server 命令adb kill-server6、查看adb版本adb version7、指定 adb se
2020-06-30 11:09:20
600
原创 在软件测试中UT,IT,ST,UAT分别是什么意思
UT(Unit Test)即软件测试分类中的单bai元测试,它是对程序du中的最小可测单元zhi进行测试,一般理解的单元测试就是针dao对代码的测试,通常采用一些白盒测试方法来覆盖相关源代码,比如针对一个C语言中的函数、Java中的一个类,此种测试要求测试人员具备很强的编码能力,目前大多数公司采用的是开发自测;IT (System Integration Test)即软件测试分类中的集成测试,它是在单元测试的基础上,将软件的各单元(功能模块)按照概要设计说明书针对模块、子系统、系统的组装测试,以此来检验系
2020-06-29 18:06:39
9252
voldn-ps-hold - 7150.bat
2020-09-05
Diag.cfg_GNSS_Generic_2020.cfg
2020-08-04
UltraGPSLogger_com.flashlight.lite.gps.logger.apk
2020-06-12
WiFi 802.11中STA端的Listen Interval的值怎么设置
2021-04-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人