Commit Graph

2735 Commits

Author SHA1 Message Date
Jeff Sharkey
4b6d6eb09f Merge "Flag to mark foreground jobs, fix data saver." into nyc-dev
am: 9a977b7d45

* commit '9a977b7d45df0d3d59c5eec7f9534c3bd5fcd91d':
  Flag to mark foreground jobs, fix data saver.

Change-Id: I908d725a84e9590d0da38a586b066a63473d4f28
2016-04-29 22:59:31 +00:00
Jeff Sharkey
7dbf83df03 Flag to mark foreground jobs, fix data saver.
When a job will eventually run in the foreground, the internal
scheduling needs to ignore any background network restrictions when
satisfying constraints.  This also means the job should ignore the
current device doze state, since the requesting app could get the
same behavior by starting their own foreground service.

Always dispatch network policy changes to ConnectivityService first
to ensure that it has up-to-date information.  Fix bugs around data
saver that were causing networks to not be marked as BLOCKED for
background apps; before this fix apps would have been spinning in
internal connectivity loops, thinking that the network was actually
connected when the kernel was actually blocking their traffic.

Offer new ConnectivityService method overloads to ignore the blocked
state for a specific UID.

Print unsatisfied job constraints to aid debugging.

Bug: 26571724
Change-Id: Iaaa17933e6dc1bf6d3dff26d0bfc12222e51e241
2016-04-29 13:44:07 -06:00
Android Build Merger (Role)
594e5455d3 Merge "Merge "Stop user faster and clear stale broadcasts" into nyc-dev am: ec6faca007 am: 9dee0bccd8" into nyc-mr1-dev-plus-aosp 2016-04-29 00:59:33 +00:00
Amith Yamasani
cb0a78fd39 Merge "Stop user faster and clear stale broadcasts" into nyc-dev am: ec6faca007
am: 9dee0bccd8

* commit '9dee0bccd8e692d1ca86bcf7180170f153dc99c7':
  Stop user faster and clear stale broadcasts

Change-Id: I16c4c1dfcff9f4d63da0444923a29fda0bea5ee8
2016-04-29 00:59:02 +00:00
Amith Yamasani
49392af782 Merge "Stop user faster and clear stale broadcasts" into nyc-dev am: ec6faca007
am: 2bb6008a4c

* commit '2bb6008a4cd20654b268e13276c6a56ecc0eab2b':
  Stop user faster and clear stale broadcasts

Change-Id: I423d1f8448f8ba5b54f90a2fa192f231f38b761c
2016-04-29 00:58:58 +00:00
Amith Yamasani
2bb6008a4c Merge "Stop user faster and clear stale broadcasts" into nyc-dev
am: ec6faca007

* commit 'ec6faca0078263dfbf2b41d11cdb14586e40fd75':
  Stop user faster and clear stale broadcasts

Change-Id: I36eeb177791730a26077542606559e3e4428b87e
2016-04-29 00:56:43 +00:00
Amith Yamasani
e095d2f708 Stop user faster and clear stale broadcasts
Moved several USER_STOPPING registered receivers to listen
to USER_STOPPED, since they don't need to be blocking the
shutdown of the user.

Clear all stale broadcasts when stopping a user, so that we
don't unnecessarily start up processes and deliver stale
broadcasts. This was causing code to run when the user was
already stopped and resulted in crashes when other providers
and services couldn't be started anymore. Hopefully this fixes
many of those races.

Bug: 28371487
Change-Id: Ic35a7a23fa8fe009a53f8bf7545d4dad5fa34134
2016-04-28 10:02:44 -07:00
TreeHugger Robot
33ec77265a Merge "Tethering and Data Saver: There Can Be Only One!" into nyc-dev am: 5af619f
am: 7f026f8

* commit '7f026f8927c30180817f46ee38ee292ad05997ff':
  Tethering and Data Saver: There Can Be Only One!

Change-Id: Idb0ab16443ca061f97ed2f12e0ee01d9fa61b187
2016-04-27 23:40:42 +00:00
Felipe Leme
7f026f8927 Merge "Tethering and Data Saver: There Can Be Only One!" into nyc-dev
am: 5af619f

* commit '5af619f1cdd78fa1cd799ea05f1b59b75b589a0d':
  Tethering and Data Saver: There Can Be Only One!

