iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Android 修改 SELinux avc 权限的方法
  • 229
分享到

Android 修改 SELinux avc 权限的方法

android 2023-09-03 22:09:29 229人浏览 独家记忆
摘要

系统版本:Android 11.0     平         台:RK3568 在 Android 系统的开发及适配过程中,我们常常需要对 SElinux avc  权限进行修改,以下是我对 SELinux avc  权限修改总结的方法

系统版本:Android 11.0    

平         台:RK3568

Android 系统的开发及适配过程中,我们常常需要对 SElinux avc  权限进行修改,以下是我对 SELinux avc  权限修改总结的方法。

一、验证功能是否存在 selinux 权限问题

#进入Android终端

adb shell

#获取root权限

su

#查看系统当前 selinux 的工作模式

getenforce

#将 selinux 切换为 Enforcing 强制模式(如果已经是Enforcing模式可省略)

setentforce 1

#验证功能并打印log

loGCat | grep avc

这么做的目的是为了能够在app报错时及时发现avc权限问题。例如,在app中通过接口对节点进行读写操作时发现了log报以下selinux avc权限错误:

type=1400 audit(0.0:875): avc: denied { read } for name="value" dev="sysfs" ino=29545 scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=0


type=1400 audit(0.0:876): avc: denied { write } for name="value" dev="sysfs" ino=29545 scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=0

二、SELinux avc权限规则快速生成配置

(1) 将上述avc 权限的 log 信息收集起来并保存到文件中

例如:log.txt

(2) 在平台代码根目录下打开终端,执行以下命令 :

#初始化参数设置

source build/envsetup.sh

#通过lunch命令选择需要编译的分支

lunch

(3) 生成的selinux avc权限配置信息

#将 log.txt 文件拷贝到以下路径中,然后在终端中切换到路径所在的位置:

external/selinux/prebuilts/bin

#生成 selinux avc 权限配置信息,命令格式如下:

./audit2allow -i [log文件] > [生成文件]

如果生成的信息不全或者为空的话(如上图),可以在 log.txt 文件中重复放多几行 avc log 信息,再执行生成命令即可,例如:

(4) 加上open和getattr权限

注意,读写等 avc 权限的配置往往还需要加上 open 和 getattr 权限,例如:

 allow system_server sysfs:file {read write open getattr};

如果不加就可能报以下错误:

type=1400 audit(0.0:604): avc: denied { getattr } for path="/sys/devices/platfORM/fdd60000.gpio/gpiochip0/gpio/gpio27/value" dev="sysfs" ino=29545 scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=0

(5) selinux avc权限配置信息添加位置

device/rockchip/common/sepolicy/vendor/

例如,这里是在该目录下的 system_server.te 文件添加。此外,还需要对对应api等级的相同文件进行一样的修改:

system/sepolicy/prebuilts/api/30.0/private/coredomain.te

或者在 system/sepolicy 目录下找到相应文件添也行,这里是:

system/sepolicy/public/system_server.te


三、编译及验证

(1) 编译

在根目录下编译 /system/sepolicy/ 中的文件,编译命令如下:

mmm /system/sepolicy/

(2) 验证

将编译好的文件从电脑推送到Android设备中,以下推送命令(注意,需要删掉mapping目录及其包含的文件才能push成功):

