论文部分内容阅读
蓝牙(Bluetooth)是一种支持设备在短距离内互相通信和信息交换的无线技术。它可以取代有线电缆把小范围内的电脑和通信设备连接起来,遵循蓝牙技术规范的设备之间能够方便地建立语音链接和数据链接。蓝牙技术具有功耗低、对人体危害小、抗干扰性强、良好的兼容性和互通性等特点,并且蓝牙技术标准在全球范围内是开放的。蓝牙技术的应用领域较为广泛,特别是在便携式终端产品上。为了更大限度的发挥蓝牙技术的作用,需要进一步的研究蓝牙协议。但是现有的研究蓝牙协议的方法大多基于收费的工具,这些方法或者成本过高,或者由于丢包率大而影响研究结果,不能较好的、完整的对蓝牙协议进行详细地分析。因此我们需要一种高效的、低成本的研究蓝牙协议的新方案。本文在对蓝牙体系结构、Android蓝牙架构、蓝牙驱动以及Android蓝牙底层代码深入研究分析的基础上,给出了研究蓝牙协议的具体方案,即基于Android内核日志抓包技术研究蓝牙协议。首先通过分析Android内核代码,获取蓝牙协议层与硬件之间的数据传输接口。然后在接口处将蓝牙通信过程的消息包以十六进制的形式提取到Android内核日志文件中,在ROOT权限下导出内核日志数据,完成抓包过程。最后基于抓到的数据包对HCI、L2CAP、SDP、RFCOMM等蓝牙核心协议的数据包结构、链路的建立和管理、分组格式及协议之间的联系进行了研究分析。最后本文通过大量实验证明了该抓包技术能实时地、准确地、低成本地抓到蓝牙数据包,满足了研究蓝牙协议的基本需求。此外本文在对蓝牙核心协议研究的基础上初步给出了扩展蓝牙协议的方案,为实现蓝牙协议的扩展及蓝牙新功能奠定了基础。