Commit Graph

1832 Commits

Author SHA1 Message Date
Tony Mak
6dd26947ad Merge "Get application info in the correct user id" into pi-dev
am: 28a696afb4

Change-Id: I763a8fae339cb9ca56b713c695d3e97e3c46c3d5
2018-03-26 17:15:29 +00:00
Tony Mak
28a696afb4 Merge "Get application info in the correct user id" into pi-dev 2018-03-26 17:04:47 +00:00
Michael West
07e389da47 Merge "add airplane mode shell commands to connectivity" into pi-dev
am: e0c1ee6414

Change-Id: I81fd444f1364c394d17759c261798b3a3f85b826
2018-03-26 16:51:00 +00:00
Michael West
e0c1ee6414 Merge "add airplane mode shell commands to connectivity" into pi-dev 2018-03-26 16:38:03 +00:00
Tony Mak
2f6bcd9c06 Get application info in the correct user id
Fixes: 76396560

Test: Create work profile and launch hangouts in work profile.
Change-Id: Ic3727ac899153b6a96dd9b6d6921c32ba0bbd93e
2018-03-26 11:58:38 +00:00
Erik Kline
c54b9cb71a Pass all relevant resolver info to netd
Test: runtest frameworks-net passes
Test: manual testing of opportunistic and strict mode works
Bug: 34953048
Bug: 64133961
Bug: 72345192
Merged-In: I96f7747b8f0bb38d95579b688b4c2d068f1229cf
Merged-In: Ia4d896c4cc33c02f0c46d5d4c760cc33b13dff0b
Change-Id: Ia4f1905e1fa60e7a468c2246fb809191d2ba796b
(cherry picked from commit e5dac904d361a349f1cfc48500a678d22e3a7316)
2018-03-23 21:59:24 -07:00
mswest46
32928412a2 add airplane mode shell commands to connectivity
Fixes: 74410990
Test: Manually checked that commands enable/disable airplane mode.

Change-Id: I942bd4679fcd498a39b9b2cab68e8d3c00ce62d3
2018-03-24 01:53:45 +00:00
Erik Kline
905e6feea0 Merge "Pass all relevant resolver info to netd" am: ce907ddfc4
am: 189415933f

Change-Id: I96f7747b8f0bb38d95579b688b4c2d068f1229cf
2018-03-24 01:16:37 +00:00
Treehugger Robot
ce907ddfc4 Merge "Pass all relevant resolver info to netd" 2018-03-23 23:41:11 +00:00
Erik Kline
286974f384 Pass all relevant resolver info to netd
Test: runtest frameworks-net passes
Test: manual testing of opportunistic and strict mode works
Bug: 34953048
Bug: 64133961
Bug: 72345192
Change-Id: Ia4f1905e1fa60e7a468c2246fb809191d2ba796b
2018-03-22 23:50:13 -07:00
Chalard Jean
d7a649f8fc Merge "Have PermissionMonitor arbiter which app can access background networks" into pi-dev
am: 1f654aa247

Change-Id: I8d725b07e59654232ee41b82aac007dc6a495a01
2018-03-23 06:48:49 +00:00
Chalard Jean
433c0e652f Merge "Have PermissionMonitor arbiter which app can access background networks" 2018-03-23 06:15:00 +00:00
Chalard Jean
38354d1f60 Have PermissionMonitor arbiter which app can access background networks
This will let ConnectivityService send the right callbacks to the
relevant apps.

Test: manual with apps
      runtest frameworks-net
      cts
      new tests for this functionality
Bug: 67408339

Change-Id: I6f08efd9e73c7e191f833d7f307a3bf4c9e2f0b4
2018-03-23 13:37:56 +09:00
Remi NGUYEN VAN
7370f4270e Merge "Add method to NetworkStatsService for UID stats." am: db89ca3c12
am: f61f5ff462

