Register broadcast receivers for PACKAGE_ADDED/UID_REMOVED on all users.
The package and uid removed broadcast receivers are only registered in the primary user. Packages added and removed on secondary users are ignored. This is unsafe given that new packages can be granted the uid and the old policy applied to it. This addresses the problem by registering broadcast receivers for PACKAGE_ADDED and UID_REMOVED for all users. Test: 1. Create a new user 2. Install a new app in the user 3. Apply background data restriction uid policy 4. adb shell cmd netpolicy list restrict-background-blacklist 5. Uninstall app 6. adb shell cmd netpolicy list restrict-background-blacklist Change-Id: I8c87fcf0310fe1fc07095fdc599af10ba0a3d959
This commit is contained in:
committed by
Sudheer Shanka
parent
457bfa1180
commit
2ae5fa0279
@@ -947,10 +947,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
||||
final IntentFilter packageFilter = new IntentFilter();
|
||||
packageFilter.addAction(ACTION_PACKAGE_ADDED);
|
||||
packageFilter.addDataScheme("package");
|
||||
mContext.registerReceiver(mPackageReceiver, packageFilter, null, mHandler);
|
||||
mContext.registerReceiverForAllUsers(mPackageReceiver, packageFilter, null, mHandler);
|
||||
|
||||
// listen for UID changes to update policy
|
||||
mContext.registerReceiver(
|
||||
mContext.registerReceiverForAllUsers(
|
||||
mUidRemovedReceiver, new IntentFilter(ACTION_UID_REMOVED), null, mHandler);
|
||||
|
||||
// listen for user changes to update policy
|
||||
|
||||
Reference in New Issue
Block a user