DO NOT MERGE. 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.

BUG: 31375684

Change-Id: I78da95ef168321a837ed85ce2787a66a16830a78
This commit is contained in:
Felipe Leme
2016-09-08 17:09:08 -07:00
parent 63a07e80d6
commit ecbdb8834d

View File

@@ -163,7 +163,6 @@ import android.util.Xml;
import com.android.internal.R;
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;
@@ -366,7 +365,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
private final AppOpsManager mAppOps;
private final MyPackageMonitor mPackageMonitor;
private final IPackageManager mIPm;
@@ -411,8 +409,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());
@@ -540,8 +536,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
mUsageStats = LocalServices.getService(UsageStatsManagerInternal.class);
mPackageMonitor.register(mContext, mHandler.getLooper(), UserHandle.ALL, true);
synchronized (mRulesLock) {
updatePowerSaveWhitelistLocked();
mPowerManagerInternal = LocalServices.getService(PowerManagerInternal.class);
@@ -731,6 +725,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
if (LOGV) Slog.v(TAG, "ACTION_UID_REMOVED for uid=" + uid);
synchronized (mRulesLock) {
mUidPolicy.delete(uid);
removeRestrictBackgroundWhitelistedUidLocked(uid, true, true);
updateRestrictionRulesForUidLocked(uid);
writePolicyLocked();
}
@@ -3479,18 +3474,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 (mRulesLock) {
removeRestrictBackgroundWhitelistedUidLocked(uid, true, true);
updateRestrictionRulesForUidLocked(uid);
}
}
}
private class NetworkPolicyManagerInternalImpl extends NetworkPolicyManagerInternal {
@Override