软硬件环境
- OTT BOx with android 5.1.1
前言
在应用程序启动之前,往往需要在Android
启动过程中去对系统做一些设置,如修改某些文件夹的属主和文件的权限等。本文实现在init.*.rc
中调用shell
脚本,而所有对系统资源的修改和配置都在此shell
脚本中实现,最后讲一下关闭android selinux
的三种方法。
Shell脚本
这里以创建蓝牙设备结点为例,shell
文件名为makebtusb0.sh
,在脚本中创建结点,然后修改结点属性,具体如下
#! /system/bin/sh
mknod /dev/btusb0 c 180 194
chmod 777 /dev/btusb0
修改init.${platform}.rc文件
这个文件一般是放在device
目录下,如果没有的话,也可以直接加到init.rc
中
service makenode /system/etc/makebtusb0.sh
class main
user root
group root
oneshot
上述命令中,包含一些android init language
的知识点,如果想了解的话,请见参考资料1,写得非常详细。
关闭Android selinux的几种方法
刚好在集成蓝牙驱动中碰到了这个问题,就在这里一并记录下,希望其他朋友少走弯路
方法一
setenforce 0
方法二
echo 0 > /sys/fs/selinux/enforce
方法三
编辑BoardConfig.mk
文件
BOARD_KERNEL_CMDLINE := console=ttyS0,115200n8 androidboot.hardware=zx2000 androidboot.serialno=01234567890123456789 androidboot.selinux=permissive
方法一和方法二适合在终端中执行,当然放在这篇文章中,也可以利用shell
脚本实现。方法三在源码中设定,编译打包镜像后就不用再做设置,推荐用这种方法。