Android启动之bluetooth

编程入门 行业动态 更新时间:2024-10-10 16:23:35

<a href=https://www.elefans.com/category/jswz/34/1771384.html style=Android启动之bluetooth"/>

Android启动之bluetooth

         前一段时间我们分析了kernel中bluetooth的初始化操作,从这一章起,晓东将会和大家一起正式进入到Android中bluetooth的分析。毫无疑问,我们依然需要知道在Android启动的时候,蓝牙究竟有做些什么。

         首先我们来回顾一下Android启动的一般流程,有人把它归结为4个步骤,分别为1)init进程启动;2)Native服务启动;3)System server,Android服务启动;4)Home启动。那么,我们来一个个看在这几个步骤中,都有哪些是和蓝牙有关的。

1、init中的bluetooth

 

#首先是创建了两个文件夹和bluetooth相关mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth
mkdir /data/misc/bluetooth 0770 system system
#新建了一个dbus的service,dbus是用于bluez和jni层交互的
#细心的同学已经发了,他是没有disabled的,所以,会直接启动哦
#不过dbus只是一个通路而已,我们暂时并不准备去详细地分析
service dbus /system/bin/dbus-daemon --system --noforkclass mainsocket dbus stream 660 bluetooth bluetoothuser bluetoothgroup bluetooth net_bt_admin
#新建了bluetoothd的service,这个就是bluez了
service bluetoothd /system/bin/bluetoothd -nclass mainsocket bluetooth stream 660 bluetooth bluetoothsocket dbus_bluetooth stream 660 bluetooth bluetooth# init.rc does not yet support applying capabilities, so run as root and# let bluetoothd drop uid to bluetooth with the right linux capabilitiesgroup bluetooth net_bt_admin miscdisabled
#这里就是各个文件的权限配置了chmod 666 /dev/ttyS0chmod 666 /proc/bluetooth/sleep/protochmod 666 /sys/class/rfkill/rfkill0/statechmod 666 /sys/class/rfkill/rfkill0/typechown bluetooth bluetooth /sys/class/rfkill/rfkill0/statechown bluetooth bluetooth /sys/class/rfkill/rfkill0/type
#一个hciattach的service,hciattach是bluetooth的一个工具,这里可以用来启动蓝牙
#涉及到一些vendor的信息后面就写成***了
service hciattach /system/bin/logwrapper /system/bin/hciattach -n /dev/ttyS0 ***class mainuser bluetoothgroup bluetooth net_bt_admindisabledoneshot</

更多推荐

Android启动之bluetooth

本文发布于:2024-02-11 15:38:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1681782.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Android   bluetooth

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!