SEAndroid与SEpolicy Language简介

Sepolicy学习(一) sepolicy 规则介绍 sepolicy的规则针对的是linux系统中的进程和文件。进程是主动的,而文件是被动的。所以有对应的进程的规则和文件规则,分别定义进程的合法行为和文件被访问的权限。 SELIUNX中,每个对象(进程和文件)被赋予安全的属性。SContext是一个字符串,对于进程的SContext,SContext的格式是"u:r:type[:range]", 进程可以ps -Z获得。 ... 阅读详情

SEAndroid :全称Security Enhancements for Android,以SELinux为核心

SELinux :是美国国家安全局搞的一个Modules,是开源的,后来Google将其应用到自家的Android平台上来

DAC : (Discretionary Access Control ) 在SELinux出现之前,Linux系统所用的安全模型。在这个模型里面,进程所拥有的权限与执行它的用户权限相同,

MAC : (Mandatory Access Control)
SELinux的安全模型,进程所拥有的权限,都必须在安全配置文件(.te)里面定义。这个进程只有在配置文件中定义的权限。

Flask : MAC的大概架构
flask定义了

  • Subject : process 进程,被称之为客体

  • Object: file, socket, IPC object… 对象,是客体访问的对象

  • Security Context : 安全信息,是一个字符串,用来表示subject或object的安全属性

  • Security Identifiers (SID) : 用来map到Security context的一个东西

  • Security Model : 是Type Enforcement (TE), Identity-Based Access Control (IBAC), RBAC, 与 optional MLS的结合,
    其中重点内容是TE。


下面说的文件都在/sepolicy 下面

TE:
定义domain对object的权限

完整的格式如下

rule_name source_type target_type : class perm_set
Type -> processes & object

举个例子,在untrusted app 里面,我们可以在最后找到两行。

allow untrusted_app shell_data_file:file rw_file_perms;
allow untrusted_app shell_data_file:dir r_dir_perms;
这两行允许 untrusted_app 进程,对shell_data_file 下面的文件进行读和写
以及读shell_data_file 目录的权限

其中untrusted_app的定义是非系统app
shell_data_file的定义可以在file_contexts文件夹里面找到

” /data/local/tmp(/.*)? u:object_r:shell_data_file:s0 ”

这行整体来看叫做security labeling,右边是security context,左边是这个context与什么文件路径链接起来。
然后详细说一下security context的构成部分。
最左边的u表示user,在users里面定义。
object_r是roles,在SEAndroid里面,一个user可以属于不同的roles。
最后的s0是security level,SEAndroid里面给系统资源都分配了一个security level,只有有对应的security level的进程才能访问这些资源。

知道了这些内容,我们差不多就可以根据实际情况添加对应的security policy了。
比如untrusted_app是不能在自己的目录下面创造文件夹和文件的。
如果在untrusted.te加上这两行之后:
>
Allow untrusted_app shell_data_file:file create_file_perms
Allow untrusted_app shell_data_file:dir create_dir_perms

untrusted_app就有了在/data/local/tmp里面创建文件和文件夹的权限。

参考资料:
http://blog.youkuaiyun.com/innost/article/details/19299937 (这篇文章对于SEAndroid有很详细的介绍)
https://seap.samsung.com/developer/forum-topic/what-does-security-policy-prevents-installation-application-mean

Android 应用(1)——安全策略sepolicy https://blog.youkuaiyun.com/weixin_38148680/article/details/80257685 http://www.voidcn.com/article/p-stzeacwv-xe.html https://blog.youkuaiyun.com/keheinash/article/details/101108686 https://blog.youkuaiyun.com/rikeyone/article/details/84337115 https://blog.youkuaiyun.com/u0112164 阅读详情

相关推荐

Android SEAndroid权限机制与问题解决指南

