我想在启动时执行可执行文件在 Android 5.1 的目标板上所以我将其添加到 init.rc 中:
on boot
start myservice
service myservice /system/bin/myservice
#class main
user root
group root
#oneshot
我做了拆包和重新包装的工作。
然而,当进行更改时,屏幕会继续打印:
init warning: Service myservice needs a SELinux domain defined. Please fix.
type=1400 ... avc:denied ... scontext ... tcontext ... #some annoying warning messages like this
SELinux 对我来说似乎是一个巨大的项目。我只是想避免这种情况。我尝试了两种方法:
1. setenv kernelargs 'console=ttyS0,115200n8 rootdelay=1 selinux=0' and saveenv
2. set enforce 0
对于方法 1,printenv
给出结果:
kernelargs=console=ttyS0,115200n8 rootdelay=1 selinux=0
所以你看,已经做出了改变。但重新启动后仍会打印警告消息。
对于方法2,它说:
Could not set enforce status. Permission denied.
所以现在我陷入了两难的境地,不知道该何去何从。我的问题:
- 有人知道如何在 android 中禁用或设置宽容模式吗?
- 如果我想为新服务定义域,我应该修改哪些文件?
除了,ls -Z /system/bin/myservice
给出这个:
u:object_r:system_file:s0