Android进程与应用的SELinux标签管理
1. 基于seclabel设置显式上下文
设置上下文的另一种方式是通过在服务声明的init脚本中硬编码。在服务声明里,init语言有了一些修改,其中新增的 seclabel 选项可以让init将服务的上下文显式地更改为传递给 seclabel 的参数。以下是 adbd 的示例:
Service adbd /sbin/adbd
class core
socket adbd stream 660 system system
disabled
seclabel u:r:adbd:s0
是否使用动态转换或 seclabel 取决于执行环境。像 adbd 这类从ramdisk早期执行的程序,由于ramdisk不使用每个文件的标签,无法正确设置转换,目标具有相同的上下文。
2. 进程重新标记
借助动态进程转换和从init脚本设置套接字上下文的能力,我们可以尝试重新标记处于不正确上下文的服务。判断进程上下文是否正确的规则如下:
- 除 init 外,没有其他进程应处于 init 上下文。
- 没有长时间运行的进程应处于 init_shell 域。
- 除 zygote 外,没有其他进程应处于 zygote 域。
超级会员免费看
订阅专栏 解锁全文
1205

被折叠的 条评论
为什么被折叠?