SELinux作为Linux内核的安全模块,通过强制访问控制(MAC)机制为系统提供细粒度的安全策略。在Android系统中,Google基于SELinux开发了SEAndroid框架,从Android 4.3开始引入,用于增强系统安全性。SEAndroid通过定义类型强制(Type Enforcement)策略,为每个系统对象分配安全上下文,有效解决了传统Linux自主访问控制(DAC)的权限滥用问题。在移动设备安全领域,SEAndroid策略配置是开发过程中常见的技术挑战,约60%的底层权限问题与之相关

weixin_30509393的博客 419

【Android】SELinux初探

查看/data/local/tmp路径下文件的context Sunday:/data/local/tmp $ ls -Z u:object_r:shell_data_file:s0  tServer 可以看到关键词shell_data_file Sunday:/data/local/tmp $ ./tServer add mySe

aaajj的专栏 1176

Android VINTF机制解析:接口清单与兼容性检查的核心原理与实践

在Android系统开发中,硬件抽象层(HAL)与框架层之间的接口兼容性是确保系统稳定运行的基础。VINTF(Vendor Interface)作为Android Project Treble架构的核心组件,通过标准化的清单文件和兼容性矩阵,定义了框架与供应商实现之间的接口契约。其工作原理是在系统启动和OTA更新时,执行双向匹配检查,验证HAL服务版本、内核配置及SEPolicy等关键元素是否符合要求。这一机制从技术层面解决了Android生态长期存在的碎片化问题,为系统升级和设备兼容性提供了可靠保障。对于

weixin_33908217的博客 396

Android sepolicy简要记

安全上下文 Seapp_contexts File_contexts Service_contexts Property_contexts Hwservice_contexts 安全策略 常见错误修改 违反规则的同时又neverallow问题修改 方式一:更改type 方式二 通过binder/socket 等方式连接APP 访问 方式三 更改Label Process 无法访问某个新增d...

ch853199769的博客 2万+

Android SELinux——Sepolicy基础语法(四)

Linux 中有两种东西,一种死的(Inactive),一种活的(Active)。活的东西就是进程,而死的东西就是文件(Linux 哲学,万物皆文件。注意,万不可狭义解释为 File,普通文件、特殊文件、套接字等都属于文件范畴)。他们之间就是一种使用(操作)与被使用(被操纵)的关系,进程能发起动作(例如它能打开文件并操作它),而文件只能被进程操作。

小旭的专栏 1708

SELinux系列(三)——SELinux的三种工作模式

