Commit Graph

1686 Commits

Author SHA1 Message Date
Hugo Benichi
58eee2da4f Merge "Really allow NetworkAgent immutable updates to NetworkCapabilities" am: cb3c24e36b am: c18658e900 am: 5d18f52554
am: 2b93d54dfc

Change-Id: Icd8e328e3c810a644bfb83798bd42fed8dc70425
2017-08-18 12:36:31 +00:00
Hugo Benichi
c18658e900 Merge "Really allow NetworkAgent immutable updates to NetworkCapabilities"
am: cb3c24e36b

Change-Id: Ifbdd005576b3f0fbf278ecec81ce3e4308c6276d
2017-08-18 11:59:02 +00:00
Hugo Benichi
1ed8a874ad Really allow NetworkAgent immutable updates to NetworkCapabilities
This patch completes commit 56a1054ab4 to
really allow updates of immutable capabilities to NetworkCapabilities of
NetworkAgents by using satisfiedByImmutableNetworkCapabilities instead
satisfiedByNetworkCapabilities.

Bug: 64125969
Test: runtest frameworks-net
Change-Id: I9beeb623792f0ee31abcd4ba9d0ba2451304fb2e
2017-08-18 14:51:03 +09:00
Hugo Benichi
6703a93808 Merge "Allow NetworkAgent "immutable updates" to NetworkCapabilities" am: b35719a057 am: c11d6eafe9 am: e3d15057af
am: 69853a322c

Change-Id: I7ee60daa9c4266e9b9179032815dd7267e06377f
2017-08-16 12:23:25 +00:00
Hugo Benichi
c11d6eafe9 Merge "Allow NetworkAgent "immutable updates" to NetworkCapabilities"
am: b35719a057

Change-Id: I0ab76de59e87c46a6961229399ff7200bce49838
2017-08-16 11:50:55 +00:00
Hugo Benichi
56a1054ab4 Allow NetworkAgent "immutable updates" to NetworkCapabilities
This patch loosens the validation checks when a NetworkAgent updates it
NetworkCapabilities: instead of checking that capabilities labeled as
"immutable" stay identical across updates, it is now accepted to change
immutable capabilities in a way that the new NetworkCapabilities
satisfies the old NetworkCapabilities.

This allows a NetworkAgent to update itself in order to match more
requests, but will still catch NetworkAgents that sends degradation
updates causing potentially requests to not match anymore.

Bug: 64125969
Test: runtest frameworks-net
Change-Id: I2a1b3f9c0be6415e40edc989d0c1b03b5631f7b1
2017-08-16 18:30:30 +09:00
Hugo Benichi
dc2b32d9a0 Merge "Logging improvements when NetworkCapabilities change"
am: 935759cfff

Change-Id: I886e39db8969eb1ac1dfe06c6f448e53a90fd92c
2017-07-31 01:50:38 +00:00
Treehugger Robot
935759cfff Merge "Logging improvements when NetworkCapabilities change" 2017-07-31 01:38:29 +00:00
Hugo Benichi
1b62b12a72 Logging improvements when NetworkCapabilities change
This patch improves the wtf() logging in updateCapabilities to
better distinguish between the cases of a changed specifiers, changed
transports, or changed capabilities. The case of NOT_METERED being added
or removed is ignored.

Bug: 63326103
Test: runtest frameworks-net, runtest frameworks-wifi
Merged-In: I05c6e78891e1eac658f1cf883223af520a9a4f8f
Merged-In: I4f6cbc0adb461cef6610460daeba72ca38b8f10c
Merged-In: I165a8bbe8362100f1e2bb909459fb45b1c68d5ae
Merged-In: Iec6d92e9a3a12bab87c5adfaf17f776465077060
Merged-In: I633d6347a7f852c27c03fc96b36ca2a60f70c73c
Merged-In: I38739184fc0db105bfd3b4c02cce01e803739e5d
Merged-In: Ia58b877056e2442136cc8b145ac8f4e6560cfc2c

