蓝牙btsnoop log,hci 连接流程详解

本文详细介绍了蓝牙设备中主机控制层接口(HCI)的基本概念及其常用命令与事件,包括蓝牙重启、本地地址读取、固件版本信息读取等,并解释了连接建立及认证流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.HCI(HOST CONTROLLER INTERFACE):主机控制层接口

        从字面意思不难理解,是沟通host和controller的接口,每个蓝牙设备都由host和controller组成,host为蓝牙协议栈,controller为厂商封装好的固件,host通过hci下发command给controller,controller返回固件自身信息或从远端controller接收到的信息通过event上报给host,两个设备之间的controller数据交互则为工作中常说的空中包,需要借助空包工具(ellisys frontline)抓取

2.开启蓝牙hci_reset,一般开启蓝牙的第一条command就是hci_reset ,如果不是将会打印hardware error,日常使用遇到蓝牙打不开的小伙伴,可以导出日志看下是不是硬件挂了

3.Command: HCI_Read_BD_ADDR 读取本机地址

4.Command: HCI_Read_Local_Version_Information 读取本机固件蓝牙版本信息

5. Command: HCI_Write_Inquiry_mode,设置inquiry模式 ,返回扫描结果的类型Inquiry_Mode: Inquiry Result with RSSI format or Extended Inquiry Result format,inquiry对于蓝牙来说是去扫描设备,inquiry scan是可以被其它设备扫描到

6.Command: HCI_Write_Page_Timeout 设置page timeout超时时间,page是去连接对方设备,page scan是可以被对方连接,连接失败常见page timeout,超时未连接成功


7. Command: HCI_Read_Local_Name         Command: HCI_Write_Local_Name读写本机设备名

8. Command: HCI_LE_Set_Extended_Scan_Parameters 设置LE设备扫描window和interval,设置中发起的扫描,window被拉满

9.        Command: HCI_Inquiry 发起扫描le和BR/EDR设备都会上报

10.    Event: HCI_LE_Extended_Advertising_Report le设备广播包上报

11.    Event: HCI_Extended_Inquiry_Result   传统设备EIR类型上报扫描结果

12.    Command: HCI_Inquiry_Cancel 取消扫描

13.    Command: HCI_Delete_Stored_Link_Key 取消配对删除link

14.    Command: HCI_Remote_Name_Request 读取对端蓝牙设备名称

15.    Command: HCI_Create_Connection 主动创建连接,主动发起连接的设备做master

16.    Event: HCI_Connection_Complete 连接完成,ACL建立成功,Connection_Handle为链路标识
 

17.        Command: HCI_Read_Remote_Version_Information         Event: HCI_Read_Remote_Version_Information_Complete  读取对端信息,event返回厂商,固件版本,蓝牙版本信息

18.        Command: HCI_Authentication_Requested 发起连接认证请求
19.        Event: HCI_Link_Key_Request                    请求是否有link

20.        Command: HCI_Link_Key_Request_Negative_Reply      手机端无link key

21.        Event: HCI_IO_Capability_Request   问询手机端io capability
22.        Command: HCI_IO_Capability_Request_Reply  手机端回复        IO_Capability: DisplayYesNo

 23.       Event: HCI_IO_Capability_Response 耳机端回复        IO_Capability: NoInputNoOutput

 24.       Event: HCI_User_Confirmation_Request  耳机端确认连接请求并生成pin码

25.        Command: HCI_User_Confirmation_Request_Reply 手机回复是否确认连接
26.        Event: HCI_Simple_Pairing_Complete  以simple pairing方式配对完成

 27.       Event: HCI_Link_Key_Notification 生成link key,不同于pin码,是蓝牙链路的加密key,可用于解析空包数据

 28.        Event: HCI_Authentication_Complete 蓝牙认证流程结束

后面整理下认证完成后a2dp从SDP开始到音频流建立完成的流程


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值