尝试从系统服务器添加服务时,AOSP系统服务获得AVC拒绝错误 [英] AOSP system service getting avc denied error while trying to add service from SystemServer

查看:81
本文介绍了尝试从系统服务器添加服务时,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拒绝错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