Change-Id: I876c9a30e9451b1c346296c233068bdfb579f584
2016-04-27 23:31:49 +00:00
TreeHugger Robot
5af619f1cd Merge "Tethering and Data Saver: There Can Be Only One!" into nyc-dev 2016-04-27 22:41:13 +00:00
Android Build Merger (Role)
ca295bc1e0 Merge "Merge changes I8de95add,Ia6f4ccfd into nyc-dev am: 6333d09 am: d00f83f" into nyc-mr1-dev-plus-aosp 2016-04-27 02:02:03 +00:00
TreeHugger Robot
deb90020d9 Merge changes I8de95add,Ia6f4ccfd into nyc-dev am: 6333d09
am: d00f83f

* commit 'd00f83f56024ddcce1d42a03c6a27f317ccab7f3':
  Remove unused event tags of IpConnectivityEvent
  Better ConnectivityMetricsEvent printing

Change-Id: I7b9588ab0533963ed918ec8aee7ba7c4ec1dea0a
2016-04-27 02:01:14 +00:00
TreeHugger Robot
e0f0a9cbde Merge changes I8de95add,Ia6f4ccfd into nyc-dev am: 6333d09
am: bd858ec

* commit 'bd858ec5d9ab3a95ab0282296b1c36737dde3e3a':
  Remove unused event tags of IpConnectivityEvent
  Better ConnectivityMetricsEvent printing

Change-Id: I07a76836e84a71844332b387fef64511c01bf6bf
2016-04-27 02:01:11 +00:00
Hugo Benichi
bd858ec5d9 Merge changes I8de95add,Ia6f4ccfd into nyc-dev
am: 6333d09

* commit '6333d09474b46971da33af9be8abe0ede5725410':
  Remove unused event tags of IpConnectivityEvent
  Better ConnectivityMetricsEvent printing

Change-Id: I57ce8977a481d3c9a441ea4dab407ec367e3adca
2016-04-27 01:57:13 +00:00
TreeHugger Robot
6333d09474 Merge changes I8de95add,Ia6f4ccfd into nyc-dev
* changes:
  Remove unused event tags of IpConnectivityEvent
  Better ConnectivityMetricsEvent printing
2016-04-27 01:49:53 +00:00
Hugo Benichi
e51bf9e2a4 Better ConnectivityMetricsEvent printing
This patch adds more information printing for IpConnectivity event
classes in android.net.metrics.

example:

ConnectivityMetricsEvent(14:36:35.799, 0, 1026): DhcpClientEvent(wlan0, DhcpRequestingState)
ConnectivityMetricsEvent(14:36:35.805, 0, 1026): DhcpClientEvent(wlan0, DhcpHaveAddressState)
ConnectivityMetricsEvent(14:36:35.809, 0, 4096): IpManagerEvent(wlan0, PROVISIONING_OK, 155ms)
ConnectivityMetricsEvent(14:36:35.810, 0, 1026): DhcpClientEvent(wlan0, DhcpBoundState)
ConnectivityMetricsEvent(14:36:35.871, 0, 2048): NetworkEvent(101, NETWORK_CONNECTED, 0ms)
ConnectivityMetricsEvent(14:36:35.874, 0, 2051): ValidationProbeEvent(101, PROBE_HTTP:599, 3ms)
ConnectivityMetricsEvent(14:36:35.874, 0, 2048): NetworkEvent(101, NETWORK_VALIDATION_FAILED, 0ms)
ConnectivityMetricsEvent(14:36:35.928, 0, 3072): DefaultNetworkEvent(0 -> 101, [WIFI], IPv4: false, IPv6: false)
ConnectivityMetricsEvent(14:36:37.008, 0, 2051): ValidationProbeEvent(101, PROBE_HTTP:204, 134ms)
ConnectivityMetricsEvent(14:36:37.008, 0, 2050): NetworkEvent(101, NETWORK_VALIDATED, 1137ms)

Also fixes a couple of event logging issues:
  - do no record spurious receive DhcpErrorEvent when a network goes down.
  - add an eventType field to IpManagerEvent instead of using the
    loggger component tag.

Bug: 28204408
Change-Id: Ia6f4ccfd7a0c63a5ccec18825f226c0b5781217b
2016-04-27 09:11:29 +09:00
TreeHugger Robot
566531cd9c Merge "Frameworks/base: Make debug helper lazy in ConnectivityManager" into nyc-dev am: 2082480
am: 6915561

