android selinux context下的进程如何被标记?

How process under android selinux context was labeled?

我正在尝试执行 Android SElinux implementation,对于文件,我可以使用 flie_contexts 文件定义文件 selinux 安全上下文,假设我正在添加一个 /system/bin/mymodule 文件,所以我可以通过将它添加到 /system/sepolicy/private/flie_contexts 来签署它的上下文,但是如果进程的 selinux 安全上下文我找不到怎么办在某个地方我可以简单地定义它们

我知道进程安全上下文是由其父进程继承的,但是是否有任何机制可以像文件一样强制设置进程安全上下文?

有什么见解吗?

您需要做两件事:

1.定义上下文

假设您要为您的二进制文件创建一个名为 np_mybinary 的自定义上下文。

这是您的 .te 文件必须包含的内容:

type np_mybinary, domain;
type np_mybinary_exec, exec_type, vendor_file_type, file_type;

这是您的 file_contexts 文件必须包含的内容:

/system/bin/mymodule  u:object_r:np_mybinary_exec:s0

2。定义一个转换

您需要定义从父进程上下文到 np_mybinary_exec 的转换。

domain_auto_trans(<parent-context>, np_mybinary, np_mybinary_exec)

如果您的进程是由 init 启动的,则有一个 simple macro 可用:

init_daemon_domain(np_mybinary);