您的位置:首页 > 健康 > 养生 > logo在线生成器免费_房产管理局官网查询入口_百度官方客服平台_西安网站设计公司

logo在线生成器免费_房产管理局官网查询入口_百度官方客服平台_西安网站设计公司

2024/12/25 21:54:00 来源:https://blog.csdn.net/w451062810/article/details/143647563  浏览:    关键词:logo在线生成器免费_房产管理局官网查询入口_百度官方客服平台_西安网站设计公司
logo在线生成器免费_房产管理局官网查询入口_百度官方客服平台_西安网站设计公司

SELinux(Security-Enhanced Linux)是一种强制访问控制(MAC)机制,它为 Android 系统提供了额外的安全层。通过 SELinux,系统管理员可以定义细粒度的安全策略,限制进程对文件、网络和其他资源的访问。本文将详细介绍如何在 Android 上增加 SELinux 权限。

1. 了解 SELinux 模式

在开始之前,了解 SELinux 的不同模式是很重要的:

  1. Enforcing 模式:SELinux 策略被强制执行,违反策略的行为会被阻止。
  2. Permissive 模式:SELinux 策略被记录但不强制执行,违反策略的行为会被记录但不会阻止。
  3. Disabled 模式:SELinux 被禁用,不执行任何策略。

注意: Android 里面临时关闭selinux命令:setenforce 0

2.识别需要增加权限的地方

2.1 查看日志

在 Permissive 模式下,SELinux 会记录所有违反策略的行为。你可以通过查看日志来识别需要增加权限的地方。

audit(0.0:53): avc: denied { execute } for path=“/data/data/com.mofing/qt-reserved-files/plugins/platforms/libgnustl_shared.so” dev=“nandl” ino=115502 scontext=u:r:platform_app:s0 tcontext=u:object_r:app_data_file:s0 tclass=file permissive=0

2.2 编写 SELinux 策略

分析过程:
缺少什么权限: { excute } 权限
谁缺少该权限: scontext = u:r:platform_app:s0
对哪个文件缺少权限: tcontext = u:object_r:app_data_file
什么类型的文件:tclass = file
完整意思:platform_app进程对app_data_file类型的file缺少excute权限。
解决办法:
在SEpolicy目录下,找到platform_app.te这个文件,加入以下内容:
allow platform_app app_data_file:file excute;
如果存在大量报错,可以用如下方法(某些语句会识别不出来,可用根据上面的方法,自己写)
1、日志中搜索 “avc”,存在类似如下的报错

在这里插入图片描述
2、将所有报错保存到一个文件中,例如avc.txt,并放到源码根目录
3、在源码目录先source lunch
4、利用原生自带功能生成 avc.te 权限文件
audit2allow -i avc.txt -o avc.te

2.3 增加权限过程

这个需要通过先type定义,但大多数情况是已经存在了,只需要增加权限就好了

1、device.te里面添加一个标签(以下为举例,具体根据报错添加)
type demura_spi_device, dev_type;
2、file_contexts里面添加节点
/dev/spidev0.0 u:object_r:demura_spi_device:s0
3、XXXXXX.te添加允许规则(一般只需要这个步骤,除非是未定义的标签和节点)
allow XXXXX demura_spi_device:chr_file { ioctl read write open map getattr }

2.4 特殊情况

(1)增加 ioctl 权限
增加ioctl权限规则的时候,若代码中已经存在allow语句,且avc log中包含 ioctlcmd = xxxx 字段的时候,则需要使用allowxperm。
查找对应的16进制代码,在te文件中增加
allowxperm A B:class ioctl ioctlcmd;
(2)ioctl cmd集合
若是需要很多ictol cmd,可以参考以下两个文件,定义一个ictol cmd集合,一次性加多个io权限

/system/sepolicy/public/ioctl_defines
/>system/sepolicy/public/ioctl_macros

  • _ ioctl_macros中定义ictol cmd集合,集合中的ictol cmd权限可以在ioctl_defines中找到
  • 在te文件中增加ictol cmd集合权限_
    在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com