当前位置: 首页 > news >正文

【android bluetooth 协议分析 01】【HCI 层介绍 2】【Malformed Packet 介绍】

在实际工作中遇到了 malformed packet , 我这里来分析一下。 遇到这种问题的处理思路。

1. Malformed packet

在这里插入图片描述


36982	2025-04-29 14:15:34.899760	controller	host	HCI_EVT	4	Rcvd Role Change[Malformed Packet]Frame 36982: 4 bytes on wire (32 bits), 4 bytes captured (32 bits)
Bluetooth
Bluetooth HCI H4
Bluetooth HCI Event - Role Change
[Malformed Packet: HCI_EVT][Expert Info (Error/Malformed): Malformed Packet (Exception occurred)][Malformed Packet (Exception occurred)][Severity level: Error][Group: Malformed]

这个 HCI 事件包被 Wireshark 标记为 “Malformed Packet: HCI_EVT”(格式错误的 HCI 事件),并提示 “Exception occurred”


1. 报文信息解析

  • Frame 36982:此帧只有 4 个字节,显然是异常的。
  • 协议层级结构
    • Bluetooth
    • Bluetooth HCI H4
    • Bluetooth HCI Event - Role Change (HCI 事件:角色切换)
  • 错误提示
    • Malformed Packet: HCI_EVT:HCI_EVT(HCI Event)包格式不正确。
    • Exception occurred:Wireshark 在解析时抛出了异常,意味着它期望的数据格式不匹配或不完整。
    • 严重等级:Error
    • 错误分组:Malformed

2. 正常的 HCI Role Change 事件结构应如下:

字段长度(字节)说明
Event Code1固定为 0x0E(Command Complete)或 0x0F(Command Status)等
Parameter Total Length1剩余字段总长度
Status1执行结果状态
Connection Handle2连接标识符
Role1当前角色(0x00 主机,0x01 从机)

一般长度应在 6~8 字节 之间,而你当前抓到的只有 4 字节,说明数据严重缺失或格式不符


3. 常见原因分析

原因描述
数据捕获不完整HCI 设备或驱动只导出了部分数据
软件 Bug / 蓝牙栈异常控制器或 Host 端蓝牙栈生成了不完整的数据包
解析器误判Wireshark 插件或解析器未正确处理该事件
HCI H4 Header 错误开头的类型码(0x04)之后字段偏移错误,导致 Wireshark“错位解析”

4. 解决建议

  1. 确认 HCI 抓包来源

    • 是通过 USB 抓取的 HCI 日志?(如 btmon
    • 还是 UART HCI log?(需确认 HCI H4 协议头是否正确)
  2. 检查前后帧是否也异常

    • 是否只有这一帧出错?是否存在连续出错,可能是串口偏移了。
  3. 重启抓包工具并校准字节对齐

    • 使用 hcidumpbtmon 等确认源日志是否也显示异常。
    • 确认串口或日志设备没有丢包。
  4. 用十六进制查看原始数据

    • 右键该帧 -> Follow -> Raw DataHex Dump,看是否 HCI Header 部分损坏。
  5. 检查驱动日志

    • 查看内核中 Bluetooth HCI 驱动是否有异常日志。

相关文章:

  • IsaacLab最新2025教程(7)-创建Interactive Scene
  • jmeter读取CSV文件中文乱码的解决方案
  • JavaScript 中循环控制语句跳出与示例说明
  • 测试 用例篇
  • 一种基于光源评估并加权平均的自动白平衡方法(一)
  • 用Python构建自动驾驶传感器融合算法:从理论到实践
  • foxmail时不时发送不了邮件问题定位解决过程
  • EasyRTC嵌入式音视频实时通话SDK技术,打造低延迟、高安全的远程技术支持
  • Java使用xmind8提供plugin sdk导出图片
  • 零基础学指针2
  • 第三部分:特征提取与目标检测
  • 计算机视觉综合实训室解决方案
  • Java:List集合size>0但元素为:ALL elements are null
  • 前端开发 Markdown 编辑器与富文本编辑器详解
  • 湖北理元理律师事务所:从法律视角看债务优化的合规实践
  • 腾讯云web服务器配置步骤是什么?web服务器有什么用途?
  • OpenHarmony - 小型系统内核(LiteOS-A)(完),内核编码规范
  • 前端 - 冷加载和热加载有什么区别?
  • DB-GPT V0.7.1 版本更新:支持多模态模型、支持 Qwen3 系列,GLM4 系列模型 、支持Oracle数据库等
  • 2025年深圳杯-东三省联赛赛题浅析-助攻快速选题
  • 两部门预拨4000万元支持山西、广西、陕西做好抗旱救灾工作
  • 国家能源局通报上月投诉情况:赤峰有群众反映电费异常增高,已退费
  • 解放日报:这是一场需要定力和实力的“科技长征”
  • IMF前副总裁朱民捐赠1000万元,在复旦设立青云学子基金
  • 宋徽宗《芙蓉锦鸡图》亮相,故宫首展历代动物绘画
  • 工信部:加快自动驾驶系统安全要求强制性国家标准研制