(cherry pick from commit 8c92888a2d)

Change-Id: Id32ca66068c8ff549627e8e8c0e50897ef928c58
2017-07-31 09:25:37 +09:00
Hugo Benichi
6f245ad896 Merge "Logging improvements when NetworkCapabilities change" into oc-dr1-dev
am: 5c55f974bf

Change-Id: I4f6cbc0adb461cef6610460daeba72ca38b8f10c
2017-07-28 23:54:03 +00:00
Hugo Benichi
5c55f974bf Merge "Logging improvements when NetworkCapabilities change" into oc-dr1-dev 2017-07-28 23:42:59 +00:00
Hugo Benichi
8c92888a2d Logging improvements when NetworkCapabilities change
This patch improves the wtf() logging in updateCapabilities to
better distinguish between the cases of a changed specifiers, changed
transports, or changed capabilities. The case of NOT_METERED being added
or removed is ignored.

Bug: 63326103
Test: runtest frameworks-net, runtest frameworks-wifi
Change-Id: I05c6e78891e1eac658f1cf883223af520a9a4f8f
2017-07-28 15:25:54 +09:00
Hugo Benichi
8dc9e35371 Merge "NetworkNotificationManager: correctly handle existing notifications" into oc-dr1-dev
am: a03bf7acd1

Change-Id: I4ca3dcc293be5408a6f207e1ac1a7229a915723a
2017-07-28 04:39:14 +00:00
Hugo Benichi
cd6733c956 NetworkNotificationManager: correctly handle existing notifications
This patch corrects a regression added by commit 51727428fc that did
not take into account the case of multiple notifications shown for a
single network id. Given how network notifications are triggered, it can
happen that NO_INTERNET and SIGN_IN notifications are both triggered for
the same network when captive portal detection is slow.

Contrary to the situation before commit 51727428fc, a notification
priority order is introduced so that SIGN_IN always overrides
NO_INTERNET, and NO_INTERNET is ignored if SIGN_IN is already present.

Bug: 63676954
Bug: 62503737
Test: runtest frameworks-net, added new unit tests
Merged-In: Ib8658601e8d4dc6c41b335ab7dd8caa0cccd9531
Merged-In: I4432f66067ea1ab02e1d2dfe42530bcdafa52df6
Merged-In: I74631b0bfd14daf18a1641ed7f2ec323d636ebbf
Merged-In: I73cc879e910d503946facdba498b300337f349fd
Merged-In: Ieed9e3e7755e0c5f89dc41ef66f47d4dbf4c66a9
Merged-In: I0aa590170f1bd4c37175c7e35e54d52f1fb21347

(cherry picked from commit 5fcd050e0ecd5985cf184f55ea3df4434da8f824)

Change-Id: I41675768ab59e9b23ca4275edf297b82595e5730
2017-07-28 09:17:20 +09:00
Hugo Benichi
d7c56713f5 Merge "NetworkNotificationManager: correctly handle existing notifications"
am: 3451fb6156

Change-Id: I4432f66067ea1ab02e1d2dfe42530bcdafa52df6
2017-07-27 14:43:48 +00:00
Hugo Benichi
38dfb4ed75 NetworkNotificationManager: correctly handle existing notifications
This patch corrects a regression added by commit 51727428fc that did
not take into account the case of multiple notifications shown for a
single network id. Given how network notifications are triggered, it can
happen that NO_INTERNET and SIGN_IN notifications are both triggered for
the same network when captive portal detection is slow.

Contrary to the situation before commit 51727428fc, a notification
priority order is introduced so that SIGN_IN always overrides
NO_INTERNET, and NO_INTERNET is ignored if SIGN_IN is already present.

