msm8953+android8.1蓝牙名称修改、多产品采用不同名字的兼容
发布日期:2021-06-30 22:00:57 浏览次数:2 分类:技术文章

本文共 1271 字,大约阅读时间需要 4 分钟。

1. 蓝牙名称定义的位置

\device\qcom\common\bdroid_buildcfg.h中定义#define BTM_DEF_LOCAL_NAME   "QCOM-BTD"

BTM_DEF_LOCAL_NAME 被system\bt\btif\src\btif_dm.cc的btif_default_local_name()中调用

这里可以看出如果BTM_DEF_LOCAL_NAME的值不为空,那么蓝牙名称采用BTM_DEF_LOCAL_NAME来赋值;如果为空,则采用PROPERTY_PRODUCT_MODEL,

#define PROPERTY_PRODUCT_MODEL "ro.product.model"

ro.product.model在build/tools/buildinfo.sh中赋值

echo "ro.product.model=$PRODUCT_MODEL"

PRODUCT_MODEL在build目录下有定义,但一般是使用device/qcom/msm8953_64/msm8953_64.mk下的定义,比如 PRODUCT_MODEL :=msm8953 for arm64

 

bdroid_buildcfg.h文件在\device\qcom\common\base.mk中被引入:

BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/qcom/common

2. 不同产品在编译阶段能够采用不同名字

因为我们是共用一套代码,比如A产品蓝牙名称为Bluetooth_A,B产品蓝牙名称为Bluetooth_B,怎么实现这个兼容呢,有几种方法总结下:

2.1 方法一,overlay思想,其实是引用产品对应的h头文件

从上面可知定义了蓝牙名称的bdroid_buildcfg.h位于\device\qcom\common目录下。我们可以通过不同产品来引入不同产品目录的这个h文件,比如device\qcom\msm8953_64\BoardConfig.mk增加

BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR :=  device/qcom/msm8953_64/product_$(DEVELOP_PRODUCT)/bluetooth_overlay

DEVELOP_PRODUCT对应编译时选择不同的产品,比如A,把bdroid_buildcfg.h放在product_A/bluetooth_overlay下即可。

但奇怪的是在msm8953_64.mk同样的操作没有生效

2.2 方法二,让BTM_DEF_LOCAL_NAME为空,通过PRODUCT_MODEL来兼容

根据btif_default_local_name()的流程,如果BTM_DEF_LOCAL_NAME为空,那么根据PRODUCT_MODEL来赋值,而PRODUCT_MODEL我们已经根据不同产品设置不同名称,所以用这种方法最佳。

转载地址:https://loongembedded.blog.csdn.net/article/details/90203213 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:msm8953+android8.1接听电话时声音由默认听筒输出改为外放输出
下一篇:git apply、git am打补丁.diff 和 .patch

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年05月04日 21时55分36秒