Android 蓝牙配对信息 link key存储路径和修改蓝牙默认名称

本文档深入解析Android蓝牙的配对流程,包括A2DP、AVRCP、HFP、OPP和BLE的连接源码分析。重点讨论了链路密钥LinkKey的生成与存储位置(/data/misc/bluedroid/bt_config.conf),以及如何修改蓝牙设备的默认名称。系统会优先读取BTM_DEF_LOCAL_NAME,若为空则使用设备型号作为蓝牙名。
摘要由CSDN通过智能技术生成

1.Android 蓝牙配对信息 link key存储路径

android-蓝牙A2dp-avrcp-hfp-opp-配对流程-ble-rfcomm源码流程
Android 蓝牙配对连接源码分析文档大全 - 点击下载

蓝牙配对是整个蓝牙连接过程中必不可少的环节,配对的目的是通过各种方法创建共享的 链路密钥(Link Key),该密钥用于设备间连接时认证鉴权并加密相互交互的数据,使得蓝牙技术更具有安全行。密钥不但可以用于当前的连接中,还可以用于两个设备后续的重连过程中,但是鉴权过程中如果比较双方的Link Key不一致,则必须重新开始配对流程,从而创建新的链路密钥(Link Key)用于新的连接交互流程。

链路密钥(Link Key)通过HCI命令HCI_Link_Key_Notification上报协议栈Host并保存,存储路径:/data/misc/bluedroid/bt_config.conf (具体文件路径根据手机类型动态调整)

存储内容如下图:

2.修改蓝牙默认名称

安卓系统会首先读取BTM_DEF_LOCAL_NAME的值,如果为空,就使用"ro.product.model"作为蓝牙设备名。

system/bt/btif/src/btif_dm.cc

#define PROPERTY_PRODUCT_MODEL "ro.product.model"

......

static char* btif_get_default_local_name() {

if (btif_default_local_name[0] == '\0') {

int max_len = sizeof(btif_default_local_name) - 1;

if (BTM_DEF_LOCAL_NAME[0] != '\0') {

strncpy(btif_default_local_name, BTM_DEF_LOCAL_NAME, max_len);

} else {

char prop_model[PROPERTY_VALUE_MAX];

osi_property_get(PROPERTY_PRODUCT_MODEL, prop_model, "");

strncpy(btif_default_local_name, prop_model, max_len);

}

btif_default_local_name[max_len] = '\0';

}

return btif_default_local_name;

}

device/qcom/common/bdroid_buildcfg.h

#define BTM_DEF_LOCAL_NAME "QCOM-BTD"

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值