![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
bluetooth
Jalon007
臣之所好者道也进乎技矣.始臣之解牛之时所见无非牛者.三年之后未尝见全牛也.
展开
-
BlueDroid代码分析之BlueDroid简介
BlueDroid简介Android4.2之前,Google一直使用的是Linux官方蓝牙协议栈,即知名老牌开源项目BlueZ。BlueZ实际上是由高通公司在2001年5月基于GPL协议发布的一个开源项目,该项目仅发布一个月后就被Linux之父Linux Torvalds纳入了Linux内核,并做为Linux 2.4.6内核的官方蓝牙协议栈。随着Android设备的流行,Blu原创 2015-01-09 17:21:25 · 7341 阅读 · 0 评论 -
HCI层数据包格式
前言:Host 和蓝牙控制器都是通过HCI接口交互的,所以了解HCI通信包格式是很有必要的。有助于抓包分析和解决问题!HCI的命令格式(HCI Command Packet)OpCode的bit10~bit15用来表示OGF域,用来表示HCI命令的种类。HCI总共有7中类型的命令,分别定义如下:For the Link Control commands, t原创 2014-12-27 09:55:09 · 6524 阅读 · 0 评论 -
蓝牙设备状态转换
蓝牙状态转换图:上图是蓝牙状态转换图,从图中可以看出STANDBY状体是蓝牙设备的默认状态。此模式下设备处于低功耗状态。Page:这个子状态就是我们通常称为的连接(寻呼),进行连接/激活对应的slave的操作我们就称为page。Page scan:这个子状态是和page对应的,它就是等待被page的slave所处的状态,换句话说,若想被page到,我们就要处于page原创 2014-12-26 15:05:08 · 7812 阅读 · 1 评论 -
蓝牙核心-L2CAP
概要:逻辑链路控制和适配协议(L2CAP),支持高层协议多路复用、数据分段和重组,并且支持传送服务质量信息。本文件主要针对协议状态自动机、分组格式及构成相关内容进行描述。L2CAP层次结构(L2CAP architectural blocks):基带规范定义了两种链路类型:同步面向连接链路(SCO)和异步无连接链路(ACL)。SCO 链路采用保留带宽支持实时语音通信。A原创 2014-12-23 17:18:11 · 6109 阅读 · 0 评论 -
BlueDroid代码分析之初始化
安卓蓝牙协议栈初始化bluedroid协议栈初始化过程如下图所示:Bluetooth.c是安卓蓝牙的硬件抽象,是BlueDroid的对外接口,供JNI直接调用。bluedroid编译出的库为bluetooth.default.so依赖于libbt-hci.so、libbt-utils.so、libbt-vendor.so等动态库。下面逐一分析安卓是怎原创 2015-01-10 16:15:54 · 5450 阅读 · 1 评论 -
BlueDroid代码分析之L2CAP
ACL 链路在 Bluetooth 中非常重要,一些重要的应用如 A2DP, 基于 RFCOMM 的应用,BNEP等都要建立 ACL 链路,发送/接收ACL 包。Mike 跟大家一起来分析 ACL 包发送/接收流程,以及涉及到的重要 command/event。ACL包发送下面的图(点击大图)是各种应用层使用 L2CAP 的 API:L2CA_DataWrite 发送数据流的过转载 2015-01-13 18:55:01 · 5303 阅读 · 0 评论 -
BlueDroid代码分析之回调函数的注册与调用
BlueDroid协议栈是基于回调的机制,核心进程btif_task 和btu_task根据用户/BTE的事件,调用相应的回调过程,回调的注册请参考下图!点击查看大图原创 2015-01-13 18:13:09 · 1812 阅读 · 0 评论 -
蓝牙协议分析_基本概念
1. 前言自1994年由爱立信推出至今,蓝牙技术已经走过了20个岁月。从最初的Bluetooth V1.0,到如今的Bluetooth V4.0(最新的为V4.1,2013年底发布),经历了近9个版本的修订后,发展为当前的状况。说实话,如今的蓝牙4.0,简直是一个大杂烩:BR/EDR沿用旧的蓝牙规范;LE抄袭802.15.4;AMP直接使用802.11。而这一切的目的,就是以兼容性转载 2014-11-27 23:51:26 · 2006 阅读 · 0 评论 -
蓝牙核心-链路管理相关概念
蓝牙核心系统结构(CORESYSTEM ARCHITECTURE):黑色的为用户数据通路,灰色的为命令/事件通道。上图为蓝牙的核心模块,每个核心模块都有相关联的通信协议。 BR/EDR Controller由链路管理,链路控制器和BR/EDR无线模块构成。AMP Controller由AMP PAL,AMP MAC和AMP PHY构成。LE Controller由链路管理,链路控制原创 2014-12-23 13:16:25 · 7552 阅读 · 0 评论 -
BlueDroid代码分析之数据传输过程
bluedroid支持的蓝牙profile有很多种,每种传输数据的方式都比较类似,下面以hid profile 的setReport接口来分析下整个过程。hid setreport 发送数据流程如下图所示:点击查看大图原创 2015-01-13 18:46:00 · 1894 阅读 · 1 评论 -
蓝牙基本概念
前言:之前查看过蓝牙协议分析_基本概念对蓝牙有了一个整体的概念,最近闲暇无事稍稍看了下蓝牙协议规范,对蓝牙相关的概率有了一定的了解。接下来的文章都是对自己的学习内容的整理,由于自己的水平有限,错误也在所难免,欢迎指正错误,共同学习、共同进步!蓝牙的扩朴结构:1.经典蓝牙扩朴结构(Bluetooth BR/EDR topology)2.低功耗蓝牙扩朴结构(Blueto原创 2014-12-22 14:23:28 · 4960 阅读 · 0 评论 -
在HCI层看蓝牙的连接过程
前言从蓝牙设备状态转换可以知道,蓝牙设备连接需经过Inquiry,page过程,本文主要从HCI角度分析连接过程。解析抓包文件用到的工具为Frontline 的Capture File Viewer。HCI简介HCI(Host Controller Interface):Core_v4.1规定了四种类型的接口,分别为普通串口(不带流控制),usb接口,SD接口,三线原创 2014-12-27 13:46:09 · 22629 阅读 · 8 评论