SEAndroid进程域是如何给定的

SEAndroid进程域是如何给定的,android,android-source,selinux,Android,Android Source,Selinux,我一直在关注SEAndroid,我一直在试图理解流程域是如何给定的 到目前为止,我得到的是在init.rc文件中,在一些服务声明下,有一个名为seclabel的令牌: service adbd /sbin/adbd --root_seclabel=u:r:su:s0 class core socket adbd stream 660 system system disabled seclabel u:r:adbd:s0 稍后在init.c中,setexeccon

我一直在关注SEAndroid,我一直在试图理解流程域是如何给定的

到目前为止,我得到的是在init.rc文件中,在一些服务声明下,有一个名为seclabel的令牌:

service adbd /sbin/adbd --root_seclabel=u:r:su:s0
    class core
    socket adbd stream 660 system system
    disabled
    seclabel u:r:adbd:s0
稍后在init.c中,setexeccon将其设置为编写的上下文:

if (svc->seclabel) {
    if (is_selinux_enabled() > 0 && setexeccon(svc->seclabel) < 0) {
        ERROR("cannot setexeccon('%s'): %s\n", svc->seclabel, strerror(errno));
        _exit(127);
    }
}
在显示所有进程及其域的adb shell中,则显示为其他

For example, the servicemanager in init.rc:
    class core
    user system
    group system
    critical
    onrestart restart healthd
    onrestart restart zygote
    onrestart restart media
    onrestart restart surfaceflinger
    onrestart restart drm
但对ps-Z的调用显示:

u:r:servicemanager:s0          system    53    1     /system/bin/servicemanager

怎么回事

好的,我看了代码,终于得到了答案

android映像中根文件系统上的文件:/external/sepolicy/seapp_上下文包括以下内容:

isSystemServer=true domain=system_server
user=system domain=system_app type=system_app_data_file
user=bluetooth domain=bluetooth type=bluetooth_data_file
user=nfc domain=nfc type=nfc_data_file
user=radio domain=radio type=radio_data_file
user=shared_relro domain=shared_relro
user=shell domain=shell type=shell_data_file
user=_isolated domain=isolated_app levelFrom=user
user=_app seinfo=platform domain=platform_app type=app_data_file levelFrom=user
user=_app domain=untrusted_app type=app_data_file levelFrom=user
这根据一些输入定义了每个流程的安全设置(输出)。我们可以在第一行的示例中看到:

如果它是系统服务器,则其域将是system_server

或者在最后一行:

_app关键字代表每个没有关联规则的应用。因此,默认情况下,应用程序域将是不受信任的应用程序,并且属于它的文件标签将是应用程序数据文件

有关该文件语法的更多文档可在该文件中找到

isSystemServer=true domain=system_server
user=system domain=system_app type=system_app_data_file
user=bluetooth domain=bluetooth type=bluetooth_data_file
user=nfc domain=nfc type=nfc_data_file
user=radio domain=radio type=radio_data_file
user=shared_relro domain=shared_relro
user=shell domain=shell type=shell_data_file
user=_isolated domain=isolated_app levelFrom=user
user=_app seinfo=platform domain=platform_app type=app_data_file levelFrom=user
user=_app domain=untrusted_app type=app_data_file levelFrom=user