Bug: 63676954
Bug: 62503737
Test: runtest frameworks-net, added new unit tests
Change-Id: Ib8658601e8d4dc6c41b335ab7dd8caa0cccd9531
2017-07-27 21:20:20 +09:00
Charles He
729f0b476d Opt-out for always-on VPN
Always-on VPN is a feature introduced in N. Since then, all VPN apps
targeting N+ are assumed to support the feature, and the user or the DPC
can turn on / off always-on for any such VPN app. However, a few VPN
apps are not designed to support the always-on feature. Enabling
always-on for these apps will result in undefined behavior and confusing
"Always-on VPN disconnected" notification.

This feature provides a new manifest meta-data field through which a VPN
app can opt out of the always-on feature explicitly. This will stop the
always-on feature from being enabled for the app, both by the user and
by the DPC, and will clear its existing always-on state.

A @hide API is provided to check whether an app supports always-on VPN.
Documentation is updated to reflect the behavior change.

Bug: 36650087
Test: runtest --path java/com/android/server/connectivity/VpnTest.java
Test: cts-tradefed run cts --module CtsDevicePolicyManagerTestCases --test 'com.android.cts.devicepolicy.MixedDeviceOwnerTest#testAlwaysOnVpnUnsupportedPackage'
Test: cts-tradefed run cts --module CtsDevicePolicyManagerTestCases --test 'com.android.cts.devicepolicy.MixedDeviceOwnerTest#testAlwaysOnVpnUnsupportedPackageReplaced'
Test: cts-tradefed run cts --module CtsDevicePolicyManagerTestCases --test 'com.android.cts.devicepolicy.MixedProfileOwnerTest#testAlwaysOnVpnUnsupportedPackage'
Test: cts-tradefed run cts --module CtsDevicePolicyManagerTestCases --test 'com.android.cts.devicepolicy.MixedProfileOwnerTest#testAlwaysOnVpnUnsupportedPackageReplaced'
Test: cts-tradefed run cts --module CtsDevicePolicyManagerTestCases --test 'com.android.cts.devicepolicy.MixedManagedProfileOwnerTest#testAlwaysOnVpnUnsupportedPackage'
Test: cts-tradefed run cts --module CtsDevicePolicyManagerTestCases --test 'com.android.cts.devicepolicy.MixedManagedProfileOwnerTest#testAlwaysOnVpnUnsupportedPackageReplaced'

Change-Id: I477897a29175e3994d4ecf8ec546e26043c90f13
2017-07-18 00:55:38 +01:00
Jeff Sharkey
41a7269b04 Move "metered" persistence to WifiConfiguration.
For a long time we've had a nasty tangled dependency between Wi-Fi
and NPMS, since they both persisted different details for configured
networks.  As part of preparing for new carrier data plan APIs, move
the tracking of meteredness over to WifiConfiguration.

This also cleans up how meteredness is communicated through
NetworkAgents to rely completely on NET_CAPABILITY_NOT_METERED by
removing the metered flag on NetworkInfo, which has caused confusion
and staleness.

Migrates any existing user-configured metered networks over to
WifiConfiguration once the device finishes booting.

Remove support for NetworkQuotaInfo, since this information can no
longer be made available to apps.  Frustratingly, some apps are
using it, so keep the object around returning stub values, and shame
them in the logs.

Bug: 63391323
Test: builds, boots, Wi-Fi policy is upgraded
Exempt-From-Owner-Approval: Bug 63673347
Change-Id: I64f865ddeb65cfcd330f8d2a847368abdf960a07
2017-07-14 11:46:31 -06:00
Andreas Gampe
7c89e296e4 Merge "Connectivity: Fix format arguments" am: ba8ab362ad am: 9ad55e3591 am: ce4c57fd0e
am: 378c299abe

Change-Id: I8b0734e5d786999e1b520164b78ed72f453185e0
2017-07-12 05:08:02 +00:00
Andreas Gampe
9ad55e3591 Merge "Connectivity: Fix format arguments"
am: ba8ab362ad

