From 57c34cb2cbd80419439febd51c999bf13bf6bed5 Mon Sep 17 00:00:00 2001 From: Kweku Adams Date: Wed, 23 Mar 2022 19:37:37 +0000 Subject: [PATCH] Make sure only the system uses BIND_ALMOST_PERCEPTIBLE. Bug: 223437753 Change-Id: I68cff7c10e804952f3ace987bb42bb65db21be93 Test: Android builds --- services/core/java/com/android/server/am/ActiveServices.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java index b0ab5390724b0..ab810c124b427 100644 --- a/services/core/java/com/android/server/am/ActiveServices.java +++ b/services/core/java/com/android/server/am/ActiveServices.java @@ -2789,6 +2789,11 @@ public final class ActiveServices { + ") set BIND_ALLOW_INSTANT when binding service " + service); } + if ((flags & Context.BIND_ALMOST_PERCEPTIBLE) != 0 && !isCallerSystem) { + throw new SecurityException("Non-system caller (pid=" + callingPid + + ") set BIND_ALMOST_PERCEPTIBLE when binding service " + service); + } + if ((flags & Context.BIND_ALLOW_BACKGROUND_ACTIVITY_STARTS) != 0) { mAm.enforceCallingPermission( android.Manifest.permission.START_ACTIVITIES_FROM_BACKGROUND,