* commit '69155619b9783df3609b3f43b625760b5957dbe4':

Change-Id: Ie39d3e645eeb4b792cede5e24248a9b5c6afe980
2016-04-26 15:37:28 +00:00
TreeHugger Robot
9739a467db Merge "Frameworks/base: Make debug helper lazy in ConnectivityManager" into nyc-dev am: 2082480
am: 12aea50

* commit '12aea502c103777317d6105f59365384034ced8a':
  Frameworks/base: Make debug helper lazy in ConnectivityManager

Change-Id: Ifc6094201f1c92b92465010ab6f965d7946ec0e7
2016-04-26 15:34:26 +00:00
Andreas Gampe
69155619b9 Merge "Frameworks/base: Make debug helper lazy in ConnectivityManager" into nyc-dev
am: 2082480

* commit '20824800388aa8aea5c8a21a4a5d3fbf8ff16125':
  Frameworks/base: Make debug helper lazy in ConnectivityManager

Change-Id: I38789a6165023d77c0a730591cd7fa1c45588dc5
2016-04-26 15:31:11 +00:00
TreeHugger Robot
2082480038 Merge "Frameworks/base: Make debug helper lazy in ConnectivityManager" into nyc-dev 2016-04-26 15:25:44 +00:00
Felipe Leme
9842878b75 Tethering and Data Saver: There Can Be Only One!
If tethering is on when Data Saver mode is turned on, tethering should
be disabled, and vice-versa.

BUG: 28313291
Change-Id: I7f3dadbd97ea1492ab76b41043dea7487c1db02d
2016-04-25 15:36:25 -07:00
Jeff Sharkey
6557b6af48 resolve merge conflicts of afd09db to nyc-mr1-dev-plus-aosp
Change-Id: Ie8417362964aa2fb17941d870ffcb060d3e47ea1
2016-04-25 16:19:44 -06:00
Jeff Sharkey
16580a6028 resolve merge conflicts of c79a568 to nyc-dev-plus-aosp
Change-Id: I3ee02bc596f285fa41ffcafa882ae5997ef67d22
2016-04-25 15:53:50 -06:00
Jeff Sharkey
c0ffd5162f resolve merge conflicts of 59ad404 to nyc-mr1-dev-plus-aosp
Change-Id: I65f892594034c6de4ac17459c01e146fe4c4e377
2016-04-25 15:52:11 -06:00
Andreas Gampe
b704658951 Frameworks/base: Make debug helper lazy in ConnectivityManager
Place helper map for callback field names into a holder. This avoids
the reflective calls in static initialization of ConnectivityManager
in the common (non-debug) case, which means the class can be
compile-time initialized. Also saves the storage necessary (both
the storage array as well as the reflection metadata).

Follow-up to b027e6e92b.

Bug: 27265238
Change-Id: Ib4bfaf27acd234a035a5d198458340099a156a4c
2016-04-25 10:30:53 -07:00
Jeff Sharkey
40d1fb87a4 API changes for DownloadManager and JobScheduler.
To support moving DownloadManager, add new JobScheduler network type
constraint that matches "any network except roaming."  Also add an
API to get a specific JobInfo by ID.

Since the default network can be different on a per-app basis, and
individual apps may be blocked due to app standby, evaluate job
connectivity constraints on a per-UID basis.  To implement this
cleanly, add NetworkInfo.isMetered() to match the isRoaming() API.

Add new DownloadManager APIs to support charging and device idle
constraints, which are plumbed through to JobScheduler under the
hood when scheduled.

Add filtering to JobScheduler dumpsys to omit noisy details for
packages the caller isn't interested in.

Bug: 28098882, 26571724, 19821935
Change-Id: I09ca7184ef7ce6adba399f579d415a5fb2ea6110
2016-04-24 14:39:34 -06:00
Hugo Benichi
c0c3258061 Merge "Split network monitoring and portal probe events" into nyc-dev am: 784c93e372
am: 76d7036002

* commit '76d7036002dc7ad5297f5dc30e67709db475ed54':

Change-Id: If985ed98593c2248bb16c998e5fc8898bf48bd7f
2016-04-22 09:55:38 +00:00
Hugo Benichi
c7dd9c517e Merge "Split network monitoring and portal probe events" into nyc-dev am: 784c93e372
am: cbb0d77bcd

