Я смотрел SEAndroid, и я пытался понять, как данный домен процесса.Как домен домена 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);
}
}
В приведенном выше примере домен будет adbd.
Но я не смог найти, что происходит, когда в декларации сервиса нет токена маркировки. Вещь, которая происходит в init.c, заключается в том, что она не будет вызывать setexeccon, значение .. сохранить домен родителей?
Вызов:
ps -Z
в AdB оболочки, которая показывает все процессы, и их домены, показывает иное.
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
но звонить пс -Z показывает:
u:r:servicemanager:s0 system 53 1 /system/bin/servicemanager
Что происходит ?!