- 博客(301)
- 资源 (2)
- 收藏
- 关注
原创 MTK项目蓝牙电流数据
max interval: 0x0130) 给到 BT, 同时 BT 有回 MSG_ID_BT_GATTC_CONN_PARAM_UPDATE_CNF(result 为 0), 但是 conn interval 还是 20mS.(2), 直接将 mmi_pxpapp_set_adv_pattern() 以及 mmi_pxpapp_set_adv_param_req() 两个 API, 搬到 gattcsrv, 修改一下函数名, 及变量名即可.该问题是 Smart Phone huawei P7 端问题.
2024-11-01 15:27:59 25
原创 wpa_supplicant与nl80211接口
3)wpa_driver_nl80211_send_mlme调用nl80211_send_frame_cmd方法,最终通过send_and_recv_msgs方法发送netlink消息给到nl80211。2)wpa_driver_nl80211_send_action调用wpa_driver_nl80211_send_mlme方法将消息发出去。1)driver_nl80211_send_action调用wpa_driver_nl80211_send_action方法。如auth和assoc关联的事件。
2024-10-28 10:31:11 33
原创 无线网卡知识的学习--nl80211.h核心源码分析
1. 包含了与cfg80211子系统相关的函数声明,这些函数用于Linux内核中的网络配置和状态通知。2. 这些函数用于与用户空间应用程序(如iw、wpa_supplicant等)进行通信,以便它们可以配置和管理无线网络接口。
2024-10-24 11:33:50 76
原创 无线网卡知识的学习--cfg80211.h核心源码分析
用于描述接入点(AP)对于空间重用(spatial reuse)的设置,特别是用于解决非同组用户(OBSS,即Other BSS)之间的干扰。用于描述在 cfg80211(Linux内核中用于配置和管理IEEE 802.11无线网络的一个子系统)中使用的单个无线通道。用于描述AP对于BSS颜色(BSS coloring)的设置,这是一种用于减少干扰的技术。用于表示在IEEE 802.11无线网络中基础服务集(BSS)的类型。用于表示无线基本服务集(BSS)的隐私设置。用于表示无线网络中数据传输速率的标志。
2024-10-24 11:13:30 82
原创 cfg80211-- 修复添加EHT的capabilities能力供驱动使用
添加支持以检索信标模板中用户空间传递的EHT功能和EHT操作元素,并将指针存储在结构cfg80211_ap_settings中供驱动程序使用。在nl80211_calculate_ap_params方法种。
2024-10-23 17:03:07 44
原创 无线网卡知识的学习-- mac80211主要代码流程
mac80211驱动程序作为Linux内核中管理和控制无线网络接口的核心模块,其主要流程涵盖了从数据帧接收到发送的完整过程。主要覆盖了7个方面:1. 数据帧接收流程,2. 数据帧发送流程 3. 频道管理和切换 4. 接口管理 5. 安全和认证 6. 管理和调试 7. 注册和初始化接下来具体根据7个方面具体讲解下。
2024-10-22 10:41:12 203
原创 工厂生成中关于WiFi的一些问题
主要做高通和MTK,工厂生成中通过使用adb wifi,因为这样生产效率高并且避免了新机器有划痕,但是也经常碰到adb wifi无法连接的问题,那么是什么原因导致呢?
2024-10-19 14:15:37 125
原创 无线网卡知识的学习-- wireless基础知识(mac80211)
从某种意义上说,他是一个上层的MAC,负责和驱动、hardware的交互,他已经是wlan软件部分最底层的模块了,mac80211也是Linux内核中用于管理和实现无线局域网(WLAN)协议栈的一个子系统。它负责处理无线网卡的数据包传输、帧生成、管理、网络接口配置以及加解密处理等动作。无线协议栈管理:mac80211负责管理无线数据包的接收、发送和处理。它支持处理多种类型的数据包,如管理帧、控制帧和数据帧。
2024-10-18 16:46:22 172
原创 无线网卡知识的学习-- wireless基础知识(nl80211)
nl80211是Linux内核中用于与用户空间应用程序进行通信的接口。它通常通过Netlink协议与用户空间的网络管理工具和配置程序进行交互,例如iw命令行工具。nl80211提供了一种标准化的方式,使用户空间能够配置和管理无线设备、扫描网络、设置连接参数等。设备配置:允许用户空间配置无线设备的各种属性,如频率、功率、接口模式等。网络扫描:启动和管理对无线网络的扫描,并将结果传送到用户空间。连接管理:处理连接建立、断开和切换等操作。事件通知:向用户空间发送与无线设备状态变化相关的事件。
2024-10-18 16:12:21 136
原创 无线网卡知识的学习-- wireless基础知识(cfg80211)
cfg80211 是Linux 802.11配置API。cfg80211用于代码 wext (Wireless-Extensions),nl80211 用于配置一个cfg80211设备,且用于kernel与userspace间的通信。wext现处理维护状态,没有新的功能被增加,只是修改bug。如果需要通过wext操作,则需要定义CONFIG_CFG80211_WEXT。类似如下的代码需要做这个判断: 基于消息机制,使用netlink接口wext: 基于ioctl机制: 表示硬件信息和状态。
2024-10-18 15:36:05 177
原创 蓝牙HCI的log分析方法
Bluetooth HCI log 的最主要功能是用于分析蓝牙设备之间的交互行为是否符合预期,以及是否符合 蓝牙规范之规定。基本上,在手机应用平台上,除了蓝牙功能无法打开以及蓝牙引起的 system crash 问题之外,蓝牙相 关的问题,均可以通过分析 HCI log 来定位问题。具体主要围绕以下5个方面:1. 搜索不到周围的设备2. 无法和指定设备配对、连接3. 无法连接 profile4. Performance 比较差5. Profile 或者链路异常断开。
2024-10-15 15:46:31 164
原创 【高通平台】如何移除qcom wlan
文件通过符号链接由 system/etc/firmware/wlan/prima 文件夹复制到 /data/misc/wifi 文件夹。要进行 调试测试,用新设置替换 /data/misc/wifi/WCNSS_qcom_cfg.ini,并重启 WLAN。– 文件通过符号链接由 /system/etc/firmware/wlan/prima 文件夹复制到 /persist 文件夹。– 该文件位于 device /system/etc/firmware/wlan/prima 文件夹中。
2024-10-14 16:36:11 50
原创 [MTK平台] LowLatency模式下 Wifi scan会被拒绝
文件中把#define CFG_SUPPORT_LOWLATENCY_MODE 1。目前在MTK平台中,低延迟模式下 scan 会被 reject 了。抓取的dmesg的log就可以发现。
2024-09-26 11:39:11 82
原创 MTK平台--蓝牙驱动数据加载的过程
先看这张图可以知道架构LinuxKernel层:bluez协议栈、uart驱动, h4协议, hci,l2cap, sco, rfcommLibrary层:libbluedroid.so 等Framework层:实现了Headset /Handsfree 和 A2DP/AVRCP profile,但其实现方式不同Handset/Handfree是直接 在bluez的RFCOMM Socket上开发的,没有利用bluez的audio plugin,而A2DP/AVRCP是在bluez的audio plugin
2024-09-18 17:32:33 162
原创 蓝牙--关于bta_av_ssm.cc文件的讲解
上层在建立A2dp connect连接的时候,先调用到btif层的btif_av.cc中函数src_connect_sink,接着调用bta层bta_av_api.cc中函数BTA_AvOpen,经过内部state machine处理,最终调用Stack层l2c_api.c中的函数L2CA_ErtmConnectReq。这样就在bluedroid中的连接过程就完成了。这里我们重点讲解下bta_av_ssm.cc的代码(BTA AV流状态机的实现)逻辑。BTA:提供各种profile的实现。
2024-09-09 10:31:13 207
原创 蓝牙--关于bta_av_main.cc文件的讲解
上层在建立A2dp connect连接的时候,先调用到btif层的btif_av.cc中函数src_connect_sink,接着调用bta层bta_av_api.cc中函数BTA_AvOpen,经过内部state machine处理,最终调用Stack层l2c_api.c中的函数L2CA_ErtmConnectReq。这样就在bluedroid中的连接过程就完成了。这里我们重点讲解下bta_av_main.cc 的代码(BTA AV的主要实施文件)逻辑。BTA:提供各种profile的实现。
2024-09-09 10:24:53 667
原创 蓝牙--关于bta_av_api.cc 文件的讲解
上层在建立A2dp connect连接的时候,先调用到btif层的btif_av.cc中函数src_connect_sink,接着调用bta层bta_av_api.cc中函数BTA_AvOpen,经过内部state machine处理,最终调用Stack层l2c_api.c中的函数L2CA_ErtmConnectReq。这样就在bluedroid中的连接过程就完成了。这里我们重点讲解下bta_av_api.cc 的代码逻辑。BTIF:提供bluedroid对外的接口。BTA:提供各种profile的实现。
2024-09-06 10:13:01 188
原创 蓝牙--关于btif_av.cc文件的讲解
上层在建立A2dp connect连接的时候,先调用到btif层的btif_av.cc中函数src_connect_sink,接着调用bta层bta_av_api.cc中函数BTA_AvOpen,经过内部state machine处理,最终调用Stack层l2c_api.c中的函数L2CA_ErtmConnectReq。这样就在bluedroid中的连接过程就完成了。这里我们重点讲解下btif_av.cc的代码逻辑。BTIF:提供bluedroid对外的接口。BTA:提供各种profile的实现。
2024-09-06 10:09:51 525
原创 蓝牙--关于bta_ag_sco.cc文件的讲解
HF(Hands-Free unit)测:是指作为音频网关的远程音频输入和输出机制的设备。它还提供了一些远程控制手段。在蓝牙通信中,HF通常是支持HFP(Hands-Free Profile)协议的设备,例如蓝牙耳机、汽车蓝牙系统等。AG(Audio Gateway)测:是指作为音频的输入和输出网关的设备。典型的充当音频网关的设备包括手机。我们这边主要是围绕手机端代码讲解,所以讲的是AG端。这个文件主要是包含音频网关的操作函数。讲解代表之前先简单介绍下HF和AG。
2024-09-05 15:25:31 386
原创 蓝牙--关于bta_ag_sdp.cc文件的讲解
HF(Hands-Free unit)测:是指作为音频网关的远程音频输入和输出机制的设备。它还提供了一些远程控制手段。在蓝牙通信中,HF通常是支持HFP(Hands-Free Profile)协议的设备,例如蓝牙耳机、汽车蓝牙系统等。AG(Audio Gateway)测:是指作为音频的输入和输出网关的设备。典型的充当音频网关的设备包括手机。我们这边主要是围绕手机端代码讲解,所以讲的是AG端。这个文件主要是包含音频网关的操作函数。讲解代表之前先简单介绍下HF和AG。
2024-09-05 10:16:01 424
原创 蓝牙--关于bta_ag_rfc.cc文件的讲解
HF(Hands-Free unit)测:是指作为音频网关的远程音频输入和输出机制的设备。它还提供了一些远程控制手段。在蓝牙通信中,HF通常是支持HFP(Hands-Free Profile)协议的设备,例如蓝牙耳机、汽车蓝牙系统等。AG(Audio Gateway)测:是指作为音频的输入和输出网关的设备。典型的充当音频网关的设备包括手机。我们这边主要是围绕手机端代码讲解,所以讲的是AG端。这个文件主要是包含音频网关的操作函数。讲解代表之前先简单介绍下HF和AG。
2024-09-04 17:52:55 793
原创 蓝牙--关于bta_ag_act.cc文件的讲解
HF(Hands-Free unit)测:是指作为音频网关的远程音频输入和输出机制的设备。它还提供了一些远程控制手段。在蓝牙通信中,HF通常是支持HFP(Hands-Free Profile)协议的设备,例如蓝牙耳机、汽车蓝牙系统等。AG(Audio Gateway)测:是指作为音频的输入和输出网关的设备。典型的充当音频网关的设备包括手机。我们这边主要是围绕手机端代码讲解,所以讲的是AG端。这个文件主要是包含音频网关的操作函数。讲解代表之前先简单介绍下HF和AG。
2024-09-04 11:00:11 303
原创 蓝牙--关于bta_ag_main.cc文件的讲解
HF(Hands-Free unit)测:是指作为音频网关的远程音频输入和输出机制的设备。它还提供了一些远程控制手段。在蓝牙通信中,HF通常是支持HFP(Hands-Free Profile)协议的设备,例如蓝牙耳机、汽车蓝牙系统等。AG(Audio Gateway)测:是指作为音频的输入和输出网关的设备。典型的充当音频网关的设备包括手机。我们这边主要是围绕手机端代码讲解,所以讲的是AG端。讲解代表之前先简单介绍下HF和AG。代码中主要有以下几个核心的方法。
2024-09-03 17:20:46 506
原创 高通平台【WFA认证】 -- 测试voice时在DUT配置过程中fail
发现status,ERROR,errorCode,Unsupported command错误。一般这类错误需要看sigma工具兼容性问题。以下是根据最新工具代码修改的patch。可以知道这类返回错误,是执行命令错误。
2024-08-20 11:29:16 109
原创 关于蓝牙耳机和有线耳机切换过程中常见的一些问题
3. 所以如果想再把BT A2DP设为active device,需要手动在setting中点击已配对的蓝牙耳机,当显示为active时,表示切换成功。1. 当有线耳机插入后,会把setA2dpActiveDevice(null);2. 当有线耳机拔出后,由于active device为nu了,所以无法自动切换到蓝牙A2DP,而是直接通过平台的speaker出声。问题1 :Android 14 平台,连接蓝牙耳机,在微信语音通话过程中插入耳机,此时蓝牙设备会断开,需要手动恢复.主要干了以下几个事情。
2024-07-24 15:27:14 160
原创 【高通平台】关于蓝牙通话过程中常见的一些问题
mAudioManager.setSpeakerphoneOn(false)外放话筒关闭。mAudioManager.setBluetoothScoOn(false)蓝牙关闭。查看log这个时间点,instagram下发setSpeakerphoneOn 最后设置成true了,使用声音外放模式。辅助机给测试机Instagram来视频通话并接通,大概率接通视频通话后声音外放,蓝牙耳机无声音。4、蓝牙芯片把编码后的数据通过SCO(eSCO)物理链路发送给蓝牙耳机。耳机,蓝牙,全都关闭。
2024-07-23 10:49:02 147
原创 【MTK平台】如何学习Bluedroid A2DP Code
目录下编译生成audio.a2dp.default.so,主要实现a2dp做为设备的功能。
2024-06-28 14:06:40 375 1
原创 【MTK平台】连接蓝牙耳机播放音乐>插入有线耳机>再拔掉有线耳机,声音会从设备中播放一秒,再切到蓝牙耳机
把BTA2DP_MUTE_CHECK_DELAY_MS * 4改成 BTA2DP_MUTE_CHECK_DELAY_MS *8。修改如下这个BTA2DP_MUTE_CHECK_DELAY_MS 参数值既可,比如增加delay。一般这类情况优先考虑Audio的问题。
2024-06-28 11:16:11 171
原创 Android 蓝牙profile的配置
Android 13以后版本后config.xml 有部分功能依然生效,但是有些profile的配置已经无效了,新的配置方法 在system/libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop。在做BQB认证之前,我们需要确认那些profile之前,我们需要查看profile的配置情况。Android13版本前蓝牙profile的配置。MTK的项目代码如下。MTK的项目代码如下。
2024-06-06 10:49:42 598 1
原创 [高通平台] NVM configuration手册
75 {83 },作用 Tag 2 用于指定BT设备地址。使用Tag 2更改BT设备地址,以将其与高通公司提供的NVM附带的默认地址区分开来。Length6 bytes91 },Tag 95用于BT Local Features ControlLength0x020x00, 0x0B99 },Tag 83 控制 BTS local featuresLength0x030x07 07 07。
2024-06-05 10:56:13 161
原创 高通WLAN框架学习(3)- -WLAN FTM 模式(补充)
前提概要:看过之前那篇文章的都知道FTM的启动模式但是目前现在高通主要是通过ptt_socket_app模式启动FTM的。
2024-05-21 11:11:44 416
原创 【高通平台】蓝牙profile 属性配置介绍
pbap_use_profile_for_owner_vcard: 使用PBAP配置文件为所有者vCard。profile_supported_hfp_incallservice: 支持HFP的通话服务。profile_supported_hid_device: 支持作为HID的设备。profile_supported_hid_host: 支持作为HID的主机。profile_supported_hs_hfp: 支持HFP作为免提设备。profile_supported_pbap: 支持PBAP配置文件。
2024-05-14 14:34:56 237
原创 【高通项目】-- 工厂耦合测试FFBM情况下如何添加WiFi diag
中新加load_wifi_driver方法,这样就可以通过接收到指令后,通过命令启动了。通过75 11 52 0 14 0 0发指令在ffbm模式下调用wlan。
2024-04-10 17:32:38 136
原创 高通项目-TCP/UDP 心跳 Offload 如何实现省电
本文档介绍了 Android 平台上 WCN3660/WCN3680 的“TCP/UDP 心跳 Offload 以实现省电”功 能的要求、软件架构和底层设计。本文档适用于在 Linux (Android) 平台上开发 WLAN 驱动程序的软件开发人员。超低功耗模式使 QCA Wi-Fi 解决方案能够自主向 AP 发送 TCP/UDP 数据包,无需任何主 机干预。主机长时间保持睡眠状态,而 Wi-Fi 始终连接到 AP,从而最大限度地降低系统功耗。
2024-04-07 10:42:11 315
原创 【高通平台】如何配置高通工具写号后,设置界面可以正确读取到
1. 连接写号工具Tinno Qualcomm Write Tool V2.1.0.32. 写入bt地址3.查看手机里显示的BT值与实际写入的一样。
2024-03-29 10:13:01 313
原创 Bluetooth Smart HTTP 代理服务(HTTP Proxy Service,HPS)的实现过程
在 Android 开发中,Bluetooth Smart HTTP 代理服务(HTTP Proxy Service,HPS)的实现通常涉及使用 Bluetooth GATT(通用属性)协议来进行通信。这种代理服务的实现可以让 Bluetooth Smart(低功耗蓝牙)设备通过 HTTP 代理与互联网进行通信。在相应的回调方法中处理 HTTP 请求和响应的读取和写入。根据应用的需要,启动和停止 GATT 服务器。
2024-02-20 10:33:49 298
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人