From 081b14ccd541fc17210a10966782a630dfeea807 Mon Sep 17 00:00:00 2001 From: Hui Yu Date: Thu, 5 Mar 2020 15:27:32 -0800 Subject: [PATCH] Remove implicit camera/microphone process capability for BOUND_TOP and BOUND_FOREGROUND_SERVICE state. Should migrate toward BIND_INCLUDE_CAPABILITY. Bug: 150890235 Test: atest cts/tests/app/src/android/app/cts/ActivityManagerProcessStateTest.java#testTopBind Change-Id: If61aa5f7c94ce0aab89dd0e38608fdba3956d858 --- .../core/java/com/android/server/am/OomAdjuster.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/services/core/java/com/android/server/am/OomAdjuster.java b/services/core/java/com/android/server/am/OomAdjuster.java index aa37b4accc40b..9f1776fc2b1f0 100644 --- a/services/core/java/com/android/server/am/OomAdjuster.java +++ b/services/core/java/com/android/server/am/OomAdjuster.java @@ -1708,11 +1708,6 @@ public final class OomAdjuster { // TOP process passes all capabilities to the service. capability |= PROCESS_CAPABILITY_ALL; } - } else if (clientProcState - <= PROCESS_STATE_FOREGROUND_SERVICE) { - if (cr.notHasFlag(Context.BIND_INCLUDE_CAPABILITIES)) { - clientProcState = PROCESS_STATE_FOREGROUND_SERVICE; - } } } else if ((cr.flags & Context.BIND_IMPORTANT_BACKGROUND) == 0) { if (clientProcState < @@ -2036,7 +2031,7 @@ public final class OomAdjuster { case PROCESS_STATE_TOP: return PROCESS_CAPABILITY_ALL; case PROCESS_STATE_BOUND_TOP: - return PROCESS_CAPABILITY_ALL_IMPLICIT; + return PROCESS_CAPABILITY_NONE; case PROCESS_STATE_FOREGROUND_SERVICE: if (app.hasForegroundServices()) { // Capability from FGS are conditional depending on foreground service type in @@ -2044,10 +2039,12 @@ public final class OomAdjuster { return PROCESS_CAPABILITY_NONE; } else { // process has no FGS, the PROCESS_STATE_FOREGROUND_SERVICE is from client. + // the implicit capability could be removed in the future, client should use + // BIND_INCLUDE_CAPABILITY flag. return PROCESS_CAPABILITY_ALL_IMPLICIT; } case PROCESS_STATE_BOUND_FOREGROUND_SERVICE: - return PROCESS_CAPABILITY_ALL_IMPLICIT; + return PROCESS_CAPABILITY_NONE; default: return PROCESS_CAPABILITY_NONE; }