Listen to ACTION_UID_REMOVED only.
NMPS was listening to both ACTION_UID_REMOVED and ACTION_PACKAGE_REMOVED, which not only was redundant but would also cause problems when a package with shared UIDs was removed. Fixes: 31375684 Change-Id: Iec006dbbec0e6298f1e568cbf81ed3672f61b7d2
This commit is contained in:
@@ -168,7 +168,6 @@ import android.util.Xml;
|
||||
import com.android.internal.R;
|
||||
import com.android.internal.annotations.GuardedBy;
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.content.PackageMonitor;
|
||||
import com.android.internal.util.ArrayUtils;
|
||||
import com.android.internal.util.FastXmlSerializer;
|
||||
import com.android.internal.util.IndentingPrintWriter;
|
||||
@@ -402,7 +401,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
||||
|
||||
private final AppOpsManager mAppOps;
|
||||
|
||||
private final MyPackageMonitor mPackageMonitor;
|
||||
private final IPackageManager mIPm;
|
||||
|
||||
|
||||
@@ -445,8 +443,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
||||
|
||||
mAppOps = context.getSystemService(AppOpsManager.class);
|
||||
|
||||
mPackageMonitor = new MyPackageMonitor();
|
||||
|
||||
// Expose private service for system components to use.
|
||||
LocalServices.addService(NetworkPolicyManagerInternal.class,
|
||||
new NetworkPolicyManagerInternalImpl());
|
||||
@@ -578,8 +574,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
||||
|
||||
mUsageStats = LocalServices.getService(UsageStatsManagerInternal.class);
|
||||
|
||||
mPackageMonitor.register(mContext, mHandler.getLooper(), UserHandle.ALL, true);
|
||||
|
||||
synchronized (mUidRulesFirstLock) {
|
||||
synchronized (mNetworkPoliciesSecondLock) {
|
||||
updatePowerSaveWhitelistUL();
|
||||
@@ -761,6 +755,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
||||
if (LOGV) Slog.v(TAG, "ACTION_UID_REMOVED for uid=" + uid);
|
||||
synchronized (mUidRulesFirstLock) {
|
||||
mUidPolicy.delete(uid);
|
||||
removeRestrictBackgroundWhitelistedUidUL(uid, true, true);
|
||||
updateRestrictionRulesForUidUL(uid);
|
||||
synchronized (mNetworkPoliciesSecondLock) {
|
||||
writePolicyAL();
|
||||
@@ -3511,18 +3506,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
||||
}
|
||||
}
|
||||
|
||||
private class MyPackageMonitor extends PackageMonitor {
|
||||
|
||||
@Override
|
||||
public void onPackageRemoved(String packageName, int uid) {
|
||||
if (LOGV) Slog.v(TAG, "onPackageRemoved: " + packageName + " ->" + uid);
|
||||
synchronized (mUidRulesFirstLock) {
|
||||
removeRestrictBackgroundWhitelistedUidUL(uid, true, true);
|
||||
updateRestrictionRulesForUidUL(uid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class NetworkPolicyManagerInternalImpl extends NetworkPolicyManagerInternal {
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user