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

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



