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

Commit 49bc34b6 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

Merged-In: I3f366d5188637bc8e2fc3c03aa0b97f0516cc95c
Change-Id: I3f366d5188637bc8e2fc3c03aa0b97f0516cc95c
Signed-off-by: default avatarJayant Chowdhary <jchowdhary@google.com>
(cherry picked from commit 4e4f44d5)
parent 0e0ee9f7
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -140,8 +140,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;

@@ -166,8 +165,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
@@ -156,7 +156,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);

} // namespace android