From 89438e0c37918ac3ba199f252da9707c029221e2 Mon Sep 17 00:00:00 2001 From: Hai Zhang Date: Mon, 29 Jun 2020 18:13:21 -0700 Subject: [PATCH] Register package broadcast receivers for all users. The existing code is already handling multi-user by reading EXTRA_UID, however the broadcast receiver was only registered for the primary user. So we just need to register it for all users. Fixes: 150038154 Fixes: 153600945 Test: adb shell pm create-user "Test user" Test: adb shell am switch-user 10 Test: atest android.app.appops.cts.AttributionTest Change-Id: I90f5989e858487a780aada00ba2fa7c2e08ff834 --- .../core/java/com/android/server/appop/AppOpsService.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java index b5c173c91a539..6eab0221b7abc 100644 --- a/services/core/java/com/android/server/appop/AppOpsService.java +++ b/services/core/java/com/android/server/appop/AppOpsService.java @@ -1597,7 +1597,8 @@ public class AppOpsService extends IAppOpsService.Stub { packageUpdateFilter.addAction(Intent.ACTION_PACKAGE_REPLACED); packageUpdateFilter.addDataScheme("package"); - mContext.registerReceiver(mOnPackageUpdatedReceiver, packageUpdateFilter); + mContext.registerReceiverAsUser(mOnPackageUpdatedReceiver, UserHandle.ALL, + packageUpdateFilter, null, null); synchronized (this) { for (int uidNum = mUidStates.size() - 1; uidNum >= 0; uidNum--) { @@ -1640,7 +1641,7 @@ public class AppOpsService extends IAppOpsService.Stub { final IntentFilter packageSuspendFilter = new IntentFilter(); packageSuspendFilter.addAction(Intent.ACTION_PACKAGES_UNSUSPENDED); packageSuspendFilter.addAction(Intent.ACTION_PACKAGES_SUSPENDED); - mContext.registerReceiver(new BroadcastReceiver() { + mContext.registerReceiverAsUser(new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { final int[] changedUids = intent.getIntArrayExtra(Intent.EXTRA_CHANGED_UID_LIST); @@ -1664,7 +1665,7 @@ public class AppOpsService extends IAppOpsService.Stub { } } } - }, packageSuspendFilter); + }, UserHandle.ALL, packageSuspendFilter, null, null); final IntentFilter packageAddedFilter = new IntentFilter(); packageAddedFilter.addAction(Intent.ACTION_PACKAGE_ADDED);