Change-Id: I2527d95000c7500c824ede70f87ecb38e21ed323
2018-03-23 04:01:09 +00:00
Chalard Jean
e64b8d7bce Have PermissionMonitor arbiter which app can access background networks
This will let ConnectivityService send the right callbacks to the
relevant apps.

Test: manual with apps
      runtest frameworks-net
      cts
      new tests for this functionality
Bug: 67408339

Change-Id: I6f08efd9e73c7e191f833d7f307a3bf4c9e2f0b4
2018-03-22 19:03:59 +09:00
Remi NGUYEN VAN
1cb92c713f Add method to NetworkStatsService for UID stats.
Useful for clients such as BatteryStats which currently rely
on NetworkStatsFactory. Data at that stage is incomplete as
it does not account for tethering, VT data and corresponding
464xlat corrections.

Test: runtest frameworks-net, CTS tests pass.
Change-Id: I763b77f601c827fd2963204694fb5b45425cc791
2018-03-22 15:31:28 +09:00
Chad Brubaker
e5430e041f Merge "Expose CONNECTIVITY_ACTION to Instant Apps" into pi-dev
am: aa72b2036a

Change-Id: I0434f8c7292a85e25df3da2858e4d89cf55fab3d
2018-03-10 06:20:56 +00:00
Chad Brubaker
caced413da Expose CONNECTIVITY_ACTION to Instant Apps
Test: Broadcast is visible to Instant Apps
Bug: 69421898
Change-Id: I8435e7723cf7a722668b97ff087d1f4453d3e7b7
2018-03-08 10:37:09 -08:00
Andreas Gampe
85c8c3d822 Connectivity: Fix map access
Found by Errorprone.

Bug: 73288226
Test: mmma frameworks/base/services
Merged-In: I1c4b35811c72d389e53e28c3eb1b411009471b92
Merged-In: Ice91ac58257551485231da4664027a281237de4b
Merged-In: I7d2f578b54c69139be8b887a2381ac1b2e0673a3
Change-Id: I63edad58dbc909c1e772bde85a1b9dd98c551fb1
(cherry picked from commit 3ba8106c23cdf518527f75beaabb48bf3182fb4d)
2018-03-07 11:36:57 +09:00
Andreas Gampe
97442c25ec Merge "Connectivity: Fix map access" am: a1b71308b5
am: 89c0d57a15

Change-Id: Ice91ac58257551485231da4664027a281237de4b
2018-03-06 19:38:18 +00:00
Lorenzo Colitti
9423045c3d Merge "Minor cleanups to NetworkStats interface tracking." am: 6455e31b76
am: 9d04a8c92d

Change-Id: Ifa76adb79440b1d97c6cfc637509c0ddaefa76fa
2018-03-06 07:47:11 +00:00
Treehugger Robot
a1b71308b5 Merge "Connectivity: Fix map access" 2018-03-06 05:39:39 +00:00
Andreas Gampe
39744fd0c7 Connectivity: Fix map access
Found by Errorprone.

Bug: 73288226
Test: mmma frameworks/base/services
Change-Id: I63edad58dbc909c1e772bde85a1b9dd98c551fb1
2018-03-05 17:23:07 -08:00
Lorenzo Colitti
54ddecb0f8 Minor cleanups to NetworkStats interface tracking.
Currently, when a network goes into CONNECTED state, we call
updateLinkProperties and then notifyIfacesChangedForNetworkStats.
The latter is unnecessary, as there are exactly two cases:

1. networkAgent.linkProperties != null: updateLinkProperties will
   call notifyIfacesChangedForNetworkStats, because oldLp is null
   and networkAgent.linkProperties is not null.
2. networkAgent.linkProperties is null: there is no need to call
   notifyIfacesChangedForNetworkStats, because no interfaces were
   added or removed. When they are, updateLinkProperties will be
   called again.

Removing the call to notifyIfacesChangedForNetworkStats avoids
a stats poll, which is a minor performance improvement.

Also, remove the NetworkStatsService code to do asynchronous
interface updates, since it has no callers.

