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)