Change-Id: I844c7d1faea3dcc90cf9816cae984277d7525f15
2017-07-12 04:48:10 +00:00
Andreas Gampe
14c57f3a15 Connectivity: Fix format arguments
Fix missing argument.

Bug: 19797138
Test: m
Change-Id: I5fdd2a453c0d7422e8c3e79c8dce2d0800ec45e9
2017-07-11 18:21:15 -07:00
Joel Scherpelz
ba37c6c7d8 Wakeup packet mark/mask configuration option
Rules will only be installed if a device specific config.xml overrides
the default values of mark and mask.

This change also fixes a bug where wakeup rules added by the wakeup
controller would never be removed because updateInterfaces() is not
invoked on wifi network change or disable.

Test: as follows
    - built
    - flashed
    - booted
    - Manually verified that mask/mark is set correctly
Bug: 28806131

(cherry picked from commit d18b92cd95)

Change-Id: I95e75b11b973707bcb428ea6498fbfd8e717b855
2017-07-06 19:10:33 +09:00
Hugo Benichi
064fd68f16 Merge "ConnectivityManager: allow usage of TYPE_NONE" am: ffcaee218d am: fab5b13b83 am: 0278aa4b70
am: fe42a55877

Change-Id: I1e005686a1de5f2154fbc614ea52ce1a3ff5fc81
2017-07-05 14:54:05 +00:00
Hugo Benichi
fab5b13b83 Merge "ConnectivityManager: allow usage of TYPE_NONE"
am: ffcaee218d

Change-Id: I72dbd17db63bd7b8637e82f5cdcfec3bf1482962
2017-07-05 14:33:35 +00:00
Hugo Benichi
37d5c3cb21 ConnectivityManager: allow usage of TYPE_NONE
This patch allows to use TYPE_NONE for the legacy network type variable
of NetworkInfo. This usage is "safe" with respect to legacy APIs using
network types as most of them already returns null or do nothing for
TYPE_NONE.

Of the existing APIs in ConnectivityManager that accept a network type
argument, those which were already returning null or doing nothing for
TYPE_NONE are:
  getNetworkInfo(int)
  getNetworkForType(int)
  stopUsingNetworkFeature(int, String)
  networkCapabilitiesForType(int)
  requestRouteToHostAddress(int, InetAddress)
  reportInetCondition(int, int)
  isNetworkSupported(int)
  getLinkProperties(int)

Only setProvisioningNotificationVisible needs an additional guard
against TYPE_NONE.

Bug: 30088447
Bug: 62844794
Test: runtest frameworks-net
Change-Id: I112596fcd03d3c2cd42a2a84d265adb38e3944bb
2017-07-05 21:30:52 +09:00
Roland Levillain
fdf31f0988 Merge "Revert "ConnectivityManager: allow usage of TYPE_NONE"" am: 613b73cac8 am: 0d0c37da2a am: bdcebe39e6
am: 1305ff8ac6

Change-Id: Ibd1ef362cdc21d57aefb2d1180dc678bb2692f34
2017-07-04 11:53:16 +00:00
Roland Levillain
0d0c37da2a Merge "Revert "ConnectivityManager: allow usage of TYPE_NONE""
am: 613b73cac8

Change-Id: I49221522c1a9a6e7d4ae72529c1a47b736e26a39
2017-07-04 11:31:30 +00:00
Roland Levillain
5a58f9da60 Revert "ConnectivityManager: allow usage of TYPE_NONE"
This CL is breaking some internal builds.

This reverts commit 0bc85784a8.

Change-Id: Ie79214808d84c73f54a525f515b4c90a3fb23542
2017-07-04 11:14:03 +00:00
Hugo Benichi
f5f34e604a Merge changes I90c211dc,I4455f272 am: 6cc4ed727e am: 1ac5f64000 am: d0e5f1d280
am: a348c0a644

Change-Id: I8a07b60112df37a63804454b356b4838c3a24965
2017-07-04 09:54:57 +00:00
Hugo Benichi
1ac5f64000 Merge changes I90c211dc,I4455f272
am: 6cc4ed727e

