summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sudheer Shanka <sudheersai@google.com> 2025-01-03 17:43:33 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2025-01-03 17:43:33 -0800
commit6137a48ee0f9ce5dc2ec37f887e915ffc4780cd7 (patch)
treeb4328368635eca82bfcdeff7ccb046285d6f0db9
parentfac5420add68751ac6065ad9536574e75c2fd726 (diff)
parentef93e8a503fc1aa3bd9ff0cd37cd76261c6c80aa (diff)
Merge "Allow root uid to listen for uid state changes across users." into main
-rw-r--r--services/core/java/com/android/server/am/UidObserverController.java7
1 files changed, 5 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/am/UidObserverController.java b/services/core/java/com/android/server/am/UidObserverController.java
index 7eeec32cf24a..f58e3f85bb26 100644
--- a/services/core/java/com/android/server/am/UidObserverController.java
+++ b/services/core/java/com/android/server/am/UidObserverController.java
@@ -31,6 +31,7 @@ import android.os.Binder;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
+import android.os.Process;
import android.os.RemoteCallbackList;
import android.os.RemoteException;
import android.os.SystemClock;
@@ -90,10 +91,12 @@ public class UidObserverController {
+ UUID.randomUUID().toString());
synchronized (mLock) {
+ final boolean canInteractAcrossUsers = ActivityManager.checkComponentPermission(
+ INTERACT_ACROSS_USERS_FULL, callingUid, Process.INVALID_UID, true)
+ == PackageManager.PERMISSION_GRANTED;
mUidObservers.register(observer, new UidObserverRegistration(callingUid,
callingPackage, which, cutpoint,
- ActivityManager.checkUidPermission(INTERACT_ACROSS_USERS_FULL, callingUid)
- == PackageManager.PERMISSION_GRANTED, uids, token));
+ canInteractAcrossUsers, uids, token));
}
return token;