Я хочу запустить исполняемый файл при загрузке на целевой плате с 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.
Так что теперь я в ловушке дилеммы понятия не имею, куда идти. Мои вопросы:
- Anyone knows how to disable or set permissive mode in android?
- Which files should I modify if I want to define domain for the new service?
Кроме того, ls -Z /system/bin/myservice
дает это:
u:object_r:system_file:s0