IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> SELinux_Treble学习记录 -> 正文阅读

[移动开发]SELinux_Treble学习记录

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.imgODM用于启动kernelY
odm.imgODM包含设备特定代码和配置N
boot.imgandroid platform(kernel/ramdisk)包含linux kernel + android pacthesY
recovery.imgandroid platform刷机N
system.imgandroid platform包含多数android frameworkY
verdor.imgSOC Vendor包含 SoC特定代码和配置N
radioSOC Vendor包含专有调制N
oem.imgOEM包含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

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-29 16:26:00  更:2021-11-29 16:27:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:07:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码