- 博客(310)
- 资源 (2)
- 收藏
- 关注
原创 MTK平台修改WIFI默认配置参数和如何检查是否生效
最近一直在做MTK平台,经常也会碰到需要修改一些MTK默认配置参数,那么如何修改呢,以及检查是否修改生效的方法。
2025-03-13 17:24:36
81
原创 MTK 平台关于64位和32地址错误导致工具Ap meta无法使用问题
MTK META工具是 MediaTek 公司开发的一款功能强大的工具,涵盖了几乎所有的功能,包括NVRAM Editor、Attestation key Install Tool、BT Tool、DRM Key Install Tool、FM Radio Tool、GPS Tool、Sensor Tool、Special Test Tool、Get Version、WIFI Tool 等多种功能如测试WIfi相关的时候,我们需要选择WIFI Tool测试WiFi 相关数据。
2025-03-06 09:46:15
51
原创 MTK平台 -- 关于HID协议的讲解
The Human Interface Device (HID) ,即人机交互设备。定义了蓝牙在人机接口设备中的协议、特征和使用规程。典型的应用包括蓝牙鼠标、蓝牙键盘、蓝牙游戏手柄等。该协议改编自US HIDProtocolH OST相当于PC主机,device相当于鼠标、键盘这些USB外设ble hid中,可以看做蓝牙设备就是device,手机就是host。
2025-02-19 11:16:31
58
原创 802.1X认证介绍+EAP(PEAP)认证架构和MTK Android手机平台如何客制化EAP模式
IEEE802 LAN/WAN委员会为解决无线局域网网络安全问题,提出了8。后来,802.1X协议作为局域网端口的一个普通接入控制机制在以太网中被广泛应用,主要解决以太网内认证和安全方面的问题。802.1X协议是一种基于端口的网络接入控制协议。“基于端口的网络接入控制”是指,在局域网接入设备的端口这一级,对所接入的用户设备通过认证来控制对网络资源的访问。目前身份验证方面最基础的安全协议就是EAP(Extensible Authentication Protocol),协议文档定义在RFC3748中。
2025-02-15 17:02:20
103
原创 通过HCI log查看配对连接过程
Authentication_Requirements:是否需要 auth(log中为MITM Protection Not Required, No Bonding)这里可以看到slave的Bluetooth Device Address: 0x14-99-3e-5e-19-3b。OOB_Data_Present:是否需要 OOB data(log中为None)IO_Capability:IO能力(log中为DisplayYesNo)手机和手机蓝牙配对连接或者手机与耳机配对连接目前均走以下几个部分。
2025-02-13 11:37:25
95
原创 MTK平台-- 无线AP隔离功能
经对mac80211相关源码进行分析,ap_isolate的真实作用是控制无线AP收到包后,是通过调用dev_queue_xmit将包通过无线网卡直接发送出去(ap_isolate=0),或是通过调用netif_receive_skb交由本机上层网络栈处理(ap_isolate=1)无线AP上大都有一个选项:启用该功能后,连接到同一AP的无线终端之间不能互相通信,但该功能并不限制无线终端和有线终端之间的通信。默认情况下这块功能是不通的,需要找MTK申请这块业务的patch。
2025-01-07 11:06:57
283
原创 蓝牙平台--Framework层到协议之间如何添加参数
3. 上面的截图可以看到,我在 sBluetoothHidInterface->disconnect((RawAddress*)addr, reconnect_allowed);方法中新增了reconnect_allowed参数。这个目录下HidHostService.java方法中disconnectHidNative()方法中新增boolean reconnectAllowed的参数.那么对应的sBluetoothHidInterface对应的结构是bthh_interface_t,可以看如下的代码。
2025-01-03 16:17:38
99
原创 MTK 平台关于WIFI 6E P2P的解说
官方 P2P 6E 设计原理,请查看这个网站配置:p2p_6ghz_disable允许上层指定是否允许6G连接仅允许6G用于WFD–不允许6G用于纯P2P缺点:存在很多 IOT issues如:一些物联网设备无法识别6G类/信道,可能存在物联网问题。
2024-12-31 17:32:46
282
原创 MTK平台--关于CFG_BT_Default.h 文件介绍
1. 存储在NVRAM中。这些设置将通过供应商特定的HCI命令设置。这些设置存储在AP_CFG_RDEB_FILE_BT_ADDR_LID中。▪ TX功率信道偏移补偿。▪ 蓝牙睡眠模式配置。
2024-12-23 13:41:24
141
原创 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
121
原创 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
309
原创 无线网卡知识的学习--nl80211.h核心源码分析
1. 包含了与cfg80211子系统相关的函数声明,这些函数用于Linux内核中的网络配置和状态通知。2. 这些函数用于与用户空间应用程序(如iw、wpa_supplicant等)进行通信,以便它们可以配置和管理无线网络接口。
2024-10-24 11:33:50
201
原创 无线网卡知识的学习--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
255
原创 cfg80211-- 修复添加EHT的capabilities能力供驱动使用
添加支持以检索信标模板中用户空间传递的EHT功能和EHT操作元素,并将指针存储在结构cfg80211_ap_settings中供驱动程序使用。在nl80211_calculate_ap_params方法种。
2024-10-23 17:03:07
116
原创 无线网卡知识的学习-- mac80211主要代码流程
mac80211驱动程序作为Linux内核中管理和控制无线网络接口的核心模块,其主要流程涵盖了从数据帧接收到发送的完整过程。主要覆盖了7个方面:1. 数据帧接收流程,2. 数据帧发送流程 3. 频道管理和切换 4. 接口管理 5. 安全和认证 6. 管理和调试 7. 注册和初始化接下来具体根据7个方面具体讲解下。
2024-10-22 10:41:12
358
原创 工厂生成中关于WiFi的一些问题
主要做高通和MTK,工厂生成中通过使用adb wifi,因为这样生产效率高并且避免了新机器有划痕,但是也经常碰到adb wifi无法连接的问题,那么是什么原因导致呢?
2024-10-19 14:15:37
229
原创 无线网卡知识的学习-- wireless基础知识(mac80211)
从某种意义上说,他是一个上层的MAC,负责和驱动、hardware的交互,他已经是wlan软件部分最底层的模块了,mac80211也是Linux内核中用于管理和实现无线局域网(WLAN)协议栈的一个子系统。它负责处理无线网卡的数据包传输、帧生成、管理、网络接口配置以及加解密处理等动作。无线协议栈管理:mac80211负责管理无线数据包的接收、发送和处理。它支持处理多种类型的数据包,如管理帧、控制帧和数据帧。
2024-10-18 16:46:22
331
原创 无线网卡知识的学习-- wireless基础知识(nl80211)
nl80211是Linux内核中用于与用户空间应用程序进行通信的接口。它通常通过Netlink协议与用户空间的网络管理工具和配置程序进行交互,例如iw命令行工具。nl80211提供了一种标准化的方式,使用户空间能够配置和管理无线设备、扫描网络、设置连接参数等。设备配置:允许用户空间配置无线设备的各种属性,如频率、功率、接口模式等。网络扫描:启动和管理对无线网络的扫描,并将结果传送到用户空间。连接管理:处理连接建立、断开和切换等操作。事件通知:向用户空间发送与无线设备状态变化相关的事件。
2024-10-18 16:12:21
330
原创 无线网卡知识的学习-- 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
450
原创 蓝牙HCI的log分析方法
Bluetooth HCI log 的最主要功能是用于分析蓝牙设备之间的交互行为是否符合预期,以及是否符合 蓝牙规范之规定。基本上,在手机应用平台上,除了蓝牙功能无法打开以及蓝牙引起的 system crash 问题之外,蓝牙相 关的问题,均可以通过分析 HCI log 来定位问题。具体主要围绕以下5个方面:1. 搜索不到周围的设备2. 无法和指定设备配对、连接3. 无法连接 profile4. Performance 比较差5. Profile 或者链路异常断开。
2024-10-15 15:46:31
830
原创 【高通平台】如何移除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
176
原创 [MTK平台] LowLatency模式下 Wifi scan会被拒绝
文件中把#define CFG_SUPPORT_LOWLATENCY_MODE 1。目前在MTK平台中,低延迟模式下 scan 会被 reject 了。抓取的dmesg的log就可以发现。
2024-09-26 11:39:11
176
原创 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
305
原创 蓝牙--关于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
249
原创 蓝牙--关于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
731
原创 蓝牙--关于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
232
原创 蓝牙--关于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
621
原创 蓝牙--关于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
463
原创 蓝牙--关于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
468
原创 蓝牙--关于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
841
原创 蓝牙--关于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
368
原创 蓝牙--关于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
539
原创 高通平台【WFA认证】 -- 测试voice时在DUT配置过程中fail
发现status,ERROR,errorCode,Unsupported command错误。一般这类错误需要看sigma工具兼容性问题。以下是根据最新工具代码修改的patch。可以知道这类返回错误,是执行命令错误。
2024-08-20 11:29:16
246
原创 关于蓝牙耳机和有线耳机切换过程中常见的一些问题
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
264
原创 【高通平台】关于蓝牙通话过程中常见的一些问题
mAudioManager.setSpeakerphoneOn(false)外放话筒关闭。mAudioManager.setBluetoothScoOn(false)蓝牙关闭。查看log这个时间点,instagram下发setSpeakerphoneOn 最后设置成true了,使用声音外放模式。辅助机给测试机Instagram来视频通话并接通,大概率接通视频通话后声音外放,蓝牙耳机无声音。4、蓝牙芯片把编码后的数据通过SCO(eSCO)物理链路发送给蓝牙耳机。耳机,蓝牙,全都关闭。
2024-07-23 10:49:02
290
2
原创 【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
266
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人