Данный пост - заметки для себя. Есть набор утилит setools-android. Где я брал - не помню, но пусть будет эта тема XDA. Есть устройство, с root, с включенным selinux. Я выключаю selinux загружая такой .ko (драйвер): данный драйвер я загружаю из init.rc командой "insmod путь_к_ko". И всё работает. Но на некоторых процессах, скорее всего, стартованных до insmod - SeLinux остается включенным. И, например, выполняя команду setprop sys.usb.config adb получаем ошибку "Unable to set property 'sys.usb.config' to 'adb' from uid:0 gid:2000 pid:5834: SELinux permission check failed": на строку выше наблюдаем сообщение SeLinux: selinux: avc: denied { set } for property=sys.usb.config pid=5834 uid=0 gid=2000 scontext=u:r:shell:s0 tcontext=u:object_r:exported_system_radio_prop:s0 tclass=property_service permissive=0 Берем утилиту sepolicy-inject, и передаем ей в качестве параметров:
-s - третье слово из scontext
-t - третье слово из tcontext
-c - слово из tclass
-p - то, что указано между фигурны