自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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_gattc_main.cc文件的讲解

GATT是低功耗蓝牙属性应用规范,应用于主机和从设备之间的数据传输。

2024-09-10 14:54:03 431

原创 蓝牙--关于Bta_gattc_api.cc文件的讲解

GATT是低功耗蓝牙属性应用规范,应用于主机和从设备之间的数据传输。

2024-09-10 10:52:31 243

原创 蓝牙--关于Bta_gatts_api.cc文件的讲解

GATT是低功耗蓝牙属性应用规范,应用于主机和从设备之间的数据传输。

2024-09-10 10:37:57 348

原创 蓝牙--关于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

原创 【高通平台】如何升级蓝牙的firmware

1. 您可以使用以下命令升级固件。

2024-04-16 20:29:03 225 1

原创 【高通项目】-- 工厂耦合测试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

蓝牙协议核心规范文档-中文版本

蓝牙协议核心规范文档-中文版本

2023-12-19

定制蓝牙连接设备数定制蓝牙连接设备数定制蓝牙连接设备数

定制蓝牙连接设备数定制蓝牙连接设备数定制蓝牙连接设备数定制蓝牙连接设备数

2022-11-15

检查应用冻结状态检查应用冻结状态检查应用冻结状态

检查应用冻结状态检查应用冻结状态检查应用冻结状态检查应用冻结状态检查应用冻结状态

2022-11-07

主动切换网络主动切换网络主动切换网络

主动切换网络主动切换网络主动切换网络

2022-11-03

Android T Android T Android T Android T

Android T Android T Android T Android T

2022-10-10

Wi-Fi_Aware_Specification_v3.2

Wi-Fi_Aware_Specification_v3.2

2022-04-08

C++简单工厂模式教学的视频

简单工厂模式视频

2022-03-16

空空如也

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

TA关注的人

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