Change-Id: I502d978ff636a00979d2083c39381bf600d3d6da
2017-07-04 09:35:51 +00:00
Treehugger Robot
6cc4ed727e Merge changes I90c211dc,I4455f272
* changes:
  ConnectivityServiceTest: more informative assert failures
  ConnectivityManager: allow usage of TYPE_NONE
2017-07-04 09:22:07 +00:00
Hugo Benichi
0bc85784a8 ConnectivityManager: allow usage of TYPE_NONE
This patch allows to use TYPE_NONE for the legacy network type variable
of NetworkInfo. This usage is "safe" with respect to legacy APIs using
network types as most of them already returns null or do nothing for
TYPE_NONE.

Of the existing APIs in ConnectivityManager that accept a network type
argument, those which were already returning null or doing nothing for
TYPE_NONE are:
  getNetworkInfo(int)
  getNetworkForType(int)
  stopUsingNetworkFeature(int, String)
  networkCapabilitiesForType(int)
  requestRouteToHostAddress(int, InetAddress)
  reportInetCondition(int, int)
  isNetworkSupported(int)
  getLinkProperties(int)

Only setProvisioningNotificationVisible needs an additional guard
against TYPE_NONE.

Bug: 30088447
Bug: 62844794
Test: runtest frameworks-net
Change-Id: I4455f2726d06406047086368628c1f253d854d8d
2017-07-04 16:22:59 +09:00
Joel Scherpelz
ca26d4c30e Merge "Wakeup packet mark/mask configuration option" am: 266cb98072 am: db7c49e8c6 am: 48360082bc
am: 4e10d0ab40

Change-Id: I96595368cfb6f461a84dae5bc1330f6c843f77ba
2017-07-04 04:16:43 +00:00
Joel Scherpelz
db7c49e8c6 Merge "Wakeup packet mark/mask configuration option"
am: 266cb98072

Change-Id: Ief60fa8a594931c8968db7a9ea2872c030794088
2017-07-04 03:47:14 +00:00
Treehugger Robot
266cb98072 Merge "Wakeup packet mark/mask configuration option" 2017-07-04 03:38:34 +00:00
liangweikang@xiaomi.com
2befff9836 Merge "[BUG] java.util.MissingFormatArgumentException: Format specifier '%d'" am: 4d3f053c7d am: 964ef86683 am: a900930d58
am: ed7186a16e

Change-Id: I4b4973570b8a8f1757986b1aa8ee1a6c3496d976
2017-07-03 00:45:49 +00:00
liangweikang@xiaomi.com
964ef86683 Merge "[BUG] java.util.MissingFormatArgumentException: Format specifier '%d'"
am: 4d3f053c7d

Change-Id: I1687f90ae7d042db2575ca10b168833e27adc7cb
2017-07-03 00:26:47 +00:00
Treehugger Robot
4d3f053c7d Merge "[BUG] java.util.MissingFormatArgumentException: Format specifier '%d'" 2017-07-03 00:17:57 +00:00
Joel Scherpelz
d18b92cd95 Wakeup packet mark/mask configuration option
Rules will only be installed if a device specific config.xml overrides
the default values of mark and mask.

This change also fixes a bug where wakeup rules added by the wakeup
controller would never be removed because updateInterfaces() is not
invoked on wifi network change or disable.

Test: as follows
    - built
    - flashed
    - booted
    - Manually verified that mask/mark is set correctly
Bug: 28806131

Change-Id: I2380b2383a593da35880d81cbade6eae4f79a776
2017-06-30 04:58:41 +00:00
liangweikang@xiaomi.com
3beb92f45a [BUG] java.util.MissingFormatArgumentException: Format specifier '%d'
Bug: https://issuetracker.google.com/issues/63121293

Test: null

Change-Id: I2745c415e21a7f26535605cc5bef7eaf2109ae8e
Signed-off-by: liangweikang@xiaomi.com <liangweikang@xiaomi.com>
2017-06-30 01:32:46 +00:00
Udam Saini
1507233420 Adds necessary permissions to system apis
adds privileged permission for getCaptivePortalServerUrl
adds tether privileged permission for
startTethering,isTetheringSupported

bug:62348162

Test: make and manual testing
Change-Id: I8eb8e3c9dcd7201abe9ea303ee57fe99073d67eb
2017-06-26 17:27:36 -07:00
Rhiannon Malia
0857fbd6f5 Update captive portal notif for Android TV
am: 748b603f8d

Change-Id: I60a67b0f22aa186e8b738b8a9ee002b2b5b04e42
2017-06-10 07:26:51 +00:00
Rhiannon Malia
eb0c3a9086 Update captive portal notif for Android TV
am: 748b603f8d

Change-Id: I2096324e76770fee698507c2681d9c2fd92165b9
2017-06-10 07:26:46 +00:00
Rhiannon Malia
748b603f8d Update captive portal notif for Android TV
Test: Connect to captive portal, notification appears in side panel

BUG:38453402
Change-Id: I39baf90897f2f3d67b8b03c31dd74fa1d39d39de
2017-06-10 05:22:42 +00:00
Erik Kline
97c496a41d Merge "Support "dumpsys connectivity tethering"" am: 7057a44e40 am: 06e6033327
am: ff8b93f815

Change-Id: I68ff0810e4109c52e1d594a4b75fc768570ef59d
2017-05-29 08:55:13 +00:00
Erik Kline
7057a44e40 Merge "Support "dumpsys connectivity tethering"" 2017-05-29 08:33:10 +00:00
Joel Scherpelz
3efe5b07d5 Merge "Support requesting and receiving wakeup events" am: cc03b9e868 am: 4971745cf4
am: 880974f111

Change-Id: I98aa768cf47938aa0996ddabbbc9feb9dae96f1e
2017-05-29 03:51:25 +00:00
Erik Kline
842a34c4a9 Support "dumpsys connectivity tethering"
Also print current upstream interface in tethering dump output.

Test: as follows
    - build
    - flashed
    - booted
    - runtest frameworks-net passes
    - "dumpsys connectivity tethering" shows just tethering info
Bug: 32163131
Bug: 36504926
Bug: 36988090
Bug: 38152109
Bug: 38186915
Bug: 38218697
Change-Id: I7f185fd71946a032e7f815207016294892df135d
2017-05-29 11:51:28 +09:00
Joel Scherpelz
bce9c84e96 Support requesting and receiving wakeup events
Test: as follows
    - built
    - flashed
    - booted
    - ConnectivityServiceTest passes
Bug: 28806131

Change-Id: Ifc45260d5315479393da2c859ba4afed4e0e8c85
2017-05-29 11:19:16 +09:00
Erik Kline
8117634dd9 Expand logging capabilities of Tethering subsystem
Introduce a SharedLog that can be shared among all Tethering
components.  All log entries go to the same log, and each includes
its subsystem name.  Additionally, all entries emitted to the
system log shared the same tag, so can easily be watched.

More subsystems can inherit a SharedLog, but to minimize cherry-pick
conflicts we limit ourselves to these changes only.

Test: as follows
    - built
    - flashed
    - booted
    - log output observed via dumpsys
    - runtest frameworks-net passes
Bug: 32163131
Bug: 36988090
Bug: 38218697
Merged-In: Ia9d15f0dcc49ce070f8684eb8c8481310859faa5
Merged-In: I2644f518304a03da469fb9c2aa01a6d8f1a97901
Change-Id: I1229d4c55987402d84b0d4a2c8a595e0c829aa3e
(cherry picked from commit 7747fd4ce055e8e1f6381062a58b867728f57d85)
2017-05-24 19:52:51 +09:00