Selinux 拒绝在 Android 8 上启动服务
Selinux Denies Starting Service on Android 8
最近我正在研究 Android 8 并被 selinux 问题阻止了…
我在 init.rc 中创建了一个“ppp”服务来启动 pppd,如下所示:
service ppp /system/bin/pppd call gprs
user root
group system radio
disabled
oneshot
但是使用命令“setprop ctl.start ppp”启动此服务时失败。
selinux已经设置为permissive模式但仍然显示如下,服务没有启动:
console:/ # [ 430.567622] init: Could not ctl.start for service ppp: File /system/bin/pppd(labeled "u:object_r:ppp_exec:s0") has incorrect label or no domain transition from u:r:init:s0 to another SELinux domain defined. Have you configured your service correctly? https://source.android.com/security/selinux/device-policy#label_new_services_and_address_denials
ppp.te和file_contexts不变:
ppp.te:
typeattribute ppp coredomain;
domain_auto_trans(mtp, ppp_exec, ppp)
file_contexts:
/system/bin/pppd u:object_r:ppp_exec:s0
感谢任何解决此问题的信息,在此先感谢!
当你使用“setprop ctl.start ppp”时,服务从init启动。
试试这个政策:
domain_auto_trans(init, ppp_exec, ppp)
最近我正在研究 Android 8 并被 selinux 问题阻止了…
我在 init.rc 中创建了一个“ppp”服务来启动 pppd,如下所示:
service ppp /system/bin/pppd call gprs
user root
group system radio
disabled
oneshot
但是使用命令“setprop ctl.start ppp”启动此服务时失败。
selinux已经设置为permissive模式但仍然显示如下,服务没有启动:
console:/ # [ 430.567622] init: Could not ctl.start for service ppp: File /system/bin/pppd(labeled "u:object_r:ppp_exec:s0") has incorrect label or no domain transition from u:r:init:s0 to another SELinux domain defined. Have you configured your service correctly? https://source.android.com/security/selinux/device-policy#label_new_services_and_address_denials
ppp.te和file_contexts不变:
ppp.te:
typeattribute ppp coredomain;
domain_auto_trans(mtp, ppp_exec, ppp)
file_contexts:
/system/bin/pppd u:object_r:ppp_exec:s0
感谢任何解决此问题的信息,在此先感谢!
当你使用“setprop ctl.start ppp”时,服务从init启动。
试试这个政策:
domain_auto_trans(init, ppp_exec, ppp)