From 751888082a52b9de2039f9c650c3e53e6d568e4f Mon Sep 17 00:00:00 2001 From: Andrei Onea Date: Tue, 3 Mar 2020 13:31:33 +0000 Subject: [PATCH] Don't check for changeid permissions in system server Remove compat checks for LOG_COMPAT_CHANGE, READ_COMPAT_CHANGE_CONFIG and OVERRIDE_COMPAT_CHANGE_CONFIG in PlatformCompat when the caller is the system server itself. Bug: 150674197 Test: boots without spammy messages Change-Id: I16f9d5286eff950f68cf5b2c1101ccb987fc7afe --- .../com/android/server/compat/PlatformCompat.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/services/core/java/com/android/server/compat/PlatformCompat.java b/services/core/java/com/android/server/compat/PlatformCompat.java index 85b8ec699f028..cdffd467ed3b2 100644 --- a/services/core/java/com/android/server/compat/PlatformCompat.java +++ b/services/core/java/com/android/server/compat/PlatformCompat.java @@ -20,6 +20,7 @@ import static android.Manifest.permission.LOG_COMPAT_CHANGE; import static android.Manifest.permission.OVERRIDE_COMPAT_CHANGE_CONFIG; import static android.Manifest.permission.READ_COMPAT_CHANGE_CONFIG; import static android.content.pm.PackageManager.PERMISSION_GRANTED; +import static android.os.Process.SYSTEM_UID; import android.annotation.UserIdInt; import android.app.ActivityManager; @@ -298,6 +299,10 @@ public class PlatformCompat extends IPlatformCompat.Stub { } private void checkCompatChangeLogPermission() throws SecurityException { + // Don't check for permissions within the system process + if (Binder.getCallingUid() == SYSTEM_UID) { + return; + } if (mContext.checkCallingOrSelfPermission(LOG_COMPAT_CHANGE) != PERMISSION_GRANTED) { throw new SecurityException("Cannot log compat change usage"); @@ -305,6 +310,10 @@ public class PlatformCompat extends IPlatformCompat.Stub { } private void checkCompatChangeReadPermission() throws SecurityException { + // Don't check for permissions within the system process + if (Binder.getCallingUid() == SYSTEM_UID) { + return; + } if (mContext.checkCallingOrSelfPermission(READ_COMPAT_CHANGE_CONFIG) != PERMISSION_GRANTED) { throw new SecurityException("Cannot read compat change"); @@ -312,6 +321,10 @@ public class PlatformCompat extends IPlatformCompat.Stub { } private void checkCompatChangeOverridePermission() throws SecurityException { + // Don't check for permissions within the system process + if (Binder.getCallingUid() == SYSTEM_UID) { + return; + } if (mContext.checkCallingOrSelfPermission(OVERRIDE_COMPAT_CHANGE_CONFIG) != PERMISSION_GRANTED) { throw new SecurityException("Cannot override compat change");