Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit acb3a5a9 authored by Henry Wang's avatar Henry Wang
Browse files

Add addService to pass in dump priority flags.



Bug: 342937835
Test: Service can be added with dump priority critical or high.

Change-Id: I59a3fa3662ae253b5d2ab89071603a6e6eb81349
Signed-off-by: default avatarHenry Wang <wangzhenghong@google.com>
parent b0feef54
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -30,7 +30,11 @@ enum AServiceManager_AddServiceFlag : uint32_t {
     * Services with methods that perform file IO, web socket creation or ways to egress data must
     * not be added with this flag for privacy concerns.
     */
    ADD_SERVICE_ALLOW_ISOLATED = 1,
    ADD_SERVICE_ALLOW_ISOLATED = 1 << 0,
    ADD_SERVICE_DUMP_FLAG_PRIORITY_CRITICAL = 1 << 1,
    ADD_SERVICE_DUMP_FLAG_PRIORITY_HIGH = 1 << 2,
    ADD_SERVICE_DUMP_FLAG_PRIORITY_NORMAL = 1 << 3,
    ADD_SERVICE_DUMP_FLAG_PRIORITY_DEFAULT = 1 << 4,
};

/**
+19 −1
Original line number Diff line number Diff line
@@ -49,7 +49,25 @@ binder_exception_t AServiceManager_addServiceWithFlags(AIBinder* binder, const c
    sp<IServiceManager> sm = defaultServiceManager();

    bool allowIsolated = flags & AServiceManager_AddServiceFlag::ADD_SERVICE_ALLOW_ISOLATED;
    status_t exception = sm->addService(String16(instance), binder->getBinder(), allowIsolated);
    int dumpFlags = 0;
    if (flags & AServiceManager_AddServiceFlag::ADD_SERVICE_DUMP_FLAG_PRIORITY_CRITICAL) {
        dumpFlags |= IServiceManager::DUMP_FLAG_PRIORITY_CRITICAL;
    }
    if (flags & AServiceManager_AddServiceFlag::ADD_SERVICE_DUMP_FLAG_PRIORITY_HIGH) {
        dumpFlags |= IServiceManager::DUMP_FLAG_PRIORITY_HIGH;
    }
    if (flags & AServiceManager_AddServiceFlag::ADD_SERVICE_DUMP_FLAG_PRIORITY_NORMAL) {
        dumpFlags |= IServiceManager::DUMP_FLAG_PRIORITY_NORMAL;
    }
    if (flags & AServiceManager_AddServiceFlag::ADD_SERVICE_DUMP_FLAG_PRIORITY_DEFAULT) {
        dumpFlags |= IServiceManager::DUMP_FLAG_PRIORITY_DEFAULT;
    }
    if (dumpFlags == 0) {
        dumpFlags = IServiceManager::DUMP_FLAG_PRIORITY_DEFAULT;
    }
    status_t exception =
            sm->addService(String16(instance), binder->getBinder(), allowIsolated, dumpFlags);

    return PruneException(exception);
}