我有一个Android Java服务,该服务通过活页夹(AIDL)与本机进程进行交互。
我看到该服务被列在“ adb shell服务列表”下。另外,我也可以使用“ adb shell服务启动1 xxx”向该服务发送命令。
为此,我希望仅在此特定Java服务和本机进程之间进行活页夹IPC事务。
我在任何地方都找不到任何结论性信息。非常感谢在这方面的任何帮助。
答案 0 :(得分:1)
可以通过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)
您可以找到更多信息here。