SElinux Android消息解读

Jay*_*Jay 8 android selinux

我无法理解我在我的 android 应用程序上收到的这条消息。家里有高手吗?

type=1400 audit(0.0:2233): avc: denied { create } for name="access_control.new_commit.cv" scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:fuse:s0:c512,c768 tclass=fifo_file permissive=0
Run Code Online (Sandbox Code Playgroud)

Ham*_*atu 16

给定的 SELinux 违规:

type=1400 audit(0.0:2233): avc: denied { create } for name="access_control.new_commit.cv" scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:fuse:s0:c512,c768 tclass=fifo_file permissive=0
Run Code Online (Sandbox Code Playgroud)

下面我将尝试对上述违规的重要部分进行解释:

denied { create }操作权限状态:请求/执行的拒绝权限。在这种情况下,它是一个创建操作。SELinux 拒绝执行创建 目录/文件操作的权限。

name="access_control.new_commit.cv":目标名称:您的应用程序可能试图创建的目标名称(在本例中为文件/目录名称)。

scontext=u:r:untrusted_app:s0源上下文:此安全违规的源上下文。这表明哪个域/进程正在尝试执行创建功能。在这里,untrusted_app应用程序是由 zygote 启动的应用程序

tcontext=u:object_r:fuse:s0目标上下文:目标资源(在本例中为文件)的安全上下文。在这里,源试图在已被拒绝的Fuse 文件系统中创建文件

tclass=fifo_file目标类目标的类

在一个句子,SELinux的否认权限untrusted_appcreateaccess_control.new_commit.cv文件fuse

从 Google 来源,检查 SEPolicy 文件untrusted_app.te权限是如何被拒绝的。

注意:如果您对答案有任何建议,请告诉我。

  • 谢谢。当我第一次尝试写入领域文件时发生这种情况。但是当我第二次来时,我能够写入 REalm DB。那么为什么它只在应用程序启动时第一次发生呢? (2认同)

cri*_*fan 5

根据验证 SELinux | Android 开源项目,留言:

type=1400 audit(0.0:2233): avc: denied { create } for name="access_control.new_commit.cv" scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:fuse:s0:c512,c768 tclass=fifo_file permissive=0
Run Code Online (Sandbox Code Playgroud)

关键信息是:

  • Action:创建
  • Actor= scontext= source contextuntrusted_app
  • Object= tcontext= target context保险丝
    • object_r= object read?
  • Result= tclass= target classfifo_file = FIFO文件
  • permissive= permissive mode: 0 ->许可模式
    • -> 是强制模式吗?

翻译成人类可读的句子:

untrusted_app想要为保险丝创建一个fifo_file

(但是Android SELinux的强制模式在没有权限的情况下停止它,所以你看到上面的logcat日志信息)