diff options
| -rw-r--r-- | services/core/java/com/android/server/NetworkManagementService.java | 66 | ||||
| -rw-r--r-- | services/core/java/com/android/server/net/NetworkPolicyManagerService.java | 27 |
2 files changed, 51 insertions, 42 deletions
diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java index d3ef58fd7ee5..329f716f302f 100644 --- a/services/core/java/com/android/server/NetworkManagementService.java +++ b/services/core/java/com/android/server/NetworkManagementService.java @@ -293,8 +293,8 @@ public class NetworkManagementService extends INetworkManagementService.Stub Watchdog.getInstance().addMonitor(this); } - static NetworkManagementService create(Context context, - String socket) throws InterruptedException { + static NetworkManagementService create(Context context, String socket) + throws InterruptedException { final NetworkManagementService service = new NetworkManagementService(context, socket); final CountDownLatch connectedSignal = service.mConnectedSignal; if (DBG) Slog.d(TAG, "Creating NetworkManagementService"); @@ -310,8 +310,15 @@ public class NetworkManagementService extends INetworkManagementService.Stub } public void systemReady() { - prepareNativeDaemon(); - if (DBG) Slog.d(TAG, "Prepared"); + if (DBG) { + final long start = System.currentTimeMillis(); + prepareNativeDaemon(); + final long delta = System.currentTimeMillis() - start; + Slog.d(TAG, "Prepared in " + delta + "ms"); + return; + } else { + prepareNativeDaemon(); + } } private IBatteryStats getBatteryStats() { @@ -346,8 +353,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub for (int i = 0; i < length; i++) { try { mObservers.getBroadcastItem(i).interfaceStatusChanged(iface, up); - } catch (RemoteException e) { - } catch (RuntimeException e) { + } catch (RemoteException | RuntimeException e) { } } } finally { @@ -365,8 +371,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub for (int i = 0; i < length; i++) { try { mObservers.getBroadcastItem(i).interfaceLinkStateChanged(iface, up); - } catch (RemoteException e) { - } catch (RuntimeException e) { + } catch (RemoteException | RuntimeException e) { } } } finally { @@ -383,8 +388,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub for (int i = 0; i < length; i++) { try { mObservers.getBroadcastItem(i).interfaceAdded(iface); - } catch (RemoteException e) { - } catch (RuntimeException e) { + } catch (RemoteException | RuntimeException e) { } } } finally { @@ -406,8 +410,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub for (int i = 0; i < length; i++) { try { mObservers.getBroadcastItem(i).interfaceRemoved(iface); - } catch (RemoteException e) { - } catch (RuntimeException e) { + } catch (RemoteException | RuntimeException e) { } } } finally { @@ -424,8 +427,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub for (int i = 0; i < length; i++) { try { mObservers.getBroadcastItem(i).limitReached(limitName, iface); - } catch (RemoteException e) { - } catch (RuntimeException e) { + } catch (RemoteException | RuntimeException e) { } } } finally { @@ -483,8 +485,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub try { mObservers.getBroadcastItem(i).interfaceClassDataActivityChanged( Integer.toString(type), isActive, tsNanos); - } catch (RemoteException e) { - } catch (RuntimeException e) { + } catch (RemoteException | RuntimeException e) { } } } finally { @@ -527,7 +528,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub Log.wtf(TAG, "problem enabling bandwidth controls", e); } } else { - Slog.d(TAG, "not enabling bandwidth control"); + Slog.i(TAG, "not enabling bandwidth control"); } SystemProperties.set(PROP_QTAGUID_ENABLED, mBandwidthControlEnabled ? "1" : "0"); @@ -550,7 +551,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub synchronized (mQuotaLock) { int size = mActiveQuotas.size(); if (size > 0) { - Slog.d(TAG, "Pushing " + size + " active quota rules"); + if (DBG) Slog.d(TAG, "Pushing " + size + " active quota rules"); final HashMap<String, Long> activeQuotas = mActiveQuotas; mActiveQuotas = Maps.newHashMap(); for (Map.Entry<String, Long> entry : activeQuotas.entrySet()) { @@ -560,7 +561,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub size = mActiveAlerts.size(); if (size > 0) { - Slog.d(TAG, "Pushing " + size + " active alert rules"); + if (DBG) Slog.d(TAG, "Pushing " + size + " active alert rules"); final HashMap<String, Long> activeAlerts = mActiveAlerts; mActiveAlerts = Maps.newHashMap(); for (Map.Entry<String, Long> entry : activeAlerts.entrySet()) { @@ -570,7 +571,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub size = mUidRejectOnQuota.size(); if (size > 0) { - Slog.d(TAG, "Pushing " + size + " active UID rules"); + if (DBG) Slog.d(TAG, "Pushing " + size + " active UID rules"); final SparseBooleanArray uidRejectOnQuota = mUidRejectOnQuota; mUidRejectOnQuota = new SparseBooleanArray(); for (int i = 0; i < uidRejectOnQuota.size(); i++) { @@ -580,7 +581,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub size = mUidCleartextPolicy.size(); if (size > 0) { - Slog.d(TAG, "Pushing " + size + " active UID cleartext policies"); + if (DBG) Slog.d(TAG, "Pushing " + size + " active UID cleartext policies"); final SparseIntArray local = mUidCleartextPolicy; mUidCleartextPolicy = new SparseIntArray(); for (int i = 0; i < local.size(); i++) { @@ -592,7 +593,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub size = mUidFirewallRules.size(); if (size > 0) { - Slog.d(TAG, "Pushing " + size + " active firewall UID rules"); + if (DBG) Slog.d(TAG, "Pushing " + size + " active firewall UID rules"); final SparseIntArray uidFirewallRules = mUidFirewallRules; mUidFirewallRules = new SparseIntArray(); for (int i = 0; i < uidFirewallRules.size(); i++) { @@ -603,7 +604,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub size = mUidFirewallStandbyRules.size(); if (size > 0) { - Slog.d(TAG, "Pushing " + size + " active firewall standby UID rules"); + if (DBG) Slog.d(TAG, "Pushing " + size + " active firewall standby UID rules"); final SparseIntArray uidFirewallRules = mUidFirewallStandbyRules; mUidFirewallStandbyRules = new SparseIntArray(); for (int i = 0; i < uidFirewallRules.size(); i++) { @@ -617,7 +618,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub size = mUidFirewallDozableRules.size(); if (size > 0) { - Slog.d(TAG, "Pushing " + size + " active firewall dozable UID rules"); + if (DBG) Slog.d(TAG, "Pushing " + size + " active firewall dozable UID rules"); final SparseIntArray uidFirewallRules = mUidFirewallDozableRules; mUidFirewallDozableRules = new SparseIntArray(); for (int i = 0; i < uidFirewallRules.size(); i++) { @@ -654,8 +655,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub for (int i = 0; i < length; i++) { try { mObservers.getBroadcastItem(i).addressUpdated(iface, address); - } catch (RemoteException e) { - } catch (RuntimeException e) { + } catch (RemoteException | RuntimeException e) { } } } finally { @@ -672,8 +672,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub for (int i = 0; i < length; i++) { try { mObservers.getBroadcastItem(i).addressRemoved(iface, address); - } catch (RemoteException e) { - } catch (RuntimeException e) { + } catch (RemoteException | RuntimeException e) { } } } finally { @@ -691,8 +690,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub try { mObservers.getBroadcastItem(i).interfaceDnsServerInfo(iface, lifetime, addresses); - } catch (RemoteException e) { - } catch (RuntimeException e) { + } catch (RemoteException | RuntimeException e) { } } } finally { @@ -713,8 +711,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub } else { mObservers.getBroadcastItem(i).routeRemoved(route); } - } catch (RemoteException e) { - } catch (RuntimeException e) { + } catch (RemoteException | RuntimeException e) { } } } finally { @@ -1231,7 +1228,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub // TODO: remove from aidl if nobody calls externally mContext.enforceCallingOrSelfPermission(SHUTDOWN, TAG); - Slog.d(TAG, "Shutting down"); + Slog.i(TAG, "Shutting down"); } @Override @@ -2255,8 +2252,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub for (int i = 0; i < length; i++) { try { mNetworkActivityListeners.getBroadcastItem(i).onNetworkActive(); - } catch (RemoteException e) { - } catch (RuntimeException e) { + } catch (RemoteException | RuntimeException e) { } } } finally { diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java index dce882741acf..290034522c5d 100644 --- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java @@ -69,6 +69,7 @@ import static android.net.wifi.WifiManager.EXTRA_NETWORK_INFO; import static android.net.wifi.WifiManager.EXTRA_WIFI_CONFIGURATION; import static android.net.wifi.WifiManager.EXTRA_WIFI_INFO; import static android.text.format.DateUtils.DAY_IN_MILLIS; + import static com.android.internal.util.ArrayUtils.appendInt; import static com.android.internal.util.Preconditions.checkNotNull; import static com.android.internal.util.XmlUtils.readBooleanAttribute; @@ -1245,8 +1246,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } if (LOGD) { - Slog.d(TAG, "applying policy " + policy.toString() + " to ifaces " - + Arrays.toString(ifaces)); + Slog.d(TAG, "applying policy " + policy + " to ifaces " + Arrays.toString(ifaces)); } final boolean hasWarning = policy.warningBytes != LIMIT_DISABLED; @@ -2473,6 +2473,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { * {@link #mRestrictPower}, or {@link #mDeviceIdleMode} value. */ void updateRulesForGlobalChangeLocked(boolean restrictedNetworksChanged) { + long start; + if (LOGD) start = System.currentTimeMillis(); + final PackageManager pm = mContext.getPackageManager(); updateRulesForDeviceIdleLocked(); @@ -2485,8 +2488,12 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { PackageManager.GET_UNINSTALLED_PACKAGES | PackageManager.GET_DISABLED_COMPONENTS | PackageManager.MATCH_ENCRYPTION_AWARE_AND_UNAWARE); - for (UserInfo user : users) { - for (ApplicationInfo app : apps) { + final int usersSize = users.size(); + final int appsSize = apps.size(); + for (int i = 0; i < usersSize; i++) { + final UserInfo user = users.get(i); + for (int j = 0; j < appsSize; j++) { + final ApplicationInfo app = apps.get(j); final int uid = UserHandle.getUid(user.id, app.uid); updateRulesForUidLocked(uid); } @@ -2501,13 +2508,19 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { normalizePoliciesLocked(); updateNetworkRulesLocked(); } + if (LOGD) { + final long delta = System.currentTimeMillis() - start; + Slog.d(TAG, "updateRulesForGlobalChangeLocked(" + restrictedNetworksChanged + ") took " + + delta + "ms"); + } } void updateRulesForTempWhitelistChangeLocked() { final List<UserInfo> users = mUserManager.getUsers(); - for (UserInfo user : users) { - for (int i = mPowerSaveTempWhitelistAppIds.size() - 1; i >= 0; i--) { - int appId = mPowerSaveTempWhitelistAppIds.keyAt(i); + for (int i = 0; i < users.size(); i++) { + final UserInfo user = users.get(i); + for (int j = mPowerSaveTempWhitelistAppIds.size() - 1; j >= 0; i--) { + int appId = mPowerSaveTempWhitelistAppIds.keyAt(j); int uid = UserHandle.getUid(user.id, appId); updateRuleForAppIdleLocked(uid); updateRuleForDeviceIdleLocked(uid); |