通过对 SELinux 的介绍,初学者可以这样认为,在传统 Linux 系统使用访问控制方式的基础上,附加使用 SELinux 可增强系统安全。那么,SELinux 是如何运行的呢? 在解释 SELinux 的工作模式之前,先解释几个概念。 主体(Subject):就是想要访问文件或目录资源的进程。想要得到资源,基本流程是这样的:由用户调用命令,由命令产生进程,由进程去访问文件或目录资源。在自主访问控制系统中(Linux 默认权限中),靠权限控制的主体是用户;而在强制访问控制系统中(SELinux..

信息安全领域优质创作者|操作系统领域专家 2033

Android Sepolicy 介绍及配置

SeAndroid 指的是安卓系统中的安全增强功能,全称为 Security-Enhanced Android。它是基于SELinux(Security-Enhanced Linux)的安全机制,在安卓系统中提供了更加细粒度的安全控制和权限管理。SeAndroid 的作用包括但不限于以下几个方面:强化安全性:SeAndroid通过实施强制访问控制(MAC)策略,限制了应用程序和进程对系统资源(如文件、设备、网络等)的访问权限。这有助于防止恶意应用程序获取系统敏感信息或对系统进行破坏。

qq_45527937的博客 2320

安卓ai自动化脚本 Yyds.Auto实现 示例 纯ai图像识别自动点击脚本

纯ai识别实现自动化脚本

专注安卓前沿科技 4784

android sepolicy 最新小结

文章目录 两种模式 SELinux initialization 标签、规则和域 实现 SELinux neverallow 规则 编译sepolicy Source files Platform public sepolicy Platform private sepolicy Platform private mapping sepolicy兼容性 File ...

pan0755的博客 2123

骗分导论 CSP、NOIP、蓝桥杯、PAT、USACO等竞赛的算法骗分技巧 轻松省三

问题来了,那么多座桥,炸一座就破坏岛屿的联系,可能性微乎其微(除非特别设计数据)。它们的价值极大,不仅能初步帮你检验程序的对错,而且,如果你不会做这道题,你就可以直接输出样例!在OI考试中最后难的题数据最后的几个,他们往往不会创造新的数据,此时就可以直接输出最后几个数据了。需要运用《骗分导论》第3章中学到的知识,先写出朴素算法,然后造一些数据,可能就会发现规律。有些时候,问题的答案可能很有特点:对于大多数情况,答案是一样的。据说,在NOIP2013中,有人最后一题不会,愤然打了个随机数,结果得了。

星卯教育-信奥教练tony 6405

基于ZYNQ7020芯片(黑金开发板AX7020)之AXI-FULL DDR的PL与PS交互操作。

在该工程中我们使用了PS端的串口接收功能,PS端串口接收和发送分别有一个64字节的FIFO,但是因为串口接收阈值设置为16,所以固定接收16个字节数据后才会发生中断。此测试工程得到以前知识的总结和各大网友的支持,只希望可以为学习的你更进一步,大家一起学习才是真的开心。加油,国产芯片之路。

landyjzlai的博客 3192

selinux-sepolicy配置

一、概念 1. 运行模式 Selinux有两种运行模式:Permissive和Enforcing。未明确配置权限,当访问时默认权限是拒绝。为方便开发调试权限配置,单个domain可设置为permissive模式,permissivedomain。 语法格式 Selinux依赖于标签来匹配操作和策略,标签决定什么是允许的,套接字、文件和进程都在selinux中有标签。 Selinux决策基于分配给这些对象的标签和定义它们如何交互的策略,label的格式:user:role:type:m...

卓越之路 7410

【目标检测】全局上下文感知的详解

目标检测中的全局上下文感知(Global Context Awareness)​是指模型在定位和识别目标时,能够有效利用图像中全局或大范围的上下文信息(如场景语义、目标间关系、空间布局等),而不仅仅依赖局部特征。这种能力显著提升了检测的鲁棒性,尤其是在复杂场景(如遮挡、小目标、密集目标)中表现突出。

浩瀚之水的专栏 650

sepolicy 配置和快速验证

sepolicy修改后 快速验证 编译:(只针对 .te 的文件, 如果file_contexts service_contexts 这种文件好像不行) make selinux_policy -j8 // vendor 和system 都修改了 make selinux_policy_nonsystem -j8 // 只修改 vendor相关的sepolicy 编译成功后,只需要替换如下文件 vendor_sepolicy.cil,即可快速验证 /vendor/etc/selinux/vend...

kanyou222的专栏 2818

1分钟了解LangChain是什么?

是一个基于大型语言模型(LLM)开发应用程序的框架, 它旨在简化语言模型应用的开发流程,特别是在构建对话系统和其他基于语言的AI解决方案时.目标是将复杂的语言模型技术转化为可通过简单API调用实现的功能,从而使开发者能够更加专注于创造性的解决方案设计。高效地解决了开发大语言模型应用的痛点问题。Langchain 最主要的特色是可以将 LLM 应用研发过程中的交互 Prompt、LLM 模型调用、语言模型与环境互动的自适应等方式融为一体。

gorgor在码农 2630

基于Simulink的固态变压器(SST)多级协同控制

本文基于Simulink平台,详细介绍了固态变压器(SST)多级协同控制的建模与仿真方法。针对SST三级架构(AC-DC、DC-DC、DC-AC)存在的级间耦合问题,提出了纵向解耦与横向联动的协同控制策略。通过搭建10kV/400V级联型SST系统模型,实现了输入电压波动±20%或负载0-100%跳变时直流母线电压波动小于2%的控制目标。文章详细讲解了Simulink建模步骤、控制算法推导及工程部署建议,包括功率前馈控制、虚拟惯性算法等关键技术。仿真结果表明,该协同控制方案能有效抑制负载突变时的电压波动,为

MHD0815的博客 214

Android Selinux详解[八]--常用sepolicy函数和权限组说明

Selinux中有很多函数,比如domain_auto_trans, r_dir_file等等,可以见源码中定义的地方举例一两个看一下。

weixin_41028555的博客 2791

【第2章>第10节】深度学习DenseNet模型分析与matlab仿真

本文介绍了基于DenseNet深度学习模型的图像分类MATLAB实现方法。主要内容包括:1. DenseNet模型原理,详细解析了初始卷积层、密集块、过渡层等核心结构;2. 在MATLAB环境下完成DenseNet工具箱安装和测试样本准备;3. 实现图像预处理(统一缩放为224×224)、模型训练和测试的完整流程;4. 提供了混淆矩阵和准确率等测试结果分析。文章附带完整的MATLAB程序代码和操作视频教程,适合深度学习初学者快速掌握DenseNet模型的图像分类应用。通过实际测试,验证了该方案的有效性。

FPGA/MATLAB学习教程/源码/项目合作开发 330

Android9 Sepolicy规则基础 - MTK平台

1. SELinux的基础原则 默认拒绝原则 - 任何未经明确允许的行为都会被拒绝(即:白名单制) 2. SELinux的两种执行模式 宽容模式 - 权限拒绝事件会被记录下来,但不会被强制执行。(权限不够时,仅警告) 强制模式 - 权限拒绝事件会被记录下来并强制执行。(权限不够时,拒绝执行) 3. SELinux在安卓平台上的演变 低于安卓4.3 - 默认不支持SELinu...

技海淘金 6008

锂电池的充电和放电曲线解读

锂电池充放电曲线是反映其性能的关键指标。充电曲线分为恒流和恒压两阶段:恒流阶段电压快速上升,恒压阶段电流逐渐降低;放电曲线则呈现平台期和快速衰减期特征。这些曲线受温度、充放电倍率及材料体系(如三元锂或磷酸铁锂)显著影响。通过分析曲线特征,可优化电池管理系统,实现精准的SOC估算、快充策略制定及故障诊断,从而在电池性能与安全性间取得平衡。不同应用场景(如新能源汽车或消费电子)对曲线形态有特定要求。

start_up_go的博客 5070

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android sepolicy安全策略问题解决

在Android Framework开发中经常碰到sepolicy相关问题,它是应用程序缺少对某一“类”(可能是文件、文件夹等)的某种权限(可能是缺少读、写或等等其他权限),其实这类问题并不难,举2个例子来说明 例子1 scontext:platform_app tcontext:fps_data_file tclass:file permission:read 简单的说就是进程为platform...

weixin_45253393的博客 2842

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Android的安全问题 - 在 Android 源码的 system/sepolicy 目录中,区分 public、private 和 vendor的目的

这种划分是 Android 保护核心系统安全、维护兼容性,同时允许厂商灵活定制的重要设计。如果需要扩展策略,优先使用public接口。避免直接依赖private内容。厂商自定义策略应放在vendor目录或设备特定的sepolicy路径。

Android系统工程师--小馬佩德罗 1047

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

android中sepolicy, selinux学习笔记

android sepolicy selinux规范学习,相关问题debug

shellshell13的专栏 9300

【SELinux】总结之策略规则&语法&报错解决

SELinux Policy Language 文章目录SELinux Policy Language一、SELinux语法1. 类型2. 属性 - Attribute2.1 属性是什么2.2 属性的作用2.3 属性的语法与格式2.4 类型与属性的关联操作3. 别名 - Alias二、SELinux策略的规则1. AV规则的分类2. 通用AV规则的语法3. AV规则的秘钥(哈希key)4. 在AV规则中使用属性4.1 特殊类型self4.2 " - " 类型否定5. AV规则中类别和许可相关写法5.1 类别

Philister的博客 7906
上一篇: 三年,接着走吧。
UtralK
博客等级 码龄14年 3粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值