* commit 'cbb0d77bcdacc50f130eeb93f9ef2285c6dfcaf9':
  Split network monitoring and portal probe events

Change-Id: I8c1169d61ca526449beb4509005ceae4b3dca51e
2016-04-22 09:53:19 +00:00
Hugo Benichi
76d7036002 Merge "Split network monitoring and portal probe events" into nyc-dev
am: 784c93e372

* commit '784c93e372ff8ba8ca59499a8e35d83e5bd71c1a':
  Split network monitoring and portal probe events

Change-Id: I1e9208a9c8cd178ec31edf1755cc82db980b9071
2016-04-22 09:51:01 +00:00
Hugo Benichi
134a18cdea Split network monitoring and portal probe events
This patches changes how captive portal tests and network lifecycle
events are logged as connectivity events:
  - it splits NetworkMonitorEvent into two event classes:
      - ValidationProbeEvent for logging individual probe events.
      - NetworkEvent for logging network connection, validation,
        lingering, and disconnection.
  - it removes the redundant CaptivePortalCheckResultEvent class.
    The information logged in CaptivePortalCheckResultEvent was already
    logged by NetworkMonitorEvent, but missing the evaluation durations.
    It is now logged by ValidationProbeEvent.
  - it removes the CaptivePortalStateChangeEvent class, which is now
    redundant with NetworkEvent, but missing evaluation durations.

In addition, it adds event logging when ConnectivityService puts a
network into lingering or removes a network from lingering.

Bug: 28204408
Change-Id: I8f9752e4d36175ecfcbd1545a01a41bad6e06ea4
2016-04-22 17:08:56 +09:00
Paul Jensen
1b52fcfc1d Merge "Cap number of NetworkRequests a UID can make to 100" into nyc-dev am: eaa8684da7
am: 6a8a98c57a

* commit '6a8a98c57a28e42ad2bb4cd3e2f91b484343071f':
  Cap number of NetworkRequests a UID can make to 100

Change-Id: I44df1d666f710f938951820227090c4dbbbb7293
2016-04-21 13:57:12 +00:00
Paul Jensen
6a8a98c57a Merge "Cap number of NetworkRequests a UID can make to 100" into nyc-dev
am: eaa8684da7

* commit 'eaa8684da7ef1148e347118f1a4b146caea108a1':
  Cap number of NetworkRequests a UID can make to 100

Change-Id: Ic664fa080316eff75dd22fc8e84431cb0eb903be
2016-04-21 13:54:53 +00:00
Paul Jensen
eaa8684da7 Merge "Cap number of NetworkRequests a UID can make to 100" into nyc-dev 2016-04-21 13:47:13 +00:00
Android Build Merger (Role)
16220f6683 Merge "Merge "Some fixes in ConnectivityService event logging" into nyc-dev am: 7261fb27de am: 6ab129c8e4" into nyc-mr1-dev-plus-aosp 2016-04-21 04:17:37 +00:00
Hugo Benichi
f6a016ed7e Merge "Some fixes in ConnectivityService event logging" into nyc-dev am: 7261fb27de
am: 6ab129c8e4

* commit '6ab129c8e427daa7577d31ba3f77221fc2c584af':

Change-Id: I7d2861350744e3bdefe6f4315d9a6de79d136e1c
2016-04-21 04:17:08 +00:00
Android Build Merger (Role)
072b629abf Merge "Merge "Some fixes in ConnectivityService event logging" into nyc-dev am: 7261fb27de am: 6ab129c8e4" into nyc-mr1-dev-plus-aosp 2016-04-21 04:15:41 +00:00
Hugo Benichi
1e7c9fb57e Merge "Some fixes in ConnectivityService event logging" into nyc-dev am: 7261fb27de
am: eb8372d38c

* commit 'eb8372d38c31af196285d2fee60ae53adb113eca':
  Some fixes in ConnectivityService event logging

Change-Id: Ie356b2df2b84b36e6a2a52d3246ff434557ee89b
2016-04-21 04:15:10 +00:00
Hugo Benichi
15570a55f3 Merge "Some fixes in ConnectivityService event logging" into nyc-dev am: 7261fb27de
am: 6ab129c8e4

* commit '6ab129c8e427daa7577d31ba3f77221fc2c584af':
  Some fixes in ConnectivityService event logging

