Android L1版本上的kernel module加载:sepolicy, kernel, .ko
2016-07-06 13:32
483 查看
背景 | 在Android KK 4.4 版本后,Google 有正式有限制的启用SELinux, 来增强android 的安全保护。 SELinux 分成enforcing mode 和 permissive mode, enforcing mode 会强制性限制访问; 而 permissve mode 只审查权限, 但不限制, 即不会产生实质性影响. KK 版本, Google 只有限制的启用SELinux, 即只有针对netd, installd, zygote, vold 以及它们 直接fork 出的child process 使用enforcing mode, 但不包括zygote fork的普通app. 从L版本起,全面开启SELinux, 几乎所有的process 都使enforcing mode。 |
项目修改原因 | 1. 项目新增红外设备; 2. IR驱动是作为ko加载; 上述两项,都会因为SELinux而出现失败情况。 |
修改方法 | 设备:device/mediatek/common/sepolicy/device.te |
type mmcblk1_block_device, dev_type; | |
type mmcblk1p1_block_device, dev_type; | |
type spm_device, dev_type; | |
+type ir_scx_device, dev_type; | |
工厂测试模式中的设备:device/mediatek/common/sepolicy/factory.te | |
allow factory mtd_device:chr_file rw_file_perms; | |
allow factory self:capability sys_resource; | |
allow factory pro_info_device:chr_file { read write ioctl open}; | |
+ | |
+# Date 2015.9.22 | |
+# Add by | |
+allow factory ir_scx_device:chr_file { read write ioctl open }; | |
文件系统中的设备:device/mediatek/common/sepolicy/file_contexts | |
/dev/ttyACM0 u:object_r:ttyACM_device:s0 | |
/dev/hrm u:object_r:hrm_device:s0 | |
+### Add by | |
+/dev/ir_scx(/.*)? u:object_r:ir_scx_device:s0 | |
META测试中的设备:device/mediatek/common/sepolicy/meta_tst.te | |
# Date: WK15.18 | |
# Purpose: CCT open lens driver fail | |
allow meta_tst lens_device:chr_file { read write open ioctl }; | |
+ | |
+# Date 2015.9.22 | |
+# Add by | |
+allow meta_tst ir_scx_device:chr_file { read write ioctl open }; | |
给予system process操作设备的权限:device/mediatek/common/sepolicy/system_server.te | |
allow system_server nvdata_file:dir search; | |
allow system_server nvdata_file:file { read getattr open }; | |
+# Date: 2015.9.22 | |
+# add by | |
+allow system_server ir_scx_device:chr_file { read write ioctl open }; | |
设置ueventd的设备属性:device/{vendor}/{project}/ueventd.{chip}.rc | |
/dev/devmap 0440 root system | |
/dev/mali0 0666 system graphics | |
/dev/gps 0660 gps system | |
+/dev/ir_scx 0660 system system | |
在init.project.rc中执行insmod操作:device/{vendor}/{project}/init.project.rc | |
chmod 0660 /dev/ttyMT2 | |
chown system system /dev/ttyMT2 | |
# Add for Consumer IR | |
chmod 0777 /system/lib/modules/ir_scx.ko | |
insmod /system/lib/modules/ir_scx.ko | |
ko insmod操作:device/mediatek/common/sepolicy/init.te | |
allow init frp_block_device:blk_file relabelto; | |
allow init userdata_block_device:blk_file relabelto; | |
# Date : 2015.9.23 | |
# Operation : Migration | |
# Purpose : support to load kernel modules. | |
allow init self:capability { sys_module }; |
相关文章推荐
- android studio中svn连接已经下载完的项目
- Android5.0 SnackBar使用小结
- Android NFC P2P开发基础
- Android USER 版本与ENG 版本差异
- Android 官方推荐 : DialogFragment 创建对话框
- Android 5.0 Palette的使用小结
- android6.0源码分析之蓝牙框架简介
- android的shape(四周边框为灰色)
- Android ScrollView中的ListView
- Android之Canvas的相关方法
- Android启动过程深入解析
- Android 开机动画制作 bootanimation.zip
- 云游戏对于Android来说可行吗?
- 解决Android Studio Gradle慢的方法
- Android禁止ViewPager的左右滑动
- Gradle 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- Android TextView显示Html类解析的网页和图片及自定义标签用法示例
- Android手机通过百度定位
- 修改 Android BT默认名字
- 安卓四大控件之Activity详解