adb push odm/etc/selinux/* odm/etc/selinux


adb push product/etc/selinux/* product/etc/selinux


adb push system/etc/selinux/* system/etc/selinux


adb push system_ext/etc/selinux/* system_ext/etc/selinux


adb push vendor/etc/selinux/* vendor/etc/selinux


adb reboot

四、常见编译错误

例如:

libsepol.report_failure: neverallow on line 99 of system/sepolicy/private/coredomain.te (or line 36611 of policy.conf) violated by allow system_server sysfs:file { read write open };

libsepol.check_assertions: 1 neverallow failures occurred
Error while expanding policy


即上述修改的权限被 neverallow,具体位置在 /system/sepolicy/private/coredomain.te 中第99行。所以,对以上报错的修改如下:

--- a/sepolicy/private/coredomain.te+++ b/sepolicy/private/coredomain.te@@ -111,6 +111,7 @@ full_treble_only(`    # /sys    neverallow {    coredomain     -init     -ueventd     -vold+    -system_server     -system_app   } sysfs:file no_rw_file_perms;

来源地址:https://blog.csdn.net/jppipai/article/details/129093013

--结束END--

本文标题: Android 修改 SELinux avc 权限的方法

本文链接: https://www.lsjlt.com/news/392857.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android 修改 SELinux avc 权限的方法
    系统版本:Android 11.0     平         台:RK3568 在 Android 系统的开发及适配过程中,我们常常需要对 SELinux avc  权限进行修改,以下是我对 SELinux avc  权限修改总结的方法...
    99+
    2023-09-03
    android
  • 修改mysql登录权限的方法
    这篇文章主要介绍了修改mysql登录权限的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。修改mysql登录权限的方法:首先登录mysql;然...
    99+
    2024-04-02
  • 修改mysql允许主机访问权限的方法
    修改mysql允许主机访问权限的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!默认mysql的用户是没有远程访问的权限...
    99+
    2024-04-02
  • linux改权限的方法有哪些
    在linux中修改权限的方法:chmod命令,用于控制用户对文件的权限,语法:chmod [-cfvR] [--help] [--version] ;在linux中使用chmod命令修改权限chmod命令作用:linux中chmod命令的作...
    99+
    2024-04-02
  • mysql修改权限后本地无法登录的解决方法
    小编给大家分享一下mysql修改权限后本地无法登录的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql修改权限后本...
    99+
    2024-04-02
  • Android权限机制与适配的方法
    本文小编为大家详细介绍“Android权限机制与适配的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android权限机制与适配的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新...
    99+
    2024-04-02
  • Linux系统修改文件权限的具体方法是什么
    Linux系统修改文件权限的具体方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Linux系统中一切皆为文件,所以文件的管理非常重要,每一个文件都有特定...
    99+
    2023-06-28
  • Android修改Dialog样式的方法
    目录一、Dialog源码解析1.1 new AlertDialog.Builder(this).create()1.2 AlertController二、修改Dialog样式2.1 ...
    99+
    2024-04-02
  • win7修改hosts和service文件提示无权限的解决方法
    win7的用户权限管理比较严格,默认情况下你是无法直接修改hosts和service这样的文件,提示无权限。网上有很多教程,讲解如何获取管理员或文件权限,如果你只是想修改类似这样的文件,不用动那么大的干戈,一个小小的动作...
    99+
    2023-06-02
    win7 修改hosts 权限 解决 文件 service hosts
  • linux修改权限777指的是什么
    这篇文章主要介绍“linux修改权限777指的是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux修改权限777指的是什么”文章能帮助大家解决问题。在linux中,修改权限777表示修改权...
    99+
    2023-06-29
  • linux修改权限的语句怎么写
    这篇文章主要介绍“linux修改权限的语句怎么写”,在日常操作中,相信很多人在linux修改权限的语句怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux修改权限的语句怎么写”的疑惑有所帮助!接下来...
    99+
    2023-07-02
  • linux怎么修改用户组的权限
    要修改用户组的权限,可以使用chgrp命令。该命令用于更改文件或目录的所属组。命令的基本语法如下:```chgrp [选项] 组名 ...
    99+
    2023-08-16
    linux
  • 通过修改Win7的系统权限来达到随意修改系统文件的方法(图文)
    Windows 7系统之所以比XP安全性更好,一个重要原因就是对系统文件的权限掌控,在未经授权的情况下不能随意修改系统文件。很多从XP升级到Win7的用户很不习惯这一点,在对系统文件进行操作时会遇到诸如“拒绝...
    99+
    2023-05-26
    WIN7权限 修改权限 权限 Win7 图文 系统文件 方法
  • Linux修改权限的命令是什么
    今天给大家介绍一下Linux修改权限的命令是什么。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。在 Linux 命令中,chmod用于修改文件或者目录的权限。对...
    99+
    2023-06-28
  • 阿里云服务器更改文件权限的方法
    简介 在阿里云服务器上,更改文件权限是一项常见的操作。通过更改文件权限,您可以控制对文件的访问和修改权限,以确保服务器的安全性和稳定性。本文将介绍如何在阿里云服务器上更改文件权限的方法。步骤一:登录到阿里云服务器首先,您需要登录到您的阿里云...
    99+
    2024-01-31
    阿里 权限 服务器
  • phpmyadmin设置权限的方法
    这篇文章主要介绍了phpmyadmin设置权限的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。phpmyadmin设置mysql数据库用户权...
    99+
    2024-04-02
  • Linux中怎么修改文件的默认权限
    Linux中怎么修改文件的默认权限,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。方法/步骤第一首先在电脑上打开Linux系统。然后进入终端输入命令。第二然后创建一个文件夹new...
    99+
    2023-06-13
  • Linux权限命令-修改文件的所属组
    Linux权限命令-修改文件的所属组 在Linux系统中,可以通过 chgrp 命令来修改文件或目录的所属组。本文将介绍 chgrp 命令的语法、实操以及各种方法之间的区别,以帮助读者更加深入地掌握这...
    99+
    2023-10-27
    linux 服务器 运维
  • Linux权限命令-修改文件的所有者
    Linux权限命令-修改文件的所有者 在 Linux 系统中,文件和目录的所有者和所属组是决定访问权限的重要因素之一。如果用户需要更改文件或目录的所有者,可以使用 chown 命令来完成。本文将介绍 ...
    99+
    2023-09-08
    linux 运维 服务器
  • windows系统怎么修改hosts文件的权限?
    修改hosts文件的权限,使之可以用记事本。 1、hosts文件默认情况下只能查看不能编辑。这里给出解决方法。首先打开系统盘:/Windows/System32/drivers/etc/文件夹 2、在hosts文件上...
    99+
    2023-06-15
    windows修改hosts windows8修改hosts windows修改hosts文 文件 hosts 系统 windows 权限
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作