SELinux_Treble学习记录

参考文档:https://source.android.google.cn/security/selinux/images/SELinux_Treble.pdf

android-8.0在android框架上有了大的改动,引入了Treble元素,旨在让制造商以更低的成本更轻松、更快速地将设备更新到新版 Android 系统。其中一点就是SELinux的改动。

SELinux是一个用于控制路径、设备、文件、进程、socket的读写权限标签系统,这个标签也被称为context。

android-4.4至android7.0将全部的SELinux策略(platform 和 non-platform)build到了root目录下的一个文件中,这样一来每当有policy改动时SoC vendor和ODM partners就不得不改动boot.img(non-A/B devices)或system.img(A/B devices)。可想而知引起的改动之大。

android-8.0后实现了策略模块化,vendors和partners只需要改动涉及他们对应的分区内容。

android 设备的分区

分区 归属 说明 是否必须
bootloader.img ODM 用于启动kernel Y
odm.img ODM 包含设备特定代码和配置 N
boot.img android platform (kernel/ramdisk)包含linux kernel + android pacthes Y
recovery.img android platform 刷机 N
system.img android platform 包含多数android framework Y
verdor.img SOC Vendor 包含 SoC特定代码和配置 N
radio SOC Vendor 包含专有调制 N
oem.img OEM 包含DEM和运营商先关配置 N

主要路径:

一、SElinux的toybox命令行

@ /external/toybox/toys/android/

设置当前 SELinux 模式:

@ /external/toybox/toys/android/setenforce.c
命令:setenforce 0,或者 setenforce permissive,设置为宽容模式。
命令:setenforce 1,或者 setenforce enforcing,设置为强制模式。
注意,前提是selinux 是 enable的。

获取当前 SELinux 模式:

@external/toybox/toys/android/getenforce.c
命令:getenforce,会获取到三种状态,Disable,Enforcing,Permissive。

其他命令

getprop、load_policy、log、restorecon、runcon、sendevent、setprop、start等。

二、selinux的配套命令行工具实现

@ external/selinux,
1)toybox命令调用的具体实现,@external/selinux/libselinux/
2)检测(chkcon)和执行(libsepol)二进制安全策略,@external/selinux/libsepol/
3)SELinux编译器,依赖libsepol,@external/selinux/checkpolicy/

三、android SELinux策略配置

@system/sepolicy/,该目录一般不允许修改。
编译后会包含 SELinux 内核安全策略,并涵盖上游 Android 操作系统。
包含:

  1. 上下文描述文件(xxx_contexts),为对象指定标签。
  2. 策略文件(*.te),用于定义域(domain)及其标签(lable)。
  3. Android.bp/.mk,build 逻辑。

四、自定义policy文件

@/device/manufacturer/device-name/sepolicy/
新增policy时需要在device目录下目录,然后注意修改/device/manufacturer/device-name/BoardConfig.mk以引用 sepolicy 子目录和每个新的policy文件。

内核中启用 SELinux

CONFIG_SECURITY_SELINUX=y

SELinux_Treble学习记录相关推荐

  1. Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)

    Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...

  2. HTML5与CSS3权威指南之CSS3学习记录

    title: HTML5与CSS3权威指南之CSS3学习记录 toc: true date: 2018-10-14 00:06:09 学习资料--<HTML5与CSS3权威指南>(第3版) ...

  3. springboot @cacheable不起作用_Springboot学习记录13 使用缓存:整合redis

    本学习记录的代码,部分参考自gitee码云的如下工程.这个工程有详尽的Spingboot1.x教程.鸣谢! https://gitee.com/didispace/SpringBoot-Learnin ...

  4. 【Cmake】Cmake学习记录

    Cmake学习记录 1.1 常例 add_library(gen_reference_infogen_reference_info/gen_reference_info.hgen_reference_ ...

  5. ASP.NETCore学习记录(一)

    ASP.NETCore学习记录(一) asp.net core介绍  Startup.cs  ConfigureServices  Configure  0. ASP.NETCore 介绍 ASP.N ...

  6. Android开发技术周报176学习记录

    Android开发技术周报176学习记录 教程 当 OkHttp 遇上 Http 2.0 http://fucknmb.com/2018/04/16/%E5%BD%93OkHttp%E9%81%87% ...

  7. add函数 pytorch_Pytorch学习记录-Pytorch可视化使用tensorboardX

    Pytorch学习记录-Pytorch可视化使用tensorboardX 在很早很早以前(至少一个半月),我做过几节关于tensorboard的学习记录. https://www.jianshu.co ...

  8. java之字符串学习记录

    java之字符串学习记录 public class StringDemo { public static void main(String[] args) { //静态初始化字符串 String s1 ...

  9. Redis的学习记录

    Redis的学习记录 1.先导了解 1.1 NOSQL概述 1.1.1 为什么要用NoSql? 1.1.2 NoSql了解 1.1.3 NoSql特点 1.1.4 NoSQL的四大分类 2. Redi ...

最新文章

  1. 浙大博士130页论文,教你用人工智能挑西瓜
  2. 近期活动盘点:2019第六届世界互联网大会、面向智慧城市的人本尺度城市形态:理论方法与实践讲座、高级管理人员AI大数据能力研修班...
  3. [转载]关于Java reference的一篇博文
  4. 计算机考试一级考试基础知识,2016计算机一级考试msoffice基础知识
  5. 37.拷贝控制和资源管理
  6. js正则匹配闭合标签_正则匹配闭合HTML标签(支持嵌套)
  7. ros构建机器人运动学模型_机器人开源控制软件 OROCOS
  8. Rust 编程语言曝高危漏洞,可导致文件和目录遭删除
  9. VS+Qt应用开发-设置鼠标光标
  10. mysql jemalloc_安装 jemalloc for mysql
  11. IOS 申请相机权限崩溃
  12. 【vlan间通信的小玩法】在三层交换机上做ospf
  13. DSPE-PEG7-NHS ester分子式:C63H1117N2O20P琥珀酰亚胺PEG连接剂
  14. C++stoul、stoull 函数用法
  15. surface pro4 多点触控失灵及触控笔失灵问题的解决
  16. OpenCV.反阈值二值化
  17. 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已
  18. SQL server 除法计算百分比
  19. python怎么循环终止_Python 循环终止语句的三种方法小结
  20. opengl入门基础-画正方形

热门文章

  1. 金蝶EAS系统,凭证接口,凭证重复,系统已经引入过凭证
  2. 2019年最新面试动脑学院安卓 笔记安卓高级进阶-连接天天模拟器和adb常用命令
  3. ERP系统31.83版本发布,八大新功能助力企业管理
  4. caplusDB君 · 行业新闻汇编(12月25号)
  5. 乔布斯生母不知儿子去世
  6. oracle脚本导出数据文件
  7. 360等中概股遭遇找壳难 回归A股不容易
  8. 天正T20 V5.0软件及安装破解教程
  9. window10 Web服务器配置IIS的环境搭建
  10. 双正电气变频器说明书_【132G-A3 通用型变频器 高品质变频器】_浙江双正电气有限公司...