Bug: 72107146
Test: builds, boots
Test: runtest frameworks-net
Change-Id: I9337ea26c0505a1c66ceda01254b68e25cd7972c
2018-03-05 15:48:23 +09:00
Chalard Jean
0a8dbc7886 Merge "Give apps with NETWORK_SETTINGS right to see any VPN." am: faed85f2b0 am: 331e50f601
am: ec7c68cb2b

Change-Id: I9a9d0eb212f6de105abc070a1eb5ff698b4e67bc
2018-03-02 13:25:02 +00:00
Chalard Jean
ec7c68cb2b Merge "Give apps with NETWORK_SETTINGS right to see any VPN." am: faed85f2b0
am: 331e50f601

Change-Id: I7f08217c5abc86a8784b91145f1b02d6693b3919
2018-03-02 13:17:23 +00:00
Chalard Jean
9a396cc3c6 Give apps with NETWORK_SETTINGS right to see any VPN.
...not only the ones that apply to them.

Bug: 73217368
Test: runtest frameworks-net and CTS
Change-Id: I436972a3e51e98bdd815771b451bcedadf684763
2018-03-02 17:10:11 +09:00
nharold
2b1592206b Merge "Fix ConnectivityServiceTest for NATT Keepalive" am: cab3e6009c am: 4e2e3f823b
am: 3a5a4efd8a

Change-Id: I2ce9d740b82f591b847150ec1eaffa39bfbd0241
2018-02-20 23:21:59 +00:00
nharold
3a5a4efd8a Merge "Fix ConnectivityServiceTest for NATT Keepalive" am: cab3e6009c
am: 4e2e3f823b

Change-Id: I3c28cbb55f8226776792df9cacf1b5e527389157
2018-02-20 23:07:53 +00:00
nharold
cab3e6009c Merge "Fix ConnectivityServiceTest for NATT Keepalive" 2018-02-20 19:17:23 +00:00
Chalard Jean
0bf8c2522a Merge changes Ic28c5653,Ic635f97b am: 0ca21cfdfe am: a0402e1baa
am: a9b555cfa1

Change-Id: Ieea9917b3a68e08686c74ebf39e5fed61f641a7a
2018-02-19 08:36:01 +00:00
Chalard Jean
a9b555cfa1 Merge changes Ic28c5653,Ic635f97b am: 0ca21cfdfe
am: a0402e1baa

Change-Id: I6596fae1946bffade125a14b3bd095eda557a7a5
2018-02-19 08:24:47 +00:00
Chalard Jean
0bfcb6c5b2 Merge "Don't refcount TRACK_DEFAULT requests." am: 7207e1a65a am: 04c70248fb
am: e00ba2e603

Change-Id: Ic2b19e9f3f7d8f67cc5854688e5e14ca2a419e66
2018-02-19 04:12:50 +00:00
Chalard Jean
e00ba2e603 Merge "Don't refcount TRACK_DEFAULT requests." am: 7207e1a65a
am: 04c70248fb

Change-Id: Ib3e0e89a9d80546fbf3555cfdf715f2bd8e4ab94
2018-02-19 04:01:17 +00:00
Treehugger Robot
0ca21cfdfe Merge changes Ic28c5653,Ic635f97b
* changes:
  [LT2] Fix release request while lingering.
  [LT1] Add a test for release request while lingering
2018-02-19 03:45:27 +00:00
Chalard Jean
9f48d166f6 [LT2] Fix release request while lingering.
Test: runtest framework-net
Change-Id: Ic28c5653d16351903b792e76ba8b199b7ed1f8d4
2018-02-19 11:00:58 +09:00
Nathan Harold
0990bc8b57 Fix ConnectivityServiceTest for NATT Keepalive
Fix test breakages I caused when adding cell
support for NATT keepalives.

-Make the minimum keepalive interval a constant in
 ConnectivityManager and use it in tests.
-Re-Disallow IPv6 Keepalives

Bug: 73327535
Test: 'runtest -x ConnectivityServiceTest' now passes
Change-Id: I5ec4367d250ee371014e65c897c3897a25a05e2d
2018-02-16 16:34:50 -08:00
Chalard Jean
b0bf117861 Don't refcount TRACK_DEFAULT requests.
This has no concrete impact on the behavior of ConnectivityService,
but in principle TRACK_DEFAULT requests should not be counted toward
requests that make a network foreground. It does not have an impact
because only VPNs could be affected by this, and VPNs are always in
the foreground by definition.

Test: runtest frameworks-net
Test: cts
Change-Id: Id2ae6b5c9d542fe168e64ed713b6ec0a04062c82
2018-02-16 17:59:29 +09:00
Chalard Jean
74ef4d0b1d Merge changes I3d68dbf8,I6ea524bb,I978d9119 am: 91d3912eab am: 004939fd82
am: d9663d47c5

Change-Id: Ic6d639358c3310820bd925df93d4843d7edffc57
2018-02-15 14:23:57 +00:00
Chalard Jean
d9663d47c5 Merge changes I3d68dbf8,I6ea524bb,I978d9119 am: 91d3912eab
am: 004939fd82

Change-Id: Iebc6a31b975fd7ba429bd9bae89cd9783776d1c3
2018-02-15 13:09:26 +00:00
Chalard Jean
a23bc9e501 Publish FOREGROUND and add NOT_SUSPENDED capabilities.
NOT_SUSPENDED and FOREGROUND are capabilities that need to
be public so as to reach feature parity with what information
can be gotten through the use of CONNECTIVITY_ACTION and
synchronous calls to ConnectivityManager. This change makes
them public, and wires up the NOT_SUSPENDED capability.
This deprecates in effect the old onSuspended and onResumed
callbacks, but these have never been public.

This also converts the onAvailable path from a multiple
binder call design to a simpler, single binder call. This
is only for internal convenience

Test: runtest frameworks-net
Test: cts
Test: also manual testing
Change-Id: I6ea524bb361ecef0569ea2f9006c1e516378bc25
2018-02-14 15:14:41 +09:00
Chalard Jean
2550e069bc Send null UIDs to apps instead of single-uid lists.
Prior to this change ConnectivityManager used to patch in the UID
of the requesting app inside the NetworkCapabilities sent to it.
The rationale was that the app may not know what other apps may
use the network, so the view it should have of the network should
always say the network only applies to that app.

But this has an unfortunate side effect : apps can't match the
received network against a default NetworkCapabilities. Ostensibly
this only applies to the system because all involved calls are
@hide, but still : system code would get some NetworkCapabilities,
for example using networkCapabilitiesForType, and then try to
match the capabilities of an available network using
satisfiedByNetworkCapabilities. Because the passed network is
declared to only apply to one's own UID and the UIDs of the
NetworkCapabilities are set to null meaning "I need this network
to apply to all UIDs", the answer will be "false".

While this is WAI in a sense, it is very counter-intuitive that
code trying to match a network would be required to patch in its
own UIDs.
There are three ways of fixing this :
1. Require all apps to do the above. It's correct, but it's
   cumbersome and counterintuitive. Multiple places in existing
   code needs to be fixed, Tethering is an example.
2. Write the UIDs of the caller in any NetworkCapabilities object
   that is created. This is not very practical, because it imposes
   the converse requirement on all NetworkAgents, which would then
   have to clear the UIDs before they send the capabilities to
   ConnectivityService. All NetworkAgents need to be fixed.
3. Instead of sending an object with a list of one UID to apps,
   send a null list. The drawback is that the networks nominally
   look to apps like they apply to all apps. I argue this does
   not matter ; what matters is that the UID lists do not leak.
   Clients just see a null list of UIDs (and third party can't
   even access them without using reflection). No other changes
   are required besides this two-line patch.

This patch implements 3. I believe it is the saner approach, with
both the most intuitive behavior and the best backward compatibility
characteristics, as well as the easiest change.

This does not encroach on the future plans to make the actual
UID list available to apps with NETWORK_SETTINGS.

Test: runtest frameworks-net
Change-Id: I978d91197668119e051c24e1d04aafe1644a41cf
2018-02-14 12:47:15 +09:00
Eric Enslen
1961fb7435 fix isActiveNetworkMetered with VPNs am: 97f679b04f
am: 8fa2e19e73

Change-Id: I177eff1237dd59514ccf91397a3d307148bc37b1
2018-02-09 21:40:42 +00:00
Eric Enslen
8fa2e19e73 fix isActiveNetworkMetered with VPNs
am: 97f679b04f

Change-Id: I8d59bc23e9153c54e64af59816d11301b490c9eb
2018-02-09 21:26:09 +00:00
Eric Enslen
97f679b04f fix isActiveNetworkMetered with VPNs
Bug: 72871435
Test: flashed and verified, also ran runtest framework-net

Change-Id: I69319a7db269489053426bb2d41574180be2d43d
2018-02-08 17:53:13 +00:00
Nathan Harold
7f8d0be10d Rework KeepalivePacketData for Compatibility with Cell
KeepalivePacketData currently mixes multiple concepts: the
list of parameters that are used to generate a keepalive
packet, the keepalive packet itself, and the parameters that
are needed to send a keepalive packet over an ethernet link.

The KeepalivePacketData is now a parcelable that can be used
generically by any NetworkAgent, regardless of how that Agent
fulfills its duty to initiate and maintain a keepalive session.

Bug: 69063212
Test: verified with SL4A, additional tests pending
Merged-In: I23dc4827ae729583356a8ff0f02e39a2ad2b81f5
Change-Id: I23dc4827ae729583356a8ff0f02e39a2ad2b81f5
(cherry picked from commit 5be3f5a2b1)
2018-01-29 11:20:20 -08:00
Nathan Harold
583c95be3b Relocate KeepalivePacketData to frameworks/base
Due to an issue resolving the boot classpath, the
KeepalivePacketData structure cannot be referenced
by frameworks/opt/telephony while it is in services.

-Move KeepalivePacketData to android.net
-Also, relocate IpUtils without changing the package
 name.

Bug: 38350389
Test: compilation
Merged-In: If5fc63e9ad8b9b2d4c2fee47ff4bab2ab190a05a
Change-Id: If5fc63e9ad8b9b2d4c2fee47ff4bab2ab190a05a
(cherry picked from commit f8a2bc3eee)
2018-01-29 11:19:43 -08:00
TreeHugger Robot
f5082af9fa Merge "Determine the multipath hint from data usage." 2018-01-25 03:49:19 +00:00
Nathan Harold
5be3f5a2b1 Rework KeepalivePacketData for Compatibility with Cell
KeepalivePacketData currently mixes multiple concepts: the
list of parameters that are used to generate a keepalive
packet, the keepalive packet itself, and the parameters that
are needed to send a keepalive packet over an ethernet link.

The KeepalivePacketData is now a parcelable that can be used
generically by any NetworkAgent, regardless of how that Agent
fulfills its duty to initiate and maintain a keepalive session.

Bug: 69063212
Test: verified with SL4A, additional tests pending
Change-Id: I23dc4827ae729583356a8ff0f02e39a2ad2b81f5
2018-01-24 11:13:19 -08:00
Nathan Harold
f8a2bc3eee Relocate KeepalivePacketData to frameworks/base
Due to an issue resolving the boot classpath, the
KeepalivePacketData structure cannot be referenced
by frameworks/opt/telephony while it is in services.

-Move KeepalivePacketData to android.net
-Also, relocate IpUtils without changing the package
 name.

Bug: 38350389
Test: compilation
Change-Id: If5fc63e9ad8b9b2d4c2fee47ff4bab2ab190a05a
(cherry picked from commit bd4093be7cab51d6ad031854324134a9c8637c2c)
2018-01-24 10:26:04 -08:00