summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-10-23 17:40:51 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-10-23 17:40:51 +0000
commit751a3c3e7a89225a494c31553a8bf1b29a42c2e8 (patch)
tree0943d0ab18ecc8501ee500a4534b2b8cf6d85255
parent2d8f7649b3ad6fc1d96f9556283fcfc2583e02e3 (diff)
parent1614a18e7d9b2eae76ecdee0de995e6cf2ede5e1 (diff)
Merge "Merge "DMS: check cached mode for user apps only" into udc-qpr-dev am: e54f99ced4" into udc-qpr-dev-plus-aosp
-rw-r--r--services/core/java/com/android/server/display/DisplayManagerService.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
index 6466b440b3a0..bc7e15635035 100644
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -2868,7 +2868,16 @@ public final class DisplayManagerService extends SystemService {
// Check if the target app is in cached mode
private boolean isUidCached(int uid) {
- if (mActivityManagerInternal == null) {
+ // Only query procState and importance for Android apps, which have UIDs starting
+ // from FIRST_APPLICATION_UID. .
+ //
+ // Other processes with UID < FIRST_APPLICATION_UID can also register to DMS for
+ // display events. E.g. Android Studio executes a screen sharing process to provide
+ // display mirroring functionality. That process inherits the UID of adb. Depending
+ // on adb mode, it can be shell (2000) or root (0). Those processes are not Android
+ // apps and not managed by AMS. Treat them as non-cached so never ignore or defer
+ // display events to them.
+ if (mActivityManagerInternal == null || uid < FIRST_APPLICATION_UID) {
return false;
}
int procState = mActivityManagerInternal.getUidProcessState(uid);