蓝牙
yawn
这个作者很懒,什么都没留下…
展开
-
Bluedroid的结构和代码分布
在android4.2中,Google更换了android的蓝牙协议栈,从Bluez换成Bluedroid,我也是初涉这个方面,顺便记录一下。 http://source.android.com/devices/bluetooth.html android development对于4.3蓝牙的介绍: android提供BlueDroid作为默认的协议栈,BlueDroid分为两转载 2014-12-20 16:30:45 · 683 阅读 · 0 评论 -
在HCI层看从inquiry的整个过程
一.概述 在windows下寻找远端蓝牙设备,从最开始的inquiry寻找设备,到连接设备,到最后配对完成,整个HCI层所发的command和event以及Data包可以反应整个蓝牙的inquiry,pair等原理和过程。这篇笔记就是分析这个过程,结合Spec的具体描述,以此熟悉蓝牙的配对流程。 二.Inquiry流程 这个流程主要是inquiry远端的蓝牙设备,不进行连转载 2014-12-20 16:18:20 · 751 阅读 · 0 评论 -
在HCI层ACL Connection的建立
一.概述 上一篇博文介绍的是inquiry的整个过程中HCI层的command和event。在寻找到有效的远端蓝牙设备后,开始建立ACL连接,这里仅仅反应HCI层的数据包,对于LM层和Baseband层的数据可能需要抓取FW的log进行查看。 二.建立ACL连接的过程 1. Create_Connection command 该命令参数如下: BD_ADDR,转载 2014-12-20 16:20:39 · 701 阅读 · 0 评论 -
FTS抓包看L2CAP Connection的建立(二)
1.概述 前面一篇博文已经介绍到远端设备对本地的Connection request进行了response,目前L2CAP的连接处于pending状态。这篇将继续抓取下面的一些packets,来看L2CAP Connection的建立过程。 2.一些Frame Frame50:HCI收到ACL Data,传到L2CAP层,是远端的information request 000转载 2014-12-20 16:23:49 · 647 阅读 · 0 评论 -
FTS抓包看蓝牙验证的过程
1.概述 在进行蓝牙设备的连接时,为了保护个人隐私和数据保密的需要,需要进行验证。 2.一些Frame Frame74:本地发送Authentication requset command 00010001 00000100 00000010 00001001 00000000 Opcode: 0x0411 Connection Handle: 0x09 = 9转载 2014-12-20 16:24:51 · 954 阅读 · 0 评论 -
FTS抓包看L2CAP Connection的建立(一)
一.概述 在前面的文章中介绍了inquiry和ACL connection的建立过程。这个连接建立后,L2CAP signaling channel(CID = 0x0001)就已经存在,可以进行L2CAP连接 二.基本概念 HCI ACL Data Format: Connection的建立(一)" title="FTS抓包看L2CAP Connection的建立(一)"转载 2014-12-20 16:22:23 · 724 阅读 · 0 评论 -
Android4.2和4.3中enable bluetooth
以下是基于Android 4.2代码,对Bluetooth BR/EDR Enable process的分析。BluetoothAdapter类代表的是local device Bluetooth adapter,而BluetoothDevice类代表的是remote Bluetooth device。在Android 4.3中引入了一个新的类BluetoothManager,它是一个high l转载 2014-12-20 16:34:24 · 635 阅读 · 0 评论 -
Android 4.2下的蓝牙
Tieto公司某蓝牙大牛写得《程序员》投稿文章 Android 4.2蓝牙介绍 蓝牙一词源于公元十世纪丹麦国王HaraldBlatand名字中的Blatand。Blatand的英文之意就是Blue tooth。这是因为这位让丹麦人引以为傲的国王酷爱吃蓝莓以至于牙龈都被染成蓝色。由于Blatand统一了丹麦和挪威,所以,作为无线通信技术的一种,蓝牙技术之所以取名Bluetooth转载 2014-12-20 16:12:54 · 819 阅读 · 0 评论 -
Android4.2关于bluetooth在HAL层的分析(1)
1.一些常用的数据结构 hardware/libhardware/include/hardware.h中 定义了三个重要的结构: struct hw_module_t; //模块类型 struct hw_module_methods_t; //模块方法 struct hw_device_t; //设备类型 hw_module_t中包含结构转载 2014-12-20 16:35:14 · 581 阅读 · 0 评论 -
FTS抓包看AVDTP
1.概述 测试过程为打开Audio连接,没有听音乐,人后断开Audio连接,主要目的是为了测试AVDTP的工作流程。 2.Frame分析 首先贴出抓取的关于AVDTP的包: 在L2CAP层,分别由Maste和Slave建立了两条关于AVDTP的L2CAP连接,并完成了configure的过程,如下: 我们可以看到AVDT转载 2014-12-20 16:32:02 · 943 阅读 · 0 评论 -
SDP协议中的Continuation State
在SDP request和SDP response中,最后一部分为Continuation State,结构如下: State" title="SDP协议中的Continuation State" style="margin:0px; padding:0px; border:0px; list-style:none"> 它用于一次response不够把所有的Data传回去的情况。这时候需要转载 2014-12-20 16:27:24 · 798 阅读 · 0 评论 -
FTS抓包看蓝牙的SDP整个过程
1.概述 SDP是蓝牙的Service Discovery Protocol,用来发现远程设备能够提供的Service。它只负责发现对方支持的Service,不负责Service的具体实现。 2.背景概念 SDP中的每一个Service用ServiceRecord来表示(具有唯一的32bit的Handle),每一个ServiceRecord由若干Servic转载 2014-12-20 16:25:50 · 1342 阅读 · 0 评论 -
用FTS分析蓝牙数据包
1.简介 FTS软件相当于蓝牙的数据分析仪器,它可以抓取通过蓝牙IC的数据包,从包中我们可以看到HCI,L2CAP等各层的封包数据,是一个十分有用的软件。 2.HCI的command和event以及Data的格式 HCI Command Format: HCI Event Format: HCI ACL Data Format: HC转载 2014-12-20 16:16:21 · 1077 阅读 · 0 评论