«

Android 蓝牙移植笔记

时间:2024-3-2 18:51     作者:韩俊     分类: Android


在android平台中,经常出现外围设备的移植,其中涉及到比较多模块的修改,比如kernnel, android(hardware, external, package)等模块都可能需求动。


(1)驱动的添加

厂商一般都会给各自的蓝牙器件添加驱动文件(eg:rtk_btusb.c,rtk_btusb.h),添加到drivers/bluetooth/目录即可,如果涉及到uhid模块的话,添加到对应目录即可。

接着修改Kconfig,Makefile加入刚才的模块和文件,通常编译生成KO方便android动态库加载


(2)编译模块的添加

build/core/product.mk : _product_stash_var_list 添加 BORAD_HAVE_BTUETOOTH_RTK

device/{vendor}/{platform}/BoardConfig.mk: 定义BORAD_HAVE_BTUETOOTH_RTK := true ;

BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR ?= device/{vendor}/{platform}/bluetooth

device/{vendor}/{platform}/{platformName}.mk: 添加hardware层蓝牙厂商libbt-vendor_xxx.so以及bluetooth.xxx.so 动态库的编译

如:$(call inherit-product, hardware/realtek/bt/firmware/rtl8723a/device-rtl.mk)指定makefie

编译完之后重写PRODUCT_COPY_FILES ,拷贝frameworks/native/data/etc/android.hardware.bluetooth.xml

frameworks/native/data/etc/android.hardware.bluetooth_le.xml

(3)驱动的加载

编译完成kernel,hardware,各层的驱动库和动态库之后,修改init.{platformName}.rc脚本来加载驱动 ,修改属主和属组;

修改uevent.{platfromName}.rc 修改新增蓝牙设备节点权限

在系统安全上下文文件file_contexts添加该节点的设置

标签: android

热门推荐