Advertisement

HOGP_GATT btsnoop分析

  • 5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:PDF


简介:
本篇文档深入探讨了蓝牙协议栈中的HOGP(Human Interface Device HID over GATT Profile)与btsnoop日志的解析方法,旨在帮助开发者理解并优化蓝牙设备间的通信效率。 ### HOGP_GATT btsnoop 分析 #### 概述 本段落主要聚焦于HOGP(Human Interface Device over GATT Profile)上ATT(Attribute Protocol)层的btsnoop日志分析,具体涉及从GATT服务搜索到HOGP service的过程,以及详细解析characteristic的获取流程,并解释report、report map及report ID之间的相互关系。 #### HOGP_GATT btsnoop 分析要点 ##### 1. 配对与详细搜索阶段 在蓝牙设备通过bluedroid连接的过程中,GATT搜索被划分为两个阶段: 1. **初步搜索**:这一阶段主要目的是发现目标设备所支持的服务,通常被称为“配对”。 2. **详细搜索**:在确定了某个感兴趣的服务后,进一步获取该服务下的所有特征(characteristics)。 对于HOGP而言,成功配对的关键在于获取到HID (Human Interface Device) 的服务UUID(0x1812)。随后,GATT将依据特定的ATT命令来获取UUID等于0x1812的所有特征。 ##### 2. 搜索Device的所有服务 接下来,我们将详细探讨btsnoop_hci日志中的服务搜索过程,特别是如何搜索设备的所有服务。 - **读取所有主服务 (Read by Group Type Request)**:本地设备发送Read by Group Type Request命令以获取设备端所有主服务的列表。 - **读取包含的服务 (Read by Type Request)**:读取每个主服务内所包含的服务。 - **读取特征 (Read by Type Request)**:读取每个主服务的特性(characteristics)。 - **查找特征配置 (Find Information Request)**:请求每个主服务的特性的详细信息。 ##### 3. Discovery All Primary Services 在这一阶段,我们将通过具体的btsnoop日志帧来展示如何搜索所有主要的服务: - **Frame526**:本地发送Read by Group Type Request命令: - 操作码(Opcode): 0x10 - 起始处理号(Start Handle): 1 - 结束处理号(End Handle): 0xFFFF - 分组类型 (Group Type): 主服务 - **Frame533**:远程设备响应Read by Group Type Request命令,返回部分主服务的信息: - 操作码(Opcode): 0x11 - 长度(Length): 6 - 主服务列表: - 处理号范围 (Handle): 1-4 – GAP Profile - 处理号范围 (Handle): 5-13 – GAP Profile - 处理号范围 (Handle): 14-17 – Battery Service 由于初始请求的结束处理号(End Handle)为0xFFFF,因此需要继续发送Read by Group Type Request命令来获取剩余的服务。 - **Frame535**:再次发送Read by Group Type Request: - 操作码(Opcode): 0x10 - 起始处理号 (Start Handle): 18 (基于前一次请求的结果) - 结束处理号(End Handle): 0xFFFF - 分组类型 (Group Type): 主服务 - **Frame540**:远程设备再次响应,返回剩余的主服务信息: - 操作码(Opcode): 0x11 - 长度(Length): 6 - 主服务列表: - 处理号范围 (Handle): 18-26 – 设备信息 - 处理号范围 (Handle): 27-65535 – HID Service 至此,所有主服务已经被成功搜索完毕。具体包括以下: - Handle: 1-4 – GAP Profile - Handle: 5-13 – GAP Profile - Handle: 14-17 – Battery Service - Handle: 18-26 – 设备信息 - Handle: 27-65535 – HID Service ##### 4. Find Included Services 接下来,主机发送Read by Type Request命令以请求第一个主服务中包含的服务信息: - 操作码(Opcode): 0x08 - 起始处理号 (Start Handle): 1 (针对第一个服务) - 结束处理号(End Handle): 4 (针对第一个服务的结束) - ATT类型:0x2802 至此,我们完成了初步搜索过程,并成功发现所有相关的主服务。下一步将深入探索这些服务的具体特性及其相互作用。通过对btsnoop日志进行详细分析,可以更好地理解HOGP服务的工作原理及与设备交互的方式。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • HOGP_GATT btsnoop
    优质
    本篇文档深入探讨了蓝牙协议栈中的HOGP(Human Interface Device HID over GATT Profile)与btsnoop日志的解析方法,旨在帮助开发者理解并优化蓝牙设备间的通信效率。 ### HOGP_GATT btsnoop 分析 #### 概述 本段落主要聚焦于HOGP(Human Interface Device over GATT Profile)上ATT(Attribute Protocol)层的btsnoop日志分析,具体涉及从GATT服务搜索到HOGP service的过程,以及详细解析characteristic的获取流程,并解释report、report map及report ID之间的相互关系。 #### HOGP_GATT btsnoop 分析要点 ##### 1. 配对与详细搜索阶段 在蓝牙设备通过bluedroid连接的过程中,GATT搜索被划分为两个阶段: 1. **初步搜索**:这一阶段主要目的是发现目标设备所支持的服务,通常被称为“配对”。 2. **详细搜索**:在确定了某个感兴趣的服务后,进一步获取该服务下的所有特征(characteristics)。 对于HOGP而言,成功配对的关键在于获取到HID (Human Interface Device) 的服务UUID(0x1812)。随后,GATT将依据特定的ATT命令来获取UUID等于0x1812的所有特征。 ##### 2. 搜索Device的所有服务 接下来,我们将详细探讨btsnoop_hci日志中的服务搜索过程,特别是如何搜索设备的所有服务。 - **读取所有主服务 (Read by Group Type Request)**:本地设备发送Read by Group Type Request命令以获取设备端所有主服务的列表。 - **读取包含的服务 (Read by Type Request)**:读取每个主服务内所包含的服务。 - **读取特征 (Read by Type Request)**:读取每个主服务的特性(characteristics)。 - **查找特征配置 (Find Information Request)**:请求每个主服务的特性的详细信息。 ##### 3. Discovery All Primary Services 在这一阶段,我们将通过具体的btsnoop日志帧来展示如何搜索所有主要的服务: - **Frame526**:本地发送Read by Group Type Request命令: - 操作码(Opcode): 0x10 - 起始处理号(Start Handle): 1 - 结束处理号(End Handle): 0xFFFF - 分组类型 (Group Type): 主服务 - **Frame533**:远程设备响应Read by Group Type Request命令,返回部分主服务的信息: - 操作码(Opcode): 0x11 - 长度(Length): 6 - 主服务列表: - 处理号范围 (Handle): 1-4 – GAP Profile - 处理号范围 (Handle): 5-13 – GAP Profile - 处理号范围 (Handle): 14-17 – Battery Service 由于初始请求的结束处理号(End Handle)为0xFFFF,因此需要继续发送Read by Group Type Request命令来获取剩余的服务。 - **Frame535**:再次发送Read by Group Type Request: - 操作码(Opcode): 0x10 - 起始处理号 (Start Handle): 18 (基于前一次请求的结果) - 结束处理号(End Handle): 0xFFFF - 分组类型 (Group Type): 主服务 - **Frame540**:远程设备再次响应,返回剩余的主服务信息: - 操作码(Opcode): 0x11 - 长度(Length): 6 - 主服务列表: - 处理号范围 (Handle): 18-26 – 设备信息 - 处理号范围 (Handle): 27-65535 – HID Service 至此,所有主服务已经被成功搜索完毕。具体包括以下: - Handle: 1-4 – GAP Profile - Handle: 5-13 – GAP Profile - Handle: 14-17 – Battery Service - Handle: 18-26 – 设备信息 - Handle: 27-65535 – HID Service ##### 4. Find Included Services 接下来,主机发送Read by Type Request命令以请求第一个主服务中包含的服务信息: - 操作码(Opcode): 0x08 - 起始处理号 (Start Handle): 1 (针对第一个服务) - 结束处理号(End Handle): 4 (针对第一个服务的结束) - ATT类型:0x2802 至此,我们完成了初步搜索过程,并成功发现所有相关的主服务。下一步将深入探索这些服务的具体特性及其相互作用。通过对btsnoop日志进行详细分析,可以更好地理解HOGP服务的工作原理及与设备交互的方式。
  • 抓取Android BTSnoop蓝牙HCI协议工具
    优质
    本工具专为Android设备设计,能够高效抓取并解析BTSnoop日志,提供深入的蓝牙HCI层数据洞察,助力开发者进行详尽的性能优化与故障排查。 这里分享一些抓取Android HCI层btsnoop的分析工具以及蓝牙协议栈协议分析工具。这些工具功能强大且是最新版本。希望对大家有帮助。
  • 关于高通平台实时抓取蓝牙btsnoop的工具和方法说明
    优质
    本简介提供了一种针对高通平台的解决方案,用于实时捕获并分析蓝牙通信数据(btsnoop日志),适用于开发者进行深度调试与优化。 本段落介绍了在高通625平台开发板及小米手机上验证可用的工具和方法,用于实时抓取蓝牙btsnoop日志,并配合Frontline Test System使用。
  • 电路电路电路电路电路电路电路
    优质
    《电路分析》是一门研究电流、电压与电阻等元件相互作用及其规律的基础课程,广泛应用于电子工程和电气工程领域。 电路分析:电路分析是一门研究电流在各种电气元件中的流动规律及其相互作用的学科。它包括对直流电路、交流电路以及复杂网络的研究,涉及欧姆定律、基尔霍夫定律等基本原理的应用,是电子工程和技术领域的重要基础课程之一。
  • 主成_Python_主成
    优质
    本文章介绍如何使用Python进行主成分分析(PCA),涵盖原理、代码实现及应用场景,帮助读者掌握数据降维技巧。 Python中的经典主成分分析算法来源于sklearn包的函数,具有一定的学习价值。
  • R主成_R语言主成_主成_
    优质
    本资源深入讲解了如何使用R语言进行主成分分析(PCA),涵盖数据准备、模型构建及结果解读等内容,适合数据分析和统计学爱好者学习。 本段落将详细介绍R语言中的主成分分析方法,并提供相应的程序示例。通过这些内容的学习与实践,读者能够更好地理解并应用主成分分析技术于数据分析中。
  • 词法、语法及语义
    优质
    本课程介绍词法分析、语法分析和语义分析的基本概念与技术,涵盖正则表达式、上下文无关文法、LL(1)解析等核心内容。 这段文字描述了三个实验:词法分析、语法分析和语义分析。每个实验都包含了自己编写的代码及报告,并且这些代码已经通过运行验证过。
  • 数据-SPSS-主成
    优质
    本课程聚焦于使用SPSS软件进行主成分分析,深入讲解数据简化和变量降维的方法与技巧,帮助学员掌握高效的数据分析能力。 数据处理-SPSS-主成分分析(文件为压缩包,包含一个Excel格式的数据文件和一份Word文档的操作步骤)。
  • 信号频谱、功率谱、倒谱及小波
    优质
    本课程涵盖信号处理中的核心技术,包括信号频谱分析、功率谱估计、倒谱分析以及小波变换方法,旨在培养学生深入理解信号特征提取与分析的能力。 在本科信号系统课程中学习过傅里叶变换,它能够将信号的时域波形转换为频域表示形式。为什么需要进行这种域转换呢?因为在传输过程中,大部分信号可能会受到外界因素干扰(可以理解为“噪声”),这种干扰在时域上不明显,但通过傅立叶变换可以把难以处理的时域信号转化为易于分析的频域信号(即信号的频谱)。 根据傅里叶原理,任何连续测量的时间序列或信号都可以表示成不同频率正弦波无限叠加的形式。基于这个原理建立起来的傅立叶变换算法能够直接利用原始采集到的数据来计算该信号中各个不同频率分量的具体参数,包括它们各自的振幅和相位信息。而与之对应的反傅里叶变换则可以将单独改变的一个或多个正弦波重新组合成原来的复合信号。
  • PL0语法、词法及语义
    优质
    本课程详细探讨了PL0编程语言的语法分析、词法分析和语义分析方法,深入讲解编译原理与实践技巧。 PL0语法分析包括词法分析和语义分析。词法分析是其中的一个重要步骤,同样重要的还有语义分析。