精华内容
下载资源
问答
  • 通过adb 获取 蓝牙 mac address

    千次阅读 2019-06-13 20:23:04
    adb shell settings get secure bluetooth_address 或者 // for Android 4.4.4 adb shell service call bluetooth_manager 10 // for Android 5.0+ adb shell service call bluetooth_manager 12 编程获取...

    adb shell settings get secure bluetooth_address

    或者

    // for Android 4.4.4
    adb shell service call bluetooth_manager 10 
    // for Android 5.0+
    adb shell service call bluetooth_manager 12 

    编程获取bluetooth mac address :

    String macAddress = android.provider.Settings.Secure.getString(context.getContentResolver(), "bluetooth_address");
    展开全文
  • 在android 设备中 用 adb shell settings get secure bluetooth_address 命令 获取到的不是真正的蓝牙MAC地址 怎么办?? 在settings_secure.xml 中bluetooth_address也是这个假的地址 求助!!
  • Access Address PDU - LL Data Access Address 白名单 Non-resolvable private address Public Device Address Static Device Address 参考文章 蓝牙协议分析(9)_BLE安全机制之LL Privacy 蓝牙协议分析(6)_...

    Air Interface Packets

    • Access Address

    PDU - LL Data

    • Access Address

    BLE Device Address

    白名单

    • Non-resolvable private address
    • Public Device Address
    • Static Device Address

    参考文章

    1. 蓝牙协议分析(9)_BLE安全机制之LL Privacy
    2. 蓝牙协议分析(6)_BLE地址类型
    3. 蓝牙协议分析(8)_BLE安全机制之白名单
    4. 低功耗蓝牙BLE之连接事件、连接参数和更新方法
    5. 专栏:https://blog.csdn.net/gysmmzh/category_6830529.html
    6. Daniele Antonioli. BLURtooth: Exploiting Cross-Transport Key Derivation in Bluetooth Classic and Bluetooth Low Energy
    展开全文
  • 深入理解蓝牙Mesh Profile Spec之virtual address

    目录

    spec中关于virtual address的说明:

    总结:

    virtual address工作过程:

    答疑:


    非常幸运有机会在国内两家智能音箱头部公司从事蓝牙mesh的开发。在撸代码之前先要阅读官方mesh spec,否则无从下手,但由于实际项目中,没有使用到virtual address,所以对这一部分并没有深入理解,走马观花一样看了一眼介绍而已,如今闲下来,打算再次仔细阅读一下mesh spec,遇到的第一个比较难理解的就是virtual address,这个地址干嘛用,为什么不用group address代替,为什么叫做virtual address?它哪里virtual了?

    spec中关于virtual address的说明:

    个人理解:virtual address代表着一组单播地址(这跟group address一样呀),每一个virtual address逻辑上代表着一个128-bit的Label UUID,一个甚至更多的element可以配置为发布/订阅这个Label UUID的消息(virtual address逻辑上代表着Label UUID,这个Lable UUID还可以做为订阅和发布的地址,这个Label UUID和地址没有区别呀,但是地址只需要16bits,Label UUID需要128bits,莫非virtual address的使用是为了缩短Label UUID),Label UUID不被传输,并且在upper transport layer层中用作消息完整性检查值的附加数据字段。

    个人理解:virtual address是由Label UUID进行hash+salt计算而来的,盐值是使用“vtad”这个字符串生成的,“vtad”就是virtual address的缩写,s1和计算哈希的算法是公开的,看到这里可以断定,virtual address就是为了精简Label UUID的,128bits->16bits,这个Label UUID是干嘛的,为什么要这么用。

    个人理解:当收到具有匹配hash值的virtual address的access message时,每个消息对应的upper transport layer将标签UUID用作附加数据,作为对身份验证的一部分消息,直到找到匹配项。(node收到的access message(空中包传过来的)中只有virtual address,而Label UUID在之前已被设置到这个node中,并在node中保存,在upper transport layer用来校验这个virtual address和我的Lable UUID是否是匹配的,如果匹配,则这条消息是发给我的,如果不匹配,那这条消息不是发给我的)。说明access message的空中包中只有virtual address,接收消息的node,会在upper transport layer层计算自己的Label UUID的hash+salt,是否与virtual address匹配。

    个人理解:control message是不允许使用virtual address的(Friend request,Friend poll消息属于control message,generic on/off属于access message),Label UUID可以按照[8]中的定义随机生成。configuration client model可以分配和跟踪virtual address,但是也可以使用某些OOB的方式创建virtual address。与group address不同的是,virtual address可以由相关设备商定,不会需要在集中式配置数据库中定义注册,因为它们不太可能重复。我们在应用层的数据库中只记录Label UUID,而virtual address是在收发消息时,在mesh的协议栈中计算出来的。virtual address的值我们不需要在应用层记录,而unicast address和group address是需要在应用层记录的。

    个人理解:virtual address方式的一个缺点是,由于Label UUID过大(大于11个字节),在configuration阶段,会导致了需要多段消息来传输Label UUID。查看了Config Model Publication Virtual Address Set消息的结构,里面定义了128bits的PublishAddress,如下图,另外消息的分段重组是transport layer来做的。

    总结:

    1.virtual address被设计出来,是为了替换Label UUID,减少空中包的长度。

    2.virtual address是Label UUID在网络层通过hash+salt计算生成。

    3.应用层只关心Label UUID,无需关心和记录virtual address。

    4.Label UUID实际上在Config Model Publication Virtual Address Set,Config Model Subscription Virtual Address Add/Delete/Overwrite消息中都出现过,之前提到的“The Label UUID is not transmitted”,指的是除了这几个config消息以外的消息。

    virtual address工作过程:

    发送端向Label UUID(128bits,为“目标设备”所订阅)发送一条消息,在应用层设置好了128bits的目的地(Label UUID)后,消息在协议栈中转换成了virtual address,128bit变为了16bits,并将这个消息使用netkey,appkey加密后发往空中(空中包里面只有virtual address,没有Label UUID),接收端接收到了这个消息,并在transport layer处理时发现dst字段是一个virtual address,然后将自己保存订阅的Label UUID拿出来,按照hash+salt计算出16bits的值,将这个值与收到的virtual address进行比对,如果相同就处理这个消息,如果不是就忽略这个消息。“目标设备”所订阅的Label UUID可以是出厂时就配置好的,也可以是provisioner通过Config Model Publication Virtual Address Set配置的。

    答疑:

    1.它为什么叫做virtual address,哪里virtual了?

    因为应用开发使用的是Label UUID,并不关心将要生成的addr是多少,没有直接使用这个addr,所以定义为virtual address。

    2.Label UUID有什么用,为什么不用group address代替。

    个人理解:Label UUID有128bits,主要用于厂商使用,例如厂商想定义一个本产品私有的“组地址”,然后选择了0xc001(group address),那么其他的厂家不接受了,凭什么0xc001给你们产品用,因此不能使用group address。但是Label UUID不一样,他有128bits,厂家自定义的Label UUID,大概率与其他厂家的Label UUID不同,不会因此产生纠纷。即使两个厂家的持有不同的Label UUID却生成了同样的virtual address,不同的Label UUID也可以证明大家不是故意的,相视一笑,缘分呀,后续也好协商。另外一个原因可能是128bits的Label UUID可以赋予某些含义(pid/cid等等)。

    3.代码实现:

     截取了zephyr的一段code,从函数的定义可以看到形参virt_addr是uint16_t *指针类型,可以推断出,virtual address是协议栈计算出来的,我们调用Config Model Subscription Virtual Address Add消息接口时,传入label,然后协议栈subscription这个uuid,同时返回了virtural address地址,我们后续操作这个lable时,无需再次使用16 byte label,使用virtual address即可。 

    展开全文
  • bluedroid 协议栈之蓝牙地址 bt address

    千次阅读 2014-12-03 14:54:53
    In qcom MSM89XX android5.0 bluedroid, you can use btnvtool or qcom tool QXDM to change bt address , but the address can't be change always , if you have the authority ,you can change the bluetoot

    In qcom MSM89XX android5.0 bluedroid, you can use btnvtool or qcom tool QXDM to change bt address , but the address can't be change always , if you have the authority

    ,you can change the bluetooth address once ,by those tools,


    About btnvtool ,which be provided by bluedroid ,you can use this way to change the address name:

    #adb shell

    $btnvtool -p           //  display bt address  


    $hci_qcomm_init -e  //  display bt address  too


    $btnvtool -b 11:22:33:44:55:66            //   you can use this way change bt address to be 11:22:33:44:55:66



    The other way is use QXCM, you can find  00447 line in nv is bt address, you can change it direct




    展开全文
  • Bluetooth Device Address 蓝牙设备地址分成两类:公开设备地址(public device address)和随机地址(random device address) 1 public device address 1.1 BR/EDR public device address BLUETOOTH DEVICE ...
  • However, BLE can also use "random" addresses which follow a specific format so you can tell when you have a random addresses as opposed to a regular public address. In the BLE vernacular, "UUID" ...
  • SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机、32位ARM Cortex-M0处理器、128kB Flash存储器、以及丰富的数字接口。SYD8801片上集成了Balun无需阻抗匹配网络、高效率DCDC降压转换器,适合...
  • 蓝牙地址

    千次阅读 2016-04-08 11:13:14
    以下是截取 core 4.2片段: Each Bluetooth device shall be allocated a unique 48-bit Bluetooth ...address (BD_ADDR). This address shall be obtained from the IEEE  Registration Authority. The address sha
  • android手机与蓝牙模块的通信

    千次阅读 2014-03-15 22:18:47
    本模块地址为address = "00:13:04:03:03:28";通过连接固定蓝牙模块,实现手机与蓝牙模块的数据交换,现在只有蓝牙模块传输数据到手机上,其他的还未实现。...2.startdiscover()得到蓝牙address 3.BluetoothDevic
  • 蓝牙

    2017-11-02 11:37:31
    将你的电脑音响用作蓝牙音响 这么做可以将你电脑上的外放设备用作蓝牙音响,通过蓝牙为你的手机提供外放。 将以下内容添加到配置文件 /etc/bluetooth/audio.conf (如果文件不存在,创建一个): [General] ...
  • Android 蓝牙 MAC 地址的读取和修改

    千次阅读 2020-12-26 18:54:22
    最近在高通 QCM6125 平台上,通过 QXDM 修改 BT MAC(NV 447)的时候,发现可以成功修改,但是系统设置-关于手机里的蓝牙address 显示并没有变化,因此怀疑蓝牙 MAC 读取的时候并没有去 NV447 里读取,于是搜索资料...
  • 经典蓝牙与低功耗蓝牙的区别

    万次阅读 2018-08-26 20:31:58
    要说到蓝牙,小伙伴们听到的可能有蓝牙1.0、蓝牙2.0、蓝牙3.0、蓝牙4.0之类的以数字结尾的蓝牙版本号,而实际上,在最新的标准中,已经不再使用数字版本号作为蓝牙版本的区分了,取而代之的是经典蓝牙与低功耗蓝牙...
  • Android 蓝牙开发(一)蓝牙通信

    万次阅读 多人点赞 2016-06-07 15:57:55
    随着可穿戴设备的流行,研究蓝牙是必不可少的一门技术了。 总结了下蓝牙开发使用的一些东西分享一下。 首先需要AndroidManifest.xml文件中添加操作蓝牙的权限。 /> 允许程序连接到已配对的蓝牙设备。 ...
  • 但是在某些应用不希望自己的BD address暴露在主端设备的监控下,蓝牙4.2给出了灵活的选择,蓝牙4.2规定,从机设备可以选择在广播模式下发送随机BD address,这样主端设备除了接该到设备之后才能获取其真实BD ...
  • Android蓝牙连接a2dp蓝牙耳机

    千次阅读 2018-12-06 17:20:08
    开发功能:Android中蓝牙连接A2DP设备,蓝牙耳机设备 功能实现: 本应用提供以下功能: 第一:开启蓝牙 第二:查找过滤掉A2DP设备 第三:连接A2DP设备 第四:断开连接A2DP设备 第五:保存通过本应用连接的A2DP设备 ...
  • 解构蓝牙地址以及蓝牙MAC地址查询

    万次阅读 2020-05-28 11:14:33
    现实场景中,经常会碰到“搜索到一个蓝牙地址,但是没有名称,无法确定是不是想连接的设备等问题?”,这个时候就想着,如果可以从地址信息中能解析出某些有用的信息,帮助我们筛选就好了。别急,还真是有可能的,让...
  • 蓝牙蓝牙协议

    万次阅读 多人点赞 2019-03-14 09:46:25
    蓝牙协议学习整理(一)蓝牙的概述 转自: https://blog.csdn.net/guoxiaolongonly/article/details/78414870 传送门:(一)蓝牙的概述(二)蓝牙协议规范(射频、基带链路控制、链路管理)(三)蓝牙协议规范...
  • 蓝牙 UUID 汇总

    千次阅读 2016-05-14 14:58:26
    蓝牙UUID 汇总,蓝牙UUID全,安卓蓝牙UUID
  • 简单的蓝牙功能打开蓝牙 关闭蓝牙 搜索蓝牙 清单文件需要加权限 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission....
  • android_address office365++ study kotlin 算法练习 Framework to address: gradlew compileDebugSources 错误查找 魔法指示器(TabLayout) 任玉刚 retrofit util OKHTTP 网络框架 statusBarUtils litePal 数据库...
  • Android 蓝牙开发(三)蓝牙Hid 开发

    万次阅读 热门讨论 2017-03-13 15:34:40
    Demo下载:... 最近客户需求,android系统的一个设备,想连接一个扫描枪(类似蓝牙键盘,只支持hid协议),并且可以收到其数据,填写到输入框中。我这里借了一个蓝牙鼠标,用来与android设备连接。 ...
  • 最近在做蓝牙开发,刚接触时傻傻的分不清经典蓝牙和低功耗蓝牙的区别,一直用开发低功耗蓝牙的方法去连接经典蓝牙设备,最后当然是一直连接不上了。在此记录下经典蓝牙和低功耗蓝牙的区别和联系。 Android中的蓝牙 ...
  • BLE设备有多种类型的设备地址,如Public Device Address、Random Device Address、Static Device Address、Private Device Address等等。 2. BLE设备的地址类型 一个BLE设备,可以使用两种类型的地址(一个BLE...
  • SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机、32位ARM Cortex-M0处理器、128kB Flash存储器、以及丰富的数字接口。SYD8801片上集成了Balun无需阻抗匹配网络、高效率DCDC降压转换器,适合...
  • Android蓝牙开发—经典蓝牙详细开发流程

    万次阅读 多人点赞 2018-07-16 13:41:12
    Android蓝牙开发前,首先要区分是经典蓝牙开发还是BLE(低功耗)蓝牙开发,它们的开发是有区别的,如果还分不清经典蓝牙和BLE(低功耗)蓝牙的小伙伴,可以先看Android蓝牙开发—经典蓝牙和BLE(低功耗)蓝牙的区别 ...
  • 蓝牙4.1 vs 蓝牙4,0 1.提升数据传输率 相比蓝牙4.0,蓝牙4.1单包数据传输最大值从20字节上调到23字节,提升了15%的数据传输率。根据该规则,大家可以尝试修改单包数据payload的值,如果该芯片只支持BT4.0,那么...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,301
精华内容 4,120
关键字:

蓝牙address