Служба init.target.rc никогда не вызывается в AOSP. Это проблема SELINUX?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Служба init.target.rc никогда не вызывается в AOSP. Это проблема SELINUX?

Сообщение Anonymous »

Ниже приведена служба, которую я хотел бы вызвать на init.target.rc в AOSP для продукта sdm710.

Код: Выделить всё

service dispBridge /system/bin/test.sh
seclabel u:r:init:s0
user root
group root
oneshot
disabled
write /dev/kmsg "dispBridgeServiceStartedTest onBootTest"

on boot
chown system system /sys/class/leds/red/blink
chown system system /sys/class/leds/green/blink
chown system system /sys/class/leds/blue/blink
write /dev/kmsg "onBootTest1"
start dispBridge
write /dev/kmsg "onBootTest2"
В приведенном выше коде я ожидаю, что служба будет вызываться при загрузке, и ожидаю увидеть dispBridgeServiceStartedTest onBootTest, распечатанный в оболочке adb.
В приведенном выше коде я ожидаю, что служба будет вызываться при загрузке, и ожидаю, что dispBridgeServiceStartedTest onBootTest будет распечатан в оболочке adb.
В приведенном выше коде я ожидаю, что служба будет вызываться при загрузке. p>
Однако я вижу только распечатанные onBootTest1 и onBootTest2, а это означает, что dispBridgeServiceStartedTest onBootTest должен быть пропущен/сервис не был вызван.
Я попытался установить androidboot.selinux=permissive в BoardConfig.mk,
и seclabel u:r:init:s0 в соответствии с запуском Android скрипт при загрузке с использованием init.rc не работает.
Я пытался вручную запустить службу в оболочке adb с помощью start dispBridge, и это результат использования оболочки adb dmesg -w | grep dispBridge

Код: Выделить всё

[  271.108234] init: Received control message 'start' for 'dispBridge' from pid: 2606 (start dispBridge)
[  271.109119] init: starting service 'dispBridge'...
[  271.132498] init: Service 'dispBridge' (pid 2607) exited with status 127
[ 3069.662302] init: Received control message 'start' for 'dispBridge' from pid: 5640 (start dispBridge)
[ 3069.662771] init: starting service 'dispBridge'...
[ 3069.716114] init: Service 'dispBridge' (pid 5641) exited with status 127

и когда я использую dmesg | grep -i "avc: отклонено"

Код: Выделить всё

[  271.122590] type=1400 audit(1730388931.839:21): avc: denied { entrypoint } for pid=2607 comm="init" path="/system/bin/test.sh" dev="dm-0" ino=1215 scontext=u:r:shell:s0 tcontext=u:object_r:system_file:s0 tclass=file permissive=0
[ 3069.693749] type=1400 audit(1730388931.839:21): avc: denied { entrypoint } for pid=2607 comm="init" path="/system/bin/test.sh" dev="dm-0" ino=1215 scontext=u:r:shell:s0 tcontext=u:object_r:system_file:s0 tclass=file permissive=0
[ 3069.694039] type=1400 audit(1730391730.409:22): avc: denied { entrypoint } for pid=5641 comm="init" path="/system/bin/test.sh" dev="dm-0" ino=1215 scontext=u:r:shell:s0 tcontext=u:object_r:system_file:s0 tclass=file permissive=0
Ссылка на предупреждение инициализации: для службы myservice требуется определенный домен SELinux. Пожалуйста, исправьте, я пробовал запустить эту команду

Код: Выделить всё

ls -Z /system/bin/test.sh  
и это результат

Код: Выделить всё

u:object_r:system_file:s0 /system/bin/test.sh
Я также не уверен, требуется ли мне файл .te для установки разрешений, но я также попробовал androidboot.selinux=disabled, и служба все равно это сделала не запускается.
Могу ли я обратиться за помощью, чтобы указать мне правильное направление, чтобы включить эту услугу? Я не совсем уверен, в чем проблема, и, честно говоря, не понимаю, как действовать дальше, поскольку я новичок в этом. Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/791 ... nux-proble
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»