【问题标题】:AOSP system service getting avc denied error while trying to add service from SystemServerAOSP 系统服务在尝试从 SystemServer 添加服务时出现 avc denied 错误
【发布时间】:2021-01-06 16:47:01
【问题描述】:

您好,我正在像这样在 aospCodebase/frameworks/base/services/java/com/android/server/SystemServer.java 中添加我的 koushikservice

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 拒绝。如果您需要更多信息,请告诉我。

【问题讨论】:

    标签: android android-source system-services


    【解决方案1】:

    您需要添加 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;
    

    【讨论】:

    • 很高兴听到这个问题得到了解决?。不要忘记接受答案
    猜你喜欢
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 2012-04-22
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多