android 8.1 user版本sepolicy添加allow后不生效问题

[ Android实战 ] selinux 策略修改不生效的问题解决 前段时间移植系统应用到新平台的时候,发现存在一个selinux的问题。按照平时的方式加了对应的selinux策略后,依然会报同样的selinux权限错误。因此借此机会研究了一下selinux的问题,写下了此篇博客。 阅读详情

android 8.1中在SystemUI里面添加了通过jni对驱动节点的ioctl操作,编译user版本的时候受selinux限制,在device目录下的sepolicy下的platform_app.te中添加了ioctl 允许语句,但是还是提示没有权限。打印如下log:

ndroid.systemui: type=1400 audit(0.0:17): avc: denied { ioctl } for path="/dev/mmled" dev="tmpfs" ino=1174 ioctlcmd=44 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:mmled_device:s0 tclass=chr_file permissive=0

 

后面查找资料(参见https://www.jianshu.com/p/66062e509d13),是由于Mutil-Level Security(MLS)机制导致的操作被denied了。

 

需要在platform_app.te中添加type platform_app, domain, mlstrustedsubject; 即可解决

注意需要在system/sepolicy/public/platform_app.te下添加,device下的platform_app.te为扩展文件,添加了编译会报Duplicate declaration of type重复添加错误。

Android SELinux与Sepolicy配置实战:从avc denied到权限管理 强制访问控制(MAC)是现代操作系统安全架构的核心机制之一,它通过为每个进程和资源分配安全标签,实施最小权限原则,有效防止权限滥用。在Android系统中,SELinux作为强制访问控制的具体实现,通过Sepolicy策略文件定义精细的访问规则。理解SELinux的工作原理对于系统安全加固、ROM定制和驱动集成至关重要,尤其是在处理硬件访问、Binder通信等场景时。本文聚焦于Android开发中常见的avc denied问题,通过实战演示如何为新增系统服务配置Sepolicy策略,涵盖类型定义、文件上下文 阅读详情

相关推荐

Android SELinux从入门到精通:安全策略实战与深度调试指南

强制访问控制(MAC)是构建现代操作系统安全体系的核心机制,它通过在传统的自主访问控制(DAC)之上,建立一套由安全策略强制执行的、更细粒度的权限管理模型。其原理是为系统中的所有主体(如进程)和客体(如文件)赋予安全上下文标签,并依据预定义的策略规则严格管控访问行为,从而有效遏制权限提升与横向移动。这项技术的核心价值在于实现“默认拒绝”的安全基线,极大提升了系统对抗漏洞利用和恶意软件的能力,广泛应用于对安全性要求极高的移动设备、服务器和物联网场景。在Android生态中,SELinux作为其安全架构的基石,

weixin_33726313的博客 442

Selinux机制介绍与添加流程

Selinux机制介绍与添加流程 一.Selinux机制介绍 二.Selinux问题分析步骤 三.Selinux添加步骤; 3.1 添加/dev/ttyHSL1 串口字符设备selinux权限; 3.2 添加/sys/class 虚拟设备文件selinux权限; 3.3 添加proc/class 文件selinux权限; 3.4 添加开机脚本的selinux权限; 四.Selinux编译及验证; ...

hjlgs的博客 3502

Android SEAndroid权限机制解析与实战指南

SEAndroid作为Android系统的强制访问控制框架,基于SELinux实现系统资源的安全隔离。其核心机制是通过安全上下文标签系统,为每个进程和资源分配唯一标识,再通过策略文件定义精细的访问规则。这种MAC(强制访问控制)模型相比传统Linux的DAC(自主访问控制)能有效防御提权攻击,即使拥有root权限也无法绕过安全策略。在移动安全领域,SEAndroid权限配置是系统开发的关键环节,涉及服务启动、文件访问、硬件抽象层等多个场景。通过分析avc拒绝日志、编写.te策略文件、使用audit2allo

weixin_30299709的博客 349

Android SELinux 权限问题(二)—添加权限后不生效

​ 通过上面的方法介绍,我们已经知道了,如何添加权限问题,但有时会遇到一个问题就是: 明明已经添加了对应的权限,但是编译固件烧录到板子后,还是会报这个权限没有添加。 1.问题说明 ​ 在实际的项目开发中,遇到了如下图所示的权限问题 通过 audit2allow 工具解析出了需要添加的权限,于是乎我在 untrusted_app.te 文件中添加了对应的权限,如下图所示: 然后,重新编译打包固件,烧录到板子后,发现 “allow untrusted_app proc:file write;" 权限问题仍然

it_rensheng的博客 6492

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

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

weixin_30509393的博客 415

Android SELinux安全机制详解:从MAC模型到策略定制与调试实战

在Linux系统安全领域,强制访问控制(MAC)是一种核心安全模型,它通过系统全局策略对进程和资源的访问进行强制约束,与传统的自主访问控制(DAC)形成互补,共同构建纵深防御体系。SELinux作为MAC在Linux内核的主流实现,其技术价值在于将安全边界从用户级别细化到进程和对象级别,即使root进程也必须遵守策略规则,从而极大限制漏洞或恶意代码的影响范围。在Android系统中,SELinux自5.0版本起全面启用强制模式,成为系统安全的基石,广泛应用于系统服务、硬件抽象层(HAL)及设备制造商(OEM

weixin_33768481的博客 398

Android SELinux 添加权限后不生效

Android SELinux 添加权限后不生效 Android 12上需要对一个节点进行写操作,但是添加了Selinux以后还是报错 allow platform_app yft_temperature_file:file { write read getattr open }; 加了权限还是一直报avc 01-26 09:40:55.556 7891 7891 W yft.factorymode: type=1400 audit(0.0:361): avc: denied { write }..

a785722173的博客 4191

Android SELinux策略实战:为新增系统服务定义安全标签与权限

SELinux作为Linux内核的强制访问控制安全模块,通过为每个进程和系统资源打上安全上下文标签,构建了细粒度的访问控制体系。其核心原理是基于类型强制策略,对主体与客体之间的访问请求进行强制检查,确保只有策略明确允许的操作才能执行。在Android系统开发中,这一机制对于保障系统安全、防止权限滥用具有重要价值。当开发者需要为新增的守护进程或系统服务赋予合法运行权限时,就必须为其定义专属的SELinux域和文件标签,并遵循最小权限原则编写策略规则。本文以Android平台为背景,深入解析了如何通过修改`.t

weixin_34236869的博客 369

[SM6225][Android13]user版本默认允许root和remount

开发平台基本信息芯片: 高通SM6225版本: Android 13问题描述刚刚从Framework踏入性能的小殿堂,User版本默认是不会开启root权限的,而且一般调试需要设置一下CPU GPU DDR performance模式或者修改一些schedule util等调核调频节点去对比复测,userdebug版本的话本身整机性能就比user卡很多,有时候使用userdebug去复测会对测试结果有较大影响,与user测试结果存在很大差距。基线代码判断逻辑:1.adb代码会检测相关属性。

lichuangdada的博客 1805

【AOSP】构建发布版本:从生成发布密钥到系统级APK签名的完整实践

本文详细介绍了AOSP构建发布版本的全过程,从生成自定义发布密钥到系统级APK签名的完整实践。重点解析了替换默认测试密钥的必要性、密钥生成与配置方法,以及如何通过自动化流程确保系统安全。适用于Android系统开发者和厂商,帮助实现安全的系统发布流程。

clijovtbq401783153的博客 454

Android SELinux权限控制:从核心概念到实战调试

在Linux系统中,自主访问控制(DAC)是基础的权限管理机制,通过用户、组和文件权限位控制资源访问。然而在移动设备等复杂环境中,DAC的粗粒度控制存在安全风险。强制访问控制(MAC)机制应运而生,通过预先定义的安全策略对系统所有访问进行细粒度控制,有效实施最小权限原则。SELinux作为MAC在Linux上的实现,为系统安全提供了标签化管理和强制规则检查。在Android开发中,SELinux深度集成于系统架构,用于保护Binder IPC、文件系统和系统服务。理解SELinux的安全上下文、策略规则和域

weixin_34354173的博客 331

Android8.1系统Led的控制从底层到上层的实现

玩了安卓这么久了,你是否有好奇,它的底层到上层或者上层到底层的标准流程是怎么走的呢?这里通过apk操作一个GPIO控制led的亮灭从而实现从上层到底层的完整调用流程。写得不足之处欢迎有识之士不吝赐教,在此先行谢过,技术无边,欢迎各位大牛来此多多交流。 Android Version:v8.0.1 Linux Version:V4.4 Hardware:mtk6739 1、在kernel层,编写和添...

Android/Linux驱动开发传帮带学习,让驱动入门门槛更低! 4411

RK3588安卓开机自启动:从广播接收到系统服务的完整方案

在嵌入式安卓系统开发中,开机自启动是保障设备功能可靠性的基础需求。其核心原理在于理解安卓系统的启动流程,特别是从Init进程到System Server的初始化顺序,以及关键的ACTION_BOOT_COMPLETED广播发送机制。这一机制的技术价值在于为应用提供了系统就绪后的启动入口,但其在Android 8.0后引入了“应用需至少启动一次”的限制,对RK3588这类常用于商显、工业HMI的无头设备构成了挑战。因此,实现稳定自启动需要综合运用多种技术方案。从基础的静态广播接收器,到监听网络变化的迂回启动,

dianchamian8747的博客 410

深入解析MTK平台Android 8.1系统级Root权限实现方案

本文深入解析了MTK平台Android 8.1系统级Root权限的实现方案,详细介绍了修改su文件权限、调整系统编译配置、攻克SELinux安全机制等关键步骤。通过实战案例和技术细节,帮助开发者突破系统分区限制,实现深度定制和高级功能开发,同时兼顾系统安全与性能优化。

weixin_33734785的博客 307

Gemini 3.1安卓安装本质:系统级AI服务激活指南

Gemini已不再是传统App,而是深度集成Android 14+ Neural Core API与Context Hub的系统级AI代理。其运行依赖Google Play Services签名认证、硬件驱动就绪度及区域合规校验三重机制,技术价值在于实现低延迟多模态推理与系统级API调用。典型应用场景包括教育终端批量部署、AI原生应用开发及校园智能终端集成。本文聚焦2026年Gemini 3.1在安卓设备上的真实部署逻辑,详解Neural Core驱动适配与Context Hub权限配置等硬核实践路径。

weixin_30520015的博客 396

RK3588安卓系统开机自启动:从广播到init.rc的四种方案与实战

在嵌入式系统与物联网设备开发中,开机自启动是实现设备自主运行、减少人工干预的核心机制。其原理在于操作系统启动流程中预设的钩子或服务管理机制,允许特定应用或进程在系统引导完成后自动执行。这一技术的价值在于保障关键服务(如数据采集、AI推理或人机界面)的即时可用性,是工控机、边缘计算盒子等产品化设备从“开发板”迈向“可靠产品”的关键一步。应用场景广泛覆盖工业自动化、智能零售终端、AIoT网关等领域。针对瑞芯微高性能AIoT芯片RK3588的安卓系统,实现稳定自启动需深入系统层,本文聚焦于**init.rc脚本*

666

Android 16 SELinux 深入说明

SELinux 早在内核启动就存在,真正的策略执行从 init 加载 policy 并切到 enforcing 后开始。Android 的策略不是单文件,而是多分区、多上下文文件经编译合并后的二进制 sepolicy。TE 的核心是“主体域 + 客体类型 + 类 + 权限”,而 neverallow 是编译期安全红线。

Zero_plucky的博客 311

四、SVN客户端tortoiseSVN的基本功能介绍

档案浏览器(Repo-browser) 鼠标右键–>tortoiseSVN->版本库浏览器 输入版本库URL地址,进入如菜单界面 版本库浏览器支持SVN及http两种最常用的通信协议 SVN服务器访问方式 方法 模式 访问方法 File:// 直接版本库访问(本地磁盘) http:// 通过配置subversion的WEB服务器的WEBDAV协议 http...

也许是我送你哦 1006

android treble项目&&HIDL学习总结

文章目录概念介绍产生背景---Treble项目独立升级framework需求HIDL定义---HAL 接口定义语言,目标framework和HAL解耦HIDL的两种模式---Passthrough直通 / Binderized绑定语法简介举例---hwc composer的HIDL设计分析1、composer hal服务启动rc启动脚本2、composer hal启动流程分析设计思路分析参考 概念介绍 产生背景—Treble项目独立升级framework需求 Android 8.0 重新设计了 Androi

runafterhit的博客 2896

R语言基础之R语言入门

R语言最初是由新西兰奥克兰大学统计系的教授Ross Ihaka和Robert Gentleman在S语言基础上开发完成的。是一门解释性语言。在我看来R语言是一门数学性极强的语言,或者说这是一门为数学而生的语言,因为其具有极其出色的计算与统计分析能力...

weixin_46912400的博客 5万+

Qt5.15.2配置安卓环境

否则,将会跳转到github,你可以自行下载解压到你设置的目录中,然后Qt会自动检测到。以上所需的工具确实有些繁多,而且如果单独下载又涉及科学上网问题,版本问题十分麻烦,好在Qt Creator 4.12之后已经可以自动下载SDK工具,NDK,基础包,openssl,以及gradle等,十分省心。回到正题,无论通过在线安装的方式,安装时勾选了Android,还是编译的方式,编译时编译了Qt Android库,想要使用Qt开发安卓应用仍然需要一些其他工作,包括安装编译安卓项目需要的SDK,NDK等。

weixin_41392061的博客 976
上一篇: android 8.1 蓝牙打不开之CLOCK_BOOTTIME_ALARM问题
下一篇: android 自定义对话框不显示布局问题
「已注销」
博客等级 码龄15年 891粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值