为了账号安全,请及时绑定邮箱和手机立即绑定

什么是iBeacon蓝牙配置文件?

什么是iBeacon蓝牙配置文件?

蝴蝶刀刀 2019-07-04 10:26:40
什么是iBeacon蓝牙配置文件?我想用一些蓝牙低能量开发工具包来创建我自己的iBeacon。苹果还没有发布iBeacons的规范,但是一些硬件开发人员已经从AirLocate示例代码中反向设计了iBeacon,并开始销售iBeacondev工具包。艾比肯蓝牙配置文件是什么?蓝牙低能使用GATT的LEProfile服务发现。因此,我认为我们需要知道属性句柄、属性类型、属性值,以及iBecon属性的属性权限。因此,对于一个UUID为E2C56DB5-DFFB-48D2-B060-D0F5A71096E0的i信标来说,主要值为1,而次要值为1,蓝牙GATT Profile服务是什么?以下是我从苹果论坛和文档中得出的一些假设。您只需要查看蓝牙外围设备的配置文件服务(GATT)就可以知道它是iBeacon。主键和小键在此配置文件服务的某个地方编码。以下是一些拥有iBeaconDev工具包的公司,它们似乎已经知道了这一点:http://redbearlab.com/ibeacon/http://kontakt.io/希望我们能及时在Bluegin.org上发布这样的个人资料,如下所示:https:/www.蓝图.org/en-us/规范/采用-规范
查看完整描述

3 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

对于具有极大UUID的iBeaconE2C56DB5-DFFB-48D2-B060-D0F5A71096E0主修0小调0,以及校准的TX功率-59RSSI,发送的BLE广告包如下所示:


d6 be 89 8e 40 24 05 a2 17 6e 3d 71 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 52 ab 8d 38 a5


此包可细分如下:


d6 be 89 8e # Access address for advertising data (this is always the same fixed value)

40 # Advertising Channel PDU Header byte 0.  Contains: (type = 0), (tx add = 1), (rx add = 0)

24 # Advertising Channel PDU Header byte 1.  Contains:  (length = total bytes of the advertising payload + 6 bytes for the BLE mac address.)

05 a2 17 6e 3d 71 # Bluetooth Mac address (note this is a spoofed address)

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 # Bluetooth advertisement

52 ab 8d 38 a5 # checksum

该包的关键部分是蓝牙广告,可以这样细分:


02 # Number of bytes that follow in first AD structure

01 # Flags AD type

1A # Flags value 0x1A = 000011010  

   bit 0 (OFF) LE Limited Discoverable Mode

   bit 1 (ON) LE General Discoverable Mode

   bit 2 (OFF) BR/EDR Not Supported

   bit 3 (ON) Simultaneous LE and BR/EDR to Same Device Capable (controller)

   bit 4 (ON) Simultaneous LE and BR/EDR to Same Device Capable (Host)

1A # Number of bytes that follow in second (and last) AD structure

FF # Manufacturer specific data AD type

4C 00 # Company identifier code (0x004C == Apple)

02 # Byte 0 of iBeacon advertisement indicator

15 # Byte 1 of iBeacon advertisement indicator

e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 # iBeacon proximity uuid

00 00 # major 

00 00 # minor 

c5 # The 2's complement of the calibrated Tx Power

可以配置为发送特定广告的任何蓝牙le设备都可以生成上述分组。我已经配置了一台使用Blueez的Linux计算机来发送这个广告,运行Apple AirLocate测试代码的iOS 7设备将其作为带有上述字段的iBeacon。见:使用Blueez Stack作为外围设备(广告)

这,这个博客有关于逆向工程过程的全部细节。


查看完整回答
反对 回复 2019-07-04
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

它似乎是基于广告数据,特别是制造商的数据:

4C00 02 15 585CDE931B0142CC9A1325009BEDC65E 0000 0000 C5<company identifier (2 bytes)> <type (1 byte)> <data length (1 byte)>
    <uuid (16 bytes)> <major (2 bytes)> <minor (2 bytes)> <RSSI @ 1m>
  • 苹果公司标识符(小终端),0x004c
  • 数据类型,0x02=>iBeacon
  • 数据长度,0x15=21
  • UUID:585CDE931B0142CC9A1325009BEDC65E
  • 专业:0000
  • 未成年人:0000
  • 1米测量功率:0xc5=-59

我有这个Node.js脚本在Linux上使用示例AirLocate应用程序示例。


查看完整回答
反对 回复 2019-07-04
  • AAAAA1
    AAAAA1
    兄弟,蘋果公司標識符4C 00可不可以改
  • MinewTech
    MinewTech
    可以的,参考https://www.minew.com/product-category/lbs-products/bluetooth-beacon/
  • 3 回答
  • 0 关注
  • 1120 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信