在Android Oreo上以su权限在init.rc中启动本机守护程序

时间:2019-07-13 04:29:43

标签: android kernel root daemon android-8.0-oreo

我需要在具有su权限的Android Oreo AOSP中启动时启动一个简单的守护程序。

我已将SE Linux设置为允许更改内核bootargs设置,编译了守护程序并将可执行文件放在/ system / xbin中,在init.rc中添加了服务定义,但仍然得到:

avc:拒绝{过渡}

如果守护程序是由shell(具有su特权)启动的,则它可以正常工作。

我一直遵循许多用户提出的关于stackoverflow的解决方案,但没有结果。

有什么帮助或建议吗?

谢谢

1 个答案:

答案 0 :(得分:0)

Init至少需要SELinux上下文才能将过程转换到。恐怕即使在宽松模式下运行,您也必须定义一个。

将以下内容添加到您的file_contexts

/system/xbin/<my-service>    u:object_r:<some-context>:s0

编辑:在seclabel (see init)的服务配置中添加init.rc属性可能就足够了。

service my-service /system/xbin/my-service
    [...]
    seclabel u:r:su:s0