Change-Id: Ib605d0f63a4b7477d56508213da8663cb681b1ef
2016-04-21 04:15:07 +00:00
Hugo Benichi
6ab129c8e4 Merge "Some fixes in ConnectivityService event logging" into nyc-dev
am: 7261fb27de

* commit '7261fb27de16bb6d3ebd81bd3b73062bd212ea7e':
  Some fixes in ConnectivityService event logging

Change-Id: I0ca861a1d35eb6cdb5490d04a725d64465eebc31
2016-04-21 04:12:56 +00:00
Hugo Benichi
436d22e6b8 Some fixes in ConnectivityService event logging
Bug: 28204408
Change-Id: I44ed9539bb213a845c2bcc2861c947af7c3c9ef4
2016-04-21 11:03:08 +09:00
TreeHugger Robot
f9ce6c82ff Merge "Added onRestrictBackgroundWhitelistChanged callback." into nyc-dev am: 9724fba
am: 863b80d

* commit '863b80d6072f0e2563ab87fe06fe26cd07724e4c':

Change-Id: I2b3381b6f351a3f9dffa2b0ae1c2d50688b9ad85
2016-04-20 21:42:40 +00:00
TreeHugger Robot
4988f49b83 Merge "Added onRestrictBackgroundWhitelistChanged callback." into nyc-dev am: 9724fba
am: 0627850

* commit '0627850430ba3dad041891de570e0d08e22c13d2':
  Added onRestrictBackgroundWhitelistChanged callback.

Change-Id: I278f8b4f8e29ea69b15e7bef9556c0ed0a81c82b
2016-04-20 21:11:50 +00:00
Felipe Leme
863b80d607 Merge "Added onRestrictBackgroundWhitelistChanged callback." into nyc-dev
am: 9724fba

* commit '9724fba83545fd075cbda62bb13cdc7820c7291a':
  Added onRestrictBackgroundWhitelistChanged callback.

Change-Id: I1ee90168f1cf29a117961ba1e269fbc89c7f443b
2016-04-20 21:10:41 +00:00
Paul Jensen
7b87065990 Cap number of NetworkRequests a UID can make to 100
This prevents DoSing ConnectivityService with too many requests.

Fixes: 27253080
Change-Id: Id0480d220b2f01b9ef1146bef8ead2fc8287e28d
2016-04-20 10:52:47 -04:00
Felipe Leme
987d8ef741 Added onRestrictBackgroundWhitelistChanged callback.
When users add or remove an app to the Data Saver Mode whitelist, the
app is notified through a
ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED. But besides this
broadcast, it's also necessary to notify internal apps such Settings,
hence a new method is being added to INetworkPolicyListener.

BUG: 27481520
Change-Id: I1537a77becf6b7da1535ed5faabdc894fd9f7084
2016-04-19 12:06:00 -07:00
Android Build Merger (Role)
ee8705494d Merge "Remove unnecessary allocation+unboxing of objects. am: 46f0dd6 am: 93aa6a7" into nyc-mr1-dev-plus-aosp 2016-04-18 10:38:02 +00:00
Narayan Kamath
1e222ff323 Remove unnecessary allocation+unboxing of objects. am: 46f0dd6
am: 4c89ae0

* commit '4c89ae0ee4f3d73d84843bf05cdc328b5e821da3':
  Remove unnecessary allocation+unboxing of objects.

Change-Id: I46f5ec0b9b8bc14073bcf7dc643bc909072d53ff
2016-04-18 10:36:37 +00:00
Narayan Kamath
93aa6a7f96 Remove unnecessary allocation+unboxing of objects.
am: 46f0dd6

* commit '46f0dd69cdbc4fd8bac8330425f79dca3be4d4a1':
  Remove unnecessary allocation+unboxing of objects.

Change-Id: Idfffa8fad0f6bcffa954752910524bdc879d65b7
2016-04-18 10:31:37 +00:00
Lorenzo Colitti
57f1e32f15 resolve merge conflicts of 72fa0d4 to nyc-dev-plus-aosp
Change-Id: Id7f317a20e422b215efff89a5c71c9b445d18cf4
2016-04-18 17:58:31 +09:00
Narayan Kamath
46f0dd69cd Remove unnecessary allocation+unboxing of objects.
Transforming String->int can be done with 0 allocations
using Integer.parseInt.

bug: 28078871
Change-Id: I8d9f322d7154728849dde61ef282046032858d60
2016-04-18 09:55:59 +01:00