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 Original line Diff line number Diff line
@@ -140,8 +140,7 @@ bool checkCallingPermission(const String16& permission, int32_t* outPid, int32_t
    return checkPermission(permission, pid, uid);
    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 Mutex gPermissionControllerLock;
    static sp<IPermissionController> gPermissionController;
    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?
            // Is this a permission failure, or did the controller go away?
            if (IInterface::asBinder(pc)->isBinderAlive()) {
            if (IInterface::asBinder(pc)->isBinderAlive()) {
                ALOGW("Permission failure: %s from uid=%d pid=%d",
                if (logPermissionFailure) {
                        String8(permission).string(), uid, pid);
                    ALOGW("Permission failure: %s from uid=%d pid=%d", String8(permission).string(),
                          uid, pid);
                }
                return false;
                return false;
            }
            }


+2 −1
Original line number Original line 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);
bool checkCallingPermission(const String16& permission,
bool checkCallingPermission(const String16& permission,
                            int32_t* outPid, int32_t* outUid);
                            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
} // namespace android