本文介绍了尝试从系统服务器添加服务时,AOSP系统服务获得AVC拒绝错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您好,我正在aospCodebase/frameworks/base/services/java/com/android/server/SystemServer.java中添加我的Koushik服务,如下所示
KoushikService koushikservice = null;
try{
traceBeginAndSlog("KOUSHIK_SERVICE adding trace");
koushikservice = new KoushikService(mSystemContext);
ServiceManager.addService(Context.KOUSHIK_SERVICE,koushikservice);
}catch(Throwable e){
Slog.e(TAG, "Starting KOUSHIK_SERVICE failed!!! ", e);
}
traceEnd();
我收到";koushik_service添加跟踪和日志,但随后AVC被拒绝。如果您需要进一步的信息,请告诉我。
推荐答案
您需要添加SELinux规则才能允许该服务。默认情况下,除非明确允许,否则拒绝SELinux。
执行此操作的最简单方法是与现有服务及其规则进行比较。
基于我为案例中服务添加的内容,并假定Context.KOUSHIK_SERVICE = "koushik"
的值大致如下:
文件:koushik.te
type koushik, domain;
在文件SERVICE_CONTEXTS中,添加:
koushik u:object_r:koushik_service:s0
在文件service.te中添加:
type koushik_service, service_manager_type;
在文件system_server.te中添加:
add_service(system_server,koushik_service)
最后,如果您希望允许域查找并使用您的服务,例如从Platform_app,您可以添加Platform_app.te:
allow platform_app koushik_service:service_manager find;
这篇关于尝试从系统服务器添加服务时,AOSP系统服务获得AVC拒绝错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!