Commit Graph

3645 Commits

Author SHA1 Message Date
Robert Greenwalt
67bb8b1401 Merge "Mark Restricted APN connections as restricted." am: e3143d9943 am: 1778682242 am: 88a6acb9f6 -s ours
am: 756d33bfaf  -s ours

Change-Id: Ieae70ca90bff3747ef66c6f15258fef28d061ce4
2017-04-21 23:50:37 +00:00
Robert Greenwalt
756d33bfaf Merge "Mark Restricted APN connections as restricted." am: e3143d9943 am: 1778682242
am: 88a6acb9f6  -s ours

Change-Id: I7a0019557721593761ae605db8e28bf4e15c06b0
2017-04-21 23:36:13 +00:00
Treehugger Robot
e3143d9943 Merge "Mark Restricted APN connections as restricted." 2017-04-21 23:12:52 +00:00
Robin Lee
611b3fd2f9 Merge "Use Vpn rules (not firewall) for always-on VPN" am: dfc99e9da8 am: cd8557d15a am: 4de3794c26
am: 3f31fd009f

Change-Id: If94864a6320af8ae69777abca0483ce62ff2ebc9
2017-04-21 22:24:31 +00:00
Robin Lee
3f31fd009f Merge "Use Vpn rules (not firewall) for always-on VPN" am: dfc99e9da8 am: cd8557d15a
am: 4de3794c26

Change-Id: Ic1e96eac68ddc8a713b3c71b5c126cb8b99c59f5
2017-04-21 22:17:15 +00:00
Robert Greenwalt
509e6d0795 Mark Restricted APN connections as restricted.
If anything unrestricted is bundled in the whole thing has to be
unrestricted (we can't restrict based on destination or intent)
but the NOT_METERED flag wasn't taken into account.

This wasn't a problem before because telephony set that statically
and late, but a change caused it to be marked NOT_METERED earlier
which exposed this bug.

bug: 37208956
Merged-In: I7b7a1c38621ce0ecde8cf041e82b1ebb7a9c6f15
Test: new NetworkCapabilitiesTest.  Fails without fix, works with.
Change-Id: I86c1b2854413a94662aa53e697d32380695ab9ac
2017-04-21 22:00:17 +00:00
Treehugger Robot
dfc99e9da8 Merge "Use Vpn rules (not firewall) for always-on VPN" 2017-04-21 21:53:15 +00:00
Erik Kline
01a4ab5a30 Merge "Add local-only hotspot info into tether state change broadcast" into oc-dev am: 83e2a25461
am: 79b01a88e0

Change-Id: I903e773977787d35ade7c32afffb5e5e009c3a45
2017-04-21 07:06:35 +00:00
Erik Kline
79b01a88e0 Merge "Add local-only hotspot info into tether state change broadcast" into oc-dev
am: 83e2a25461

Change-Id: I5c91199114ee1a48629523377fc06deda48f5579
2017-04-21 07:01:35 +00:00
Erik Kline
7c3922227e Add local-only hotspot info into tether state change broadcast
Test: as follows
    - build
    - flashed
    - booted
    - "runtest frameworks-net" passes
    - manually starting tethering shows Settings and icon updates
Bug: 31466854
Bug: 32163131

Change-Id: I938074587dfeec221c5cdb43a392802ad3fc3589
2017-04-21 13:26:04 +09:00
Erik Kline
96128a467a Merge "Add local-only hotspot info into tether state change broadcast" am: 200383cab1 am: 6af3dd0fc3 am: 3fa8908370
am: ba50c8131c

Change-Id: I7fa567b7af041bf2557cdc1d97a73440758ceb0c
2017-04-20 16:29:52 +00:00
Hugo Benichi
048278716c Merge "ConnectivityManager: remove obsolete callback types" am: 3cd509d943 am: 23ee1621c7 am: b51307e12e
am: ca3ae9b598

Change-Id: Ic919f56d9aca75842129f96d0b5b75b53c1e9fd8
2017-04-20 16:28:06 +00:00
Erik Kline
d5720d8bbe Merge "Make tetherChangePermission to be secured for AppOps permission" am: fd01e5ee14 am: 0d1f04384f am: d9bfb83d96
am: 3ebbe460b1

Change-Id: I7f09742f4c8e78d41a0bce29fe5d356472819869
2017-04-20 16:22:44 +00:00
Hugo Benichi
3ad9d45ef2 resolve merge conflicts of 7bbd03be361f to oc-dev-plus-aosp
am: d2348bc4d2

Change-Id: Icc32ac9d8b5301e43579194736cceb24637de0c8
2017-04-20 16:14:29 +00:00
Erik Kline
ba50c8131c Merge "Add local-only hotspot info into tether state change broadcast" am: 200383cab1 am: 6af3dd0fc3
am: 3fa8908370

Change-Id: If3851c3f15314e3c0d357e154049aaa2b8b5c8e7
2017-04-20 14:02:24 +00:00
Hugo Benichi
ca3ae9b598 Merge "ConnectivityManager: remove obsolete callback types" am: 3cd509d943 am: 23ee1621c7
am: b51307e12e

Change-Id: I2f5fad0b559b972e82ecacdfcdd3805f0fbb2655
2017-04-20 13:59:32 +00:00
Erik Kline
3ebbe460b1 Merge "Make tetherChangePermission to be secured for AppOps permission" am: fd01e5ee14 am: 0d1f04384f
am: d9bfb83d96

Change-Id: I6dd418684b1a40292cd496ead3613cf938577c09
2017-04-20 13:52:35 +00:00
Hugo Benichi
d2348bc4d2 resolve merge conflicts of 7bbd03be361f to oc-dev-plus-aosp
Conflits were:
  - static import section of ConnectivityService
  - code deleted in commit 94f0bfcda4

Test: built.
Change-Id: I0e026522558f39d8ae6812b62a30f2501923ab86
2017-04-20 22:26:50 +09:00
Treehugger Robot
200383cab1 Merge "Add local-only hotspot info into tether state change broadcast" 2017-04-20 12:47:55 +00:00
Hugo Benichi
3cd509d943 Merge "ConnectivityManager: remove obsolete callback types" 2017-04-20 12:38:29 +00:00
Erik Kline
449ccfe621 Add local-only hotspot info into tether state change broadcast
Test: as follows
    - build
    - flashed
    - booted
    - "runtest frameworks-net" passes
    - manually starting tethering shows Settings and icon updates
Bug: 31466854
Bug: 32163131

Change-Id: I938074587dfeec221c5cdb43a392802ad3fc3589
2017-04-20 19:44:01 +09:00
Erik Kline
fd01e5ee14 Merge "Make tetherChangePermission to be secured for AppOps permission" 2017-04-20 04:28:53 +00:00
Hugo Benichi
e022b3f929 Merge "ConnectivityManager: unify prety printing of callback types." 2017-04-20 04:28:45 +00:00
Hugo Benichi
4802c80860 ConnectivityManager: remove obsolete callback types
This patch also:
  - suppresses callback triggers from ConnectivityService for these
    obsolete callback types.
  - marginally refactors callCallbackForRequest().

Test: runtest frameworks-net
Change-Id: Idfb75640732943c599de4975f252f706d21ad594
2017-04-20 10:42:38 +09:00
Hugo Benichi
94f0bfcda4 ConnectivityManager: unify prety printing of callback types.
And also remove some small code duplication (checkNotNull).

Test: built, flashed, runtest frameworks-net
Change-Id: Id6c13bca9d12f70b88806032e0a4fa198efbedc6
2017-04-20 10:42:38 +09:00
Robert Greenwalt
2ee2657b5a Merge commit '6696e17ffe0100664b2db9344b26df355597f40b' into manual_merge_695d2c6df10c
Change-Id: I768181b347ac5676f3535d94a26ca9e81178a110
2017-04-19 14:03:30 -07:00
Robert Greenwalt
6696e17ffe Merge commit 'd6c9efa3323f3f5ae44abe312ae5a1e6ef3816ce' into manual_merge_d6c9efa3323f
Change-Id: I86d5e87cc3884d8fc3eb326a92b8871ef0926aa6
2017-04-19 11:24:03 -07:00
Tetsutoki Shiozawa
be4d90f2c3 Make tetherChangePermission to be secured for AppOps permission
Symptom:
AppOps verified the incorrect package of calling tether state
changing API.
It threw SecurityException by mistake.

Solution:
Pass the correct package name to enforceTetherChangePermission.

Bug: 32931147
Change-Id: Ia1167f26f556678b189a24a4a716f1a7e5cb12eb
2017-04-19 16:50:33 +09:00
Robert Greenwalt
3db46c9acb Mark Restricted APN connections as restricted.
If anything unrestricted is bundled in the whole thing has to be
unrestricted (we can't restrict based on destination or intent)
but the NOT_METERED flag wasn't taken into account.

This wasn't a problem before because telephony set that statically
and late, but a change caused it to be marked NOT_METERED earlier
which exposed this bug.

bug: 37208956
Test: new NetworkCapabilitiesTest.  Fails without fix, works with.
Change-Id: I7b7a1c38621ce0ecde8cf041e82b1ebb7a9c6f15
2017-04-18 11:29:20 -07:00
Erik Kline
c556973e0e Merge changes I76ae853c,If94102c7 into oc-dev am: 78d3f17761
am: bb3bf385bf

Change-Id: Id87d4ef2a14572c93bece1f19b3da8f73980d708
2017-04-17 05:29:00 +00:00
Erik Kline
bb3bf385bf Merge changes I76ae853c,If94102c7 into oc-dev
am: 78d3f17761

Change-Id: I29e7e076b74842098d5de36aa965a736f1a2863c
2017-04-17 05:19:35 +00:00
TreeHugger Robot
78d3f17761 Merge changes I76ae853c,If94102c7 into oc-dev
* changes:
  Ignore potential SystemProperties errors when setting net.dns
  Make ConnectivityServiceTest pass on wifi-only devices.
2017-04-17 05:11:21 +00:00
Hugo Benichi
aff6684d28 ConnectivityManager: unify prety printing of callback types.
And also remove some small code duplication (checkNotNull).

Test: built, flashed, runtest frameworks-net
Change-Id: Id6c13bca9d12f70b88806032e0a4fa198efbedc6
2017-04-17 08:50:58 +09:00
Etan Cohen
65c5cc2751 Merge changes from topics 'network_specifier', 'networkspecifier' into oc-dev am: d98f26e4f3 -s ours
am: 522503b1a6  -s ours

Change-Id: Ic2dcb3a90f8e241bcf43a06e785816c81a9da8b1
2017-04-15 02:42:20 +00:00
Etan Cohen
522503b1a6 Merge changes from topics 'network_specifier', 'networkspecifier' into oc-dev
am: d98f26e4f3  -s ours

Change-Id: Ic728d22ee9d7407df5437e3da0468387f5c098c2
2017-04-15 02:32:31 +00:00
Hugo Benichi
a2b16b5c6b Merge "ConnectivityManager: release all requests mapping to a callback." am: 1a8f04b1b2 am: 4d80366762 am: e505b37ec5
am: 5f1450c655

Change-Id: I04d6b51bef76c8937227c038c5825ed486812b71
2017-04-14 18:17:31 +00:00
Hugo Benichi
535a01c1f6 Merge "Merge changes Id0d536ff,I4fcd0ad7 into oc-dev am: 0e8090b10e" into oc-dev-plus-aosp
am: 562e577b1c  -s ours

Change-Id: I87c54fe259d38b87c84485793aa5820b55650583
2017-04-14 17:32:27 +00:00
Lorenzo Colitti
0924db7b39 resolve merge conflicts of 4db137b0599a to oc-dev-plus-aosp
am: a01e12bd39  -s ours

Change-Id: If109b819ad9cfa71890e6a377a6d2b08d35ead87
2017-04-14 17:02:27 +00:00
Hugo Benichi
5f1450c655 Merge "ConnectivityManager: release all requests mapping to a callback." am: 1a8f04b1b2 am: 4d80366762
am: e505b37ec5

Change-Id: I99267e14ab04ce62c5c2385f24f5865e791a24a0
2017-04-14 15:36:10 +00:00
Hugo Benichi
45a4954848 ConnectivityManager: release all requests mapping to a callback.
This patch changes how callback unregistration works in order to be
consistent with undocumented use cases currently de-facto supported
by the API (although in a buggy way):
  - callback recycling: releasing then reregistering a callback again.
  - multiple request registrations with the same callback.

The second use case is not desirable but needs to be taken into account
for now for the purpose of correctly releasing NetworkRequests
registered in ConnectivityService.

In order to support request release in both use cases with minimal
amount of complexity for the time being the following changes are done:
  - request to callback unmapping is done synchronously at callback
    release time.
  - all requests associated to a callback are unmapped at callback
    release time.

This fixes the following issues:
  - a callback stops being triggered as soon as it is released.
    Otherwise when recycling the callback immediately, it is possible
    the previous request associated with it triggers it, confusing the
    app.
  - when a callback is registered multiple times, the requests are not
    leaked.
  - when a callback is registered multiple times and then released, the
    N-1 first registrations do not trigger the callback anymore.

In the future it would be desirable to enforce the intended 1:1 mapping
between callbacks and requests at registration time.

Bug: 35921499, 35955593, 20701525
Test: - added new tests in ConnectivityManagerTest to test releasing,
      recycling, and a disabled test for no multiple regristration.
      - new tests catch regression causing b/35921499, b/35955593.
Change-Id: Ia0917ac322fc049f76adb4743bc745989fed6d26
2017-04-14 22:17:21 +09:00
Etan Cohen
dc94b803e0 [CM] Unhide the NetworkSpecifier as object API
API visibility change: unhide allowing NetworkSpecifier
to be an arbitrary object.

Bug: 27533960
Bug: 36053921
Bug: 36275276
Test: builds and runs
Change-Id: I1d1705cca7ece077ef8d7c674c62d5369fedbb03
Merged-In: I7535495681da8f168c46d6d95e13925cffecc99b
Merged-In: I6500639ae839ee9ad5af34d1292d1539c943e2ad
2017-04-14 18:23:45 +09:00
Etan Cohen
ef86e4b132 Make the NetworkSpecifier a class instead of a string.
Bug: 27533960
Bug: 36053921
Bug: 36275276
Test: connectivity, wifi, telephony unit tests
Change-Id: Idd9b10a8418c53c8cf386d9ff8252226b076bbf9
Merged-In: I7535495681da8f168c46d6d95e13925cffecc99b
Merged-In: I6500639ae839ee9ad5af34d1292d1539c943e2ad
2017-04-14 18:22:10 +09:00
Lorenzo Colitti
ce7f41d79c Add test coverage for NetworkSpecifiers.
Tests various combinations of empty / non-empty NetworkSpecifiers
and changing specifiers on the fly.

Test: ConnectivityServiceTest passes
Bug: 27533960
Bug: 36053921
Change-Id: Ibd6b4efc861dc51689e46f3882ba859223411bf0
Merged-In: Ia7d36096f0e3f0b203d1d838043c03fcd1cea829
Merged-In: Ia71b72cc10dba6bac7c8fbe1ab3c5f40bc5506ff
2017-04-14 18:20:59 +09:00
Hugo Benichi
24c21a9a90 Merge changes Id0d536ff,I4fcd0ad7 into oc-dev
am: 0e8090b10e

Change-Id: I0b432e9d7aa5654a0aeac1d3d0a09e624bcbc9bc
2017-04-14 04:32:17 +00:00
Lorenzo Colitti
a01e12bd39 resolve merge conflicts of 4db137b0599a to oc-dev-plus-aosp
Test: builds
Change-Id: I786ece9b82e47691855c8549e174345080964b91
2017-04-14 11:37:12 +09:00
Hugo Benichi
c59a42cbbc Connectivity metrics: add transports to connect stats
This patch groups connect() events per netId. It adds netid and
transport information to serialized ConnectStatistics events.

Test: updated NetdEventListenerServiceTest
      updated IpConnectivityMetricsTest
      $ runtest frameworks-net passes
Bug: 34901696
Change-Id: Id0d536ff723ded5c26eafe0bb138ba75ba2856c5
Merged-In: I4769496383943e714a1d350c298e093c2ed57477

(cherry picked from commit dfc2cc5857199345e08f07977b79b20292f964a2)
2017-04-14 01:44:52 +00:00
Hugo Benichi
dbdea7c5b9 Connectivity metrics: log DnsEvents in-band
This patch changes how DnsEvents are logged in IpConnectivityMetrics.
The following changes are made:
 - DnsEventBatch are not logged after 100 queries on the same network
    - this allows to merge DnsEvent and DnsEventBatch into one class
 - DnsEventBatch are not logged after a network disconnect
    - this allows to remove the NetworkCallback
 - DnsEvent are now logged similarly to ConnectStats when statistics are
   flushed, in a direct call from IpConnectivityMetrics into
   NetdEventListenerService, in a direct call from IpConnectivityMetrics
   into NetdEventListenerService.
    - this allows to remove the Parcelable implementation of DnsEvent
 - transports information is added to DnsEvent.

Test: - simplified NetdEventListenerServiceTest covering dns logging
      - updated IpConnectivityEventBuilderTest
      - updated IpConnectivityMetricsTest
      - $ runtest frameworks-net passes
      - manually verified $ adb shell dumpsys connmetrics list proto
Bug: 34901696
Change-Id: I4fcd0ad7a7b85d587647f471a90c1e53a18fc95a
Merged-In: Ia4b33fd4212741152662a2adbb0533bd1b4902ee

(cherry picked from commit 0699cf98042a64e41ee076c464eb115a6579be08)
2017-04-14 01:41:48 +00:00
Hugo Benichi
0ff6fce27b Connectivity metrics: add transports pretty printing
This patch also
  - partially reverts commit f5c09ce0e6
    that exposed a getTransports method on NetworkCapabilities.
  - moves enumerateBits to BitUtils (as unpackBits), and adds the
    reverse packBit method.

Bug: 34901696
Test: manually looked at $ adb shell dumpsys connmetrics list
Change-Id: I1650daf8fc9c1b6e0d986d2285f81e888be8847f
Merged-In: Id04f9080e7f75608deeb49306aec34941e71794c

(cherry picked from commit df456e13a1127e3c8594b1d22ea4a9b3dca67a4b)
2017-04-13 22:17:50 +00:00
Hugo Benichi
885fc95789 Connectivity metrics: add transports to connect stats
This patch groups connect() events per netId. It adds netid and
transport information to serialized ConnectStatistics events.

Test: updated NetdEventListenerServiceTest
      updated IpConnectivityMetricsTest
      $ runtest frameworks-net passes
Bug: 34901696

Change-Id: I4769496383943e714a1d350c298e093c2ed57477
2017-04-13 23:08:28 +09:00
Hugo Benichi
d2dafab3b3 Connectivity metrics: log DnsEvents in-band
This patch changes how DnsEvents are logged in IpConnectivityMetrics.
The following changes are made:
 - DnsEventBatch are not logged after 100 queries on the same network
    - this allows to merge DnsEvent and DnsEventBatch into one class
 - DnsEventBatch are not logged after a network disconnect
    - this allows to remove the NetworkCallback
 - DnsEvent are now logged similarly to ConnectStats when statistics are
   flushed, in a direct call from IpConnectivityMetrics into
   NetdEventListenerService, in a direct call from IpConnectivityMetrics
   into NetdEventListenerService.
    - this allows to remove the Parcelable implementation of DnsEvent
 - transports information is added to DnsEvent.

Test: - simplified NetdEventListenerServiceTest covering dns logging
      - updated IpConnectivityEventBuilderTest
      - updated IpConnectivityMetricsTest
      - $ runtest frameworks-net passes
      - manually verified $ adb shell dumpsys connmetrics list proto
Bug: 34901696

Change-Id: Ia4b33fd4212741152662a2adbb0533bd1b4902ee
2017-04-13 23:08:20 +09:00