android selinux报avc denied权限和编译报neverallow解决方案

news/2024/11/14 19:53:55/

avc: denied { read } for name=“present” dev=“sysfs” ino=42693 scontext=u:r:hal_health_default:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
denied {xxx}: 表示缺少什么权限
scontext:表示谁缺少权限
tcontext:表示对那些文件缺少权限:
tclass:表示什么文件类型缺少权限
修改公式如下:
通常需要在${scontext}.te添加 allow scontext tcontext:tclass denied
带入内容:修改hal_health_default.te
allow hal_health_default sysfs:fie { read };
allow hal_health_default sysfs:fie { open};

RK平台te文件一般在device/rockchip/common/sepolicy/下 类似上面的修改即可

如果编译时报错 提示

libsepol.report_failure: neverallow on line 444 of system/sepolicy/public/domain.te (or line 12990 of policy.conf) violated by allow tee device:chr_file { read write };
libsepol.check_assertions: 1 neverallow failures occurred
Error while expanding policy

报错原因也比较直接,就是domain域中指明的规则,我们先看下为什么会报错吧
直接打开编译报错中那个domain.te,路径:system/sepolicy/public/domain.te,找到和我们添加的部分,搜索“device:chr_file”,可以找到如下内容了,看一下就明白了,不允许我们这样修改了。

# Don't allow raw read/write/open access to generic devices.
# Rather force a relabel to a more specific type.
neverallow domain device:chr_file { open read write };

以下是实例,我这边提示system_app权限异常

avc: denied { read } for name="u:object_r:serialno_prop:s0" dev="tmpfs" ino=12228 scontext=u:r:system_app:s0 tcontext=u:object_r:serialno_prop:s0 tclass=file permissive=1

在device/rockchip/common/sepolicy/system_app.te下修改

allow system_app serialno_prop:file { open read getattr };

提示neverallow错误 找到对应的domain.te

system/sepolicy/public/domain.te

# a few whitelisted domains.
neverallow {domain-adbd-dumpstate-hal_drm-hal_cas-init-mediadrmserver-recovery-shell-system_server
} serialno_prop:file r_file_perms;

查看到serialno_prop:file,其实直接将domain修改为-domain即可

neverallow {-domain-adbd-dumpstate-hal_drm-hal_cas-init-mediadrmserver-recovery-shell-system_server
} serialno_prop:file r_file_perms;


http://www.ppmy.cn/news/1517293.html

相关文章

华为云 x 容联云|828企业节,助推中国数智产业实力再升级

2024年8月27日,华为第三届828 B2B企业节在2024中国国际大数据产业博览会上正式开幕。 828 B2B企业节是全国首个基于数字化赋能的企业节,由华为联合上万家生态伙伴共同发起,旨在为广大企业尤其是中小企业搭建数字化创新发展平台,融…

关于Arrays.asList返回List无法新增和删除?

这个是在写项目的时候发现的&#xff0c;然后就分析了一下源码&#xff0c;得其内部原理 复现代码示例&#xff1a; public class ArraysAsList {public static void main(String[] args) {Integer[] array {1, 2, 3, 4, 5};List<Integer> list Arrays.asList(array);…

网络通信tcp

管道通信与数据复制管道通信确实涉及数据复制的过程&#xff0c;这是由于管道的工作原理所决定的。下面详细解释一下&#xff1a;管道通信的数据复制 1. 写入管道&#xff1a;•当一个进程通过 write() 系统调用向管道写入数据时&#xff0c;数据实际上是从进程的用户空间复制…

PTA L1-010 比较大小

L1-010 比较大小&#xff08;10分&#xff09; 本题要求将输入的任意3个整数从小到大输出。 输入格式: 输入在一行中给出3个整数&#xff0c;其间以空格分隔。 输出格式: 在一行中将3个整数从小到大输出&#xff0c;其间以“->”相连。 输入样例: 4 2 8输出样例: 2-…

【单片机】PICC编译器和XC8编译器的历史发展,有什么关系

PIC 编译器的发展历史及其演变 在嵌入式系统开发领域,Microchip 的 PIC 微控制器因其广泛的应用、简单的架构和高效的性能,成为许多工程师和开发者的首选。在为这些微控制器编写代码时,编译器的选择至关重要。本文将介绍 Hi-Tech C 编译器(PICC)和 MPLAB XC 编译器的发展…

pyro 教程 时间序列 单变量,重尾,python pytorch,教程和实例 Forecasting预测,布朗运动项、偏差项和协变量项

预测I:单变量&#xff0c;重尾 本教程介绍了预测模块&#xff0c;用Pyro模型进行预测的框架。本教程只涵盖单变量模型和简单的可能性。本教程假设读者已经熟悉慢病毒感染和张量形状. 另请参见: 预测II:状态空间模型 预测三:层次模型 摘要 要创建预测模型: 创建预测模型班级…

网络安全系统性学习路线「全文字详细介绍」

&#x1f91f; 基于入门网络安全打造的&#xff1a;&#x1f449;黑客&网络安全入门&进阶学习资源包 一、基础与准备 网络安全行业与法规 想要从事网络安全行业&#xff0c;必然要先对行业建立一个整体的认知&#xff0c;了解网络安全对于国家和社会的作用&#xff0…

裸金属机的算力共享支持怎么实现

目录 裸金属机的算力共享支持怎么实现 一、技术架构 二、资源调度 三、安全保障 四、应用场景适配 裸金属机通过ssh实现远程调度 1. SSH配置 2. 远程登录 3. 远程命令执行 4. 自动化脚本 5. 安全注意事项 裸金属机的算力共享支持怎么实现 裸金属机的算力共享支持实…