背景
基于已有的遥控器产品进行竞品分析,了解HID标准协议相对于xx已有的私有的协议的优势和缺点。重点确认和研究设备和手机APP自动连接和认证的过程,分析后期是否可在xx产品上使用或者借鉴。
基本信息
遥控器型号是CS-TJ-R100,由第三方厂商按照HID协议开发的标准协议的遥控器,主要提供给xx配套的物理遥控器。
遥控器的外观和普通的电视遥控器并没有什么区别,上面由开关机,静音,上下左右,确认等相关按键。具体图片如下所示。

遥控器支持Type-c口充电,使用内置锂电池,支持和手机连接和配对绑定,可简单验证部分功能。
使用和体验
在正常情况下,遥控器不会发送任何BLE数据,只有在触发绑定后才能和手机进行连接。绑定过程如下。
1、 同时按住home和返回(上图中“+”的左右2个按键),直到遥控器发出“滴”的声音,此时设备开始发送广播;
2、 手机打开nRF connect软件,扫描广播,可以找到“CS-TJ-R100”广播;
3、 手机连接,并发起bond操作,此时手机上需要确认绑定信息确认,直接确认即可完成绑定;
4、 手机和遥控器绑定完成后,遥控器可以控制手机,部分按键支持。
5、 后台可以杀掉nRF connect软件,手机只要在打开蓝牙的情况下都会自动重连遥控器,不需要任何APP应用。


图1 扫描广播和绑定完成
遥控器绑定完成后出现在手机的绑定列表中,并且可以显示遥控器实时的电量信息。此时,手机只要不关闭蓝牙,将一直连接着遥控器。如果手机关闭蓝牙或者离开遥控器连接范围,设备会自动断开。当手机开启蓝牙或者在遥控器连接范围内,遥控器会自动连接到手机,并恢复认证状态。

图2 遥控器绑定后显示绑定信息
只要手机和遥控器保持上述的正常连接状态,遥控器通过按照控制手机(当前不是所有按键都可以支持)。比如,通过遥控器控制选择某个APP,可以使用上下左右和确认这5个按键,也可以通过音量按键调整手机的音量等。
对比分析
配网的总体流程

数据分析
遥控器广播报文,主要包括下面3个部分,应用类型(HID),UUID信息,厂商自定义信息。
xx广播报文完全自定义,基本上不会标准协议字段,如果要让第三方BLE主机识别可能是一个问题。

由于遥控器和手机使用绑定方式,因此绑定后所有应用数据均是加密数据,无法直接进行分析。当然由于是标准HID协议,实际上如果需要开发直接按照标准协议发送即可。此次,为了学习和研究有必要对数据进行解密和分析。主要解密的方式由下面几种方式。
1、 使用专业蓝牙无线抓包工具,如ellisys或morePh等,xx这边只有morePh的抓包工具,实际测试,能够抓包加密密钥的情况比较少,基本上没办法进行解密。

2、 手机上的bt-snoop-hci日志分析对应的数据,提取LTK的信息,将LTK信息加载到无线抓包工具中进行解析。这种方式也存在一些问题,首先,手机是否方便的可以到处日志信息,其次,日志中怎么样确认是本次连接的LTK信息。
从上述情况看,第二种方式是一种可行的方案,但是可能存在拿到错误的LTK的问题。
手机端btsnoop-hci.log中选择对应的Long Term Key

手机读取report map,HCI对应的信息



设备下,上,左,右,确认按键无线抓包截图如下。上报内容需要和手机的report map进行对应,否则手机无法进行订阅和数据接收。其他更多的无线抓包信息,可以参考附录内容。
手机订阅0x2C,boot keyboard input report
手机订阅0x31,boot mouse input report
手机订阅0x34,0x38,0x3C,0x40,report






横向对比
xx没有类似自研产品,以xx标准的蓝牙从机协议进行对比。从下面各个方面方面分析看,第三方遥控器最大优化是使用HID协议带来的优势,如果在断开的情况下,遥控器可以不依赖任何软件使用重新连接和认证。
|
对比项 |
第三方遥控器A |
xx从机B |
优势方 |
|
广播 |
|
|
平手 |
|
连接 |
自动连接 |
xxAPP连接 |
第三方遥控器 |
|
认证 |
自动认证和配对 |
xxAPP认证 |
第三方遥控器 |
|
通信 |
基于SMP加密通信,满足普通使用,通信协议标准化 |
基于xx本地认证加密,高安全性,通信协议复杂,效率低 |
平手 |
|
功耗 |
手机打开情况下,长连接,作为从机,功耗比较可控。遥控器不会更新连接参数,功耗偏高 |
xx遥控器无长连接场景,可能采取使用时连接的情况 |
xx从机 |
改进方案
广播数据看,目前xx协议可扩展空间不大,并且无法修改,否则难以和xxAPP连接和适配。但是HID的重新连接和认证的方案,xx的设备可以考虑和借鉴,具体方案如下。
1、 xx从机设备可以支持HID的部分标准协议,同时支持已有设备的xx协议;
2、 xx从机设备支持SMP绑定和本地认证通信。使用过程中本地认证和SMP认证,至少需要满足一种认证方式。
3、 xx部分设备如果需要实现自动和手机重新连接,不依赖xxAPP,这种情况下,设备可以选择SMP认证方式。
4、 xx设备和手机认证后,由于是HID协议设备,设备和上述第三方软件具体相同的重连的效果。如果部分控制可以走标准的HID协议,那么可以直接不依赖APP进行控制。
5、 但是如果设备还需要使用当前的xx协议,那么设备连接后还是需要重新唤醒xxAPP才能进行业务相关的控制。
优化测试
按照上述的优化方案,可以实现第三方遥控器的效果。但是对于需要兼容老协议和必须使用xx私有的设备,连接后还是需要xxAPP参与。
但是对于设备和手机的连接和认证,可以快速实现连接,体验上感觉连接速度更快了。当然对于简单的HID协议能够覆盖的设备,建议直接使用HID协议进行控制。但是对于智能锁等高安全性,并且无HID协议支持的设备,建议还是通过xxAPP来保证相关的控制。
总结
第三方遥控器使用HID的标准协议,天然的支持无APP进行连接。目前只有该蓝牙协议支持系统层面的自动重连和认证。相对于使用APP来连接和认证的方式,确认有很大方便之处。但是不足的地方也很明显,HID的协议范围比较小,目前只有使用在鼠标,键盘,手柄等相关标准设备上。
未来也可以关注下相关协议的发展,比如蓝牙车钥匙等目前已有标准将相关应用直接集成到系统层面,后期也可以避免使用APP。
1万+

被折叠的 条评论
为什么被折叠?



