一、前言
本篇会通过编写代码,将广播的公共地址更改为随机静态地址,如果对公共地址和随机静态地址不了解的可以看下面这篇文章手把手教你:如何分析BLE的MAC地址
二、阅读说明
1、泰凌微芯片学习者,前期使用过该芯片。
2、能够知道怎么进行创建工程,下载代码。
3、有一块开发板,板上的芯片可以是8251,8253或者8258。
4、需使用蓝牙抓包工具52840 Sniffer和协议分析软件Wireshark
三、正文
1、使用的SDK如何使用TLSR8258芯片进行蓝牙广播使用的SDK为该篇文章描述的
2、代码修改
2.1、更改BLE_DEVICE_ADDRESS_TYPE
#define BLE_DEVICE_ADDRESS_TYPE BLE_DEVICE_ADDRESS_RANDOM_STATIC
在app.c中将该宏定义的常量更改为随机静态地址
2.2、更改app_own_address_type
_attribute_data_retention_ own_addr_type_t app_own_address_type = OWN_ADDRESS_RANDOM;
在app.c中将该变量更改为随机地址类型
2.3、更改打印函数
tlkapi_send_string_data(APP_LOG_EN,"[APP][INI]Random Address", mac_random_static, 6);
在app.c中,将user_init_normal函数中的打印更改为打印随机静态地址,之前打印的是公共地址
3.4、给有关函数传入随机静态地址变量的数组头
如上图所示,之前传入的是公共地址
3、下载程序后的串口打印
[APP][INI]Random Address: 6f e2 c5 df ce c0
注意地址是小端模式,高位是0xc0,也就是最高2bits为11,这说明了该
4、用nRf Connect进行广播搜索
5、使用抓包工具
由上图所示,通过抓包能验证,成功地将广播的公共地址更改为了随机地址。关于Tx Address的描述,如果不清楚的,可以看我的这篇文章手把手教你:如何分析BLE的MAC地址
五、结尾
本篇通过编写代码,将广播的公共地址更改为了随机地址,并且是随机地址里面的静态地址,下一篇将讲述如何更改为可解析的私有地址。
另外我开了一个手写广播设备的合集,该合集的内容为不依赖商业的蓝牙协议栈,里面的内容主要是结合蓝牙协议文件,分析一个完整的广播数据帧结构,然后通过编写底层代码(不依赖泰凌微蓝牙协议栈),来实现自己的广播设备,之后会对代码进行优化,优化后的代码使用起来非常简洁高效和方便,同时也能将之移植到我们平时的项目当中。
175