一尘不染

将BlueZ Stack用作外围设备(广告商)

linux

  • 目标 :使用BlueZ和Bluetooth 4LE加密狗创建一个外围设备,用于宣传与“ Hello World”类似的蓝牙。

  • 我现在在哪里 :我已经安装并下载了BlueZ堆栈,我可以使用hci工具来识别并查看蓝牙加密狗。我已经修改过hciconfig leadv,但我只是不太了解它/了解发生了什么。

  • 我认为我需要什么帮助 :我需要进行下一步。如果有人可以将我引向一个好的资源,或者带我逐步了解任何内容,将不胜感激。如果我需要做更多的腿部(搜索)工作,可以,但我已经尽我所能想到,用这个问题的尽可能多的不同派生方式搜索了Google和SO。

*我也将其标记为CoreBluetooth,希望某个iOS开发人员在某个时候可以对此进行修改。

编辑:在回应评论时,谨慎地说出我的最终目标是什么。我最终希望通过加密狗做广告,以最简单的简单消息/信号做广告,然后在iOS设备(CoreBluetooth)上进行接收。我已经能够使iOS方面的工作正常(相对于Linux方面的工作,有大量的文档),但是对我而言,最困难的部分是将该适配器设置作为外围设备。BlueZ堆栈对我来说是一个可怕的谜。

编辑:好的,所以我继续学习。在过去的几天中,我更深入地研究了hci*,sdptool和gatttool工具。我已经可以设置适配器来通告“hciconfig hci0leadv”。在这一点上,我可以成功地“看到”适配器,但是我实际上无法从中读取任何内容。我什至没有看到友好的名字。我会继续加油,但是一如既往,任何帮助/建议都非常受欢迎。

编辑:相关链接,关于iOS的Bluetooth LE的完整概述。
https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/AboutCoreBluetooth/Introduction.html#//apple_ref/doc/uid/TP40013257-CH1-SW1

最后编辑:大家好,此链接介绍如何使用Raspberry Pi + BlueZ创建iBeacon …
http://www.wadewegner.com/2014/05/create-an-ibeacon-transmitter-with-the-
raspberry -pi /


阅读 428

收藏
2020-06-02

共1个答案

一尘不染

插入蓝牙加密狗后,运行以下命令将告诉您设备名称并提供其状态:

$ hciconfig

输出应如下所示:

hci0:    Type: BR/EDR  Bus: USB
     BD Address: 00:01:02:aa:bb:cc  ACL MTU: 1021:8  SCO MTU: 64:1
     DOWN
     RX bytes:1000 acl:0 sco:0 events:47 errors:0
     TX bytes:1072 acl:0 sco:0 commands:47 errors:0

这表明被称为hci0的设备处于关闭状态。发出以下命令来启动它:

$ sudo hciconfig hci0 up

现在看起来应该像这样:

$ hciconfig
hci0:   Type: BR/EDR  Bus: USB
     BD Address: 00:01:02:aa:bb:cc  ACL MTU: 1021:8  SCO MTU: 64:1
     UP RUNNING
     RX bytes:1000 acl:0 sco:0 events:47 errors:0
     TX bytes:1072 acl:0 sco:0 commands:47 errors:0

接下来,执行以下示例命令以配置要发送的广告数据。

$ sudo hcitool -i hci0 cmd 0x08 0x0008 1e 02 01 1a 1a ff 4c 00 02 15 e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 00 00 00 00 c5 00 00 00 00 00 00 00 00 00 00 00 00 00

您可以更改十六进制字节(以1e开头)以为广告发送不同的字节序列。一,从字面上发送ASCII码为“HELLO WORLD”将使用:48 45 4c 4c4f 57 4f 52 4c 44

现在,使用以下命令激活加密狗上的广告,这将开始发送“ Helo World”数据包。

$ sudo hciconfig hci0 leadv 0

编辑: 上面的命令使广告服务可连接。如果您不想允许连接,请将其更改为$ sudo hciconfig hci0 leadv 3

您还可以使用以下命令禁用广告:

$ sudo hciconfig hci0 noleadv

2020-06-02