Управление доступом к интерфейсам связывателя может быть выполнено с помощью SELinux.
В зависимости от того, используете ли вы binder
или vdbinder
, вы определяете контекст службы в service_contexts
или vndservice_contexts
файл, подобный следующему:
myservice u:object_r:myservice_[vnd]service:s0
Примечание : myservice
- это имя, которое вы указываете в defaultServiceManager()->addService()
Теперь вы можете явно определить, к какому процессу разрешен доступmyservice
в файле политики .te
.
Пример : разрешить myclient
доступ к myservice
:
allow myclient myservice_[vnd]service:service_manager find
[vnd]binder_use(myclient)
binder_call(myclient, myservice_[vnd]service)
Более подробную информацию можно найти здесь .