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

Commit 4e4f44d5 authored by Jayant Chowdhary's avatar Jayant Chowdhary
Browse files

libbinder: Add an option to not log permission check failures.



Bug: 193256922

Test: modify cameraserver to not log system camera permission failures;
 .    logcat --pid=<cameraserver-pid> | grep ServiceManager doesn't show
      system camera related permission failures

Change-Id: I3f366d5188637bc8e2fc3c03aa0b97f0516cc95c
Signed-off-by: default avatarJayant Chowdhary <jchowdhary@google.com>
parent 477735bf
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -154,8 +154,7 @@ bool checkCallingPermission(const String16& permission, int32_t* outPid, int32_t
    return checkPermission(permission, pid, uid);
}

bool checkPermission(const String16& permission, pid_t pid, uid_t uid)
{
bool checkPermission(const String16& permission, pid_t pid, uid_t uid, bool logPermissionFailure) {
    static Mutex gPermissionControllerLock;
    static sp<IPermissionController> gPermissionController;

@@ -180,8 +179,10 @@ bool checkPermission(const String16& permission, pid_t pid, uid_t uid)

            // Is this a permission failure, or did the controller go away?
            if (IInterface::asBinder(pc)->isBinderAlive()) {
                ALOGW("Permission failure: %s from uid=%d pid=%d",
                        String8(permission).string(), uid, pid);
                if (logPermissionFailure) {
                    ALOGW("Permission failure: %s from uid=%d pid=%d", String8(permission).string(),
                          uid, pid);
                }
                return false;
            }

+2 −1
Original line number Diff line number Diff line
@@ -167,7 +167,8 @@ status_t getService(const String16& name, sp<INTERFACE>* outService)
bool checkCallingPermission(const String16& permission);
bool checkCallingPermission(const String16& permission,
                            int32_t* outPid, int32_t* outUid);
bool checkPermission(const String16& permission, pid_t pid, uid_t uid);
bool checkPermission(const String16& permission, pid_t pid, uid_t uid,
                     bool logPermissionFailure = true);

#ifndef __ANDROID__
// Create an IServiceManager that delegates the service manager on the device via adb.