问题描述:主端蓝牙吸顶屏侧无法连接到前车机从端IVI蓝牙
调查方向:
1.是芯片问题?(连接耳机、遥控器无问题)---pass
2.是强上电问题?(蓄电池没电, 大电宝搭上启动, 吸顶屏是蓄电池供电) ---pass
3.加载驱动固件有问题?(怀疑: 加载固件patch没成功)----芯片那边怀疑是这问题基于此方向分析
日志btsonnp分析发现 Secure Connections = No
已知的---->前车机蓝牙要求必须支持 Secure Connections = Yes
吸顶屏蓝牙固件中的
HCI Read Local Extended Features -----> Secure Connections “Yes” 【说明蓝牙加密走的是先进的加密方式】
|
|
变成
|
|
HCI Read Local Extended Features -----> Secure Connections “No” 【说明蓝牙加密走的是落后的加密方式,默认值就是NO,兼容一些老设备、旧设备】
拓展:
Secure Connections (安全连接)这是蓝牙4.2版本引入的一项至关重要的安全增强特性。
在Secure Connections出现之前,蓝牙使用的是称为“Legacy Pairing”的配对方式,其加密强度较弱,容易受到攻击。
Secure Connections 引入了:
a.更强大的加密算法:使用基于椭圆曲线密码学的FIPS兼容算法,大大增强了配对过程和后续连接的安全性。
b.抗中间人攻击能力:提供了更强的身份验证,使得中间人攻击变得极其困难。
c.更长的密钥长度:使用256位的椭圆曲线密钥,而旧方法只使用16-24位的PIN码派生密钥。
当你在HCI命令的响应中看到 Secure Connections -----> “Yes” 时,这意味着:你的蓝牙硬件控制器已经明确宣告:它支持蓝牙4.2或更高版本中定义的、更强大的“安全连接”协议。
问题分析:
现有项目table_patch.bin(蓝牙固件中的一个bin)中存在该Secure Connections属性值=Yes,在将这个bin加载到芯片后,蓝牙协议栈回读该属性值=No
深入分析bsp驱动侧在做wifi firmware log收集过程中对wifi&BT的固件做了卸载又加载的过程,然而正常的系统启动时也去将固件做加载动作,这两条线路是并行的,引起二次加载过程中出现向芯片中加载失败情况(当然发现这个情况过程有些曲折,此处忽略)
总结:a正在做x业务,同一时间,b也在做x业务; 这时容易出现问题 解决方案:串行执行a, b业务