Commit graph android_packages_modules_Co.../core/java/android
Message SHA1
Merge "Allow NetworkAgent "immutable updates" to NetworkCapabilities" am: b35719a057 am: c11d6eafe9 am: e3d15057af
am: 69853a322c

Change-Id: I7ee60daa9c4266e9b9179032815dd7267e06377f

Hugo Benichi   authored and   android-build-merger   commited 2017-08-16 12:23:25 +00:00
6703a93808
Merge "Allow NetworkAgent "immutable updates" to NetworkCapabilities"
am: b35719a057

Change-Id: I0ab76de59e87c46a6961229399ff7200bce49838

Hugo Benichi   authored and   android-build-merger   commited 2017-08-16 11:50:55 +00:00
c11d6eafe9
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

Hugo Benichi   commited 2017-08-16 18:30:30 +09:00
56a1054ab4
Merge "NetworkCapabilities: fix describeImmutableDifferences" am: 7575ec2240 am: ec11d07dc0 am: ad0a1b3c2b
am: ae6ff2ba0f

Change-Id: I12636c6699ff60487a28570208e819ea0b66fa2e

Hugo Benichi   authored and   android-build-merger   commited 2017-08-05 01:28:01 +00:00
d8284017db
Merge "NetworkCapabilities: fix describeImmutableDifferences"
am: 7575ec2240

Change-Id: If38efacdeec8476880835657938e435f9b598525

Hugo Benichi   authored and   android-build-merger   commited 2017-08-05 00:54:43 +00:00
ec11d07dc0
NetworkCapabilities: fix describeImmutableDifferences
This patch fixes the mask used in describeImmutableDifferences which did
not correctly turn NET_CAPABILITY_NOT_METERED into bit flag.

Bug: 63326103
Test: added unit tests, runtest frameworks-net
Change-Id: Ib6b390b1daef5912859302692af7dcd6cfd3e39a

Hugo Benichi   commited 2017-08-04 15:17:40 +09:00
66bdf0aa16
Merge "Logging improvements when NetworkCapabilities change"
am: 935759cfff

Change-Id: I886e39db8969eb1ac1dfe06c6f448e53a90fd92c

Hugo Benichi   authored and   android-build-merger   commited 2017-07-31 01:50:38 +00:00
dc2b32d9a0
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

Hugo Benichi   commited 2017-07-31 09:25:37 +09:00
1b62b12a72
Merge "Logging improvements when NetworkCapabilities change" into oc-dr1-dev
am: 5c55f974bf

Change-Id: I4f6cbc0adb461cef6610460daeba72ca38b8f10c

Hugo Benichi   authored and   android-build-merger   commited 2017-07-28 23:54:03 +00:00
6f245ad896
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

Hugo Benichi   commited 2017-07-28 15:25:54 +09:00
8c92888a2d
Manually merge commit '530b93aae428'
* commit '530b93aae428':
  NetworkCapabilities: Unhide TRANSPORT_LOWPAN

BUG:31038431

The Android Automerger   commited 2017-07-19 00:27:08 +00:00
e16d531b66
Merge "NetworkCapabilities: Unhide TRANSPORT_LOWPAN"
am: f82bad29c7

Change-Id: I3ae9566ca52b9dae87cace18b1e97897eb8de0ad

Robert Quattlebaum   authored and   android-build-merger   commited 2017-07-18 23:33:08 +00:00
1d72e27026
Merge "NetworkCapabilities: Unhide TRANSPORT_LOWPAN"
Treehugger Robot   authored and   Gerrit Code Review   commited 2017-07-18 23:09:58 +00:00
f82bad29c7
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

Charles He   commited 2017-07-18 00:55:38 +01:00
729f0b476d
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

Jeff Sharkey   commited 2017-07-14 11:46:31 -06:00
41a7269b04
resolve merge conflicts of 4f2a0fe213e5 to stage-aosp-master
Test: I solemnly swear I tested this conflict resolution.
Change-Id: I61cfb2d4798350f28f1bb36aed67ee8f18895031

Hugo Benichi   commited 2017-07-14 07:25:51 +09:00
0c57cf16ee
IpManager: define InitialConfiguration
This patch adds a InitialConfiguration class to IpManager for specifying
IP information in IpManager ProvisioningConfiguration at IpManager
startup.

At the moment this InitialConfiguration is not used, but is validated in
startProvsiioning if ProvisioningConfiguration includes one. It will be
integrated into IpManager IP provisioning logic in follow-up patches.

This patch also includes an example of data driven unit tests using a
table of test case. The highlights of this methodology are:
  1) easy extensibility for new test case,
  2) rich and informative error messages,
Unfortunately Java support for inlined data structure literals is poor
and some companion static methods for data generation are required for
enabling this methodology.

Bug: 62988545
Test: added new test in FrameworksNetTests,
      $ runtest frameworks-net
      $ runtest frameworks-wifi
Merged-In: I060b02603af7d73a6407df89344bf0c000574af2

(cherry pick of commit 0c9a9404aa)

Change-Id: I48dbf89232d7758f1b07ed4d76ce93281e5c6b53

Hugo Benichi   commited 2017-07-14 04:26:42 +09:00
ce7b23c488
IpManager: define InitialConfiguration
This patch adds a InitialConfiguration class to IpManager for specifying
IP information in IpManager ProvisioningConfiguration at IpManager
startup.

At the moment this InitialConfiguration is not used, but is validated in
startProvsiioning if ProvisioningConfiguration includes one. It will be
integrated into IpManager IP provisioning logic in follow-up patches.

This patch also includes an example of data driven unit tests using a
table of test case. The highlights of this methodology are:
  1) easy extensibility for new test case,
  2) rich and informative error messages,
Unfortunately Java support for inlined data structure literals is poor
and some companion static methods for data generation are required for
enabling this methodology.

Bug: 62988545
Test: added new test in FrameworksNetTests,
      $ runtest frameworks-net
      $ runtest frameworks-wifi

Change-Id: I060b02603af7d73a6407df89344bf0c000574af2

Hugo Benichi   commited 2017-07-13 22:42:50 +09:00
0c9a9404aa
NetworkCapabilities: Unhide TRANSPORT_LOWPAN
This commit simply unhides the constant `TRANSPORT_LOWPAN` in the class
`android.net.NetworkCapabilities`, adding it to the public API.

Bug: b/63600204
Change-Id: I794635814c0bd3891cd22fcc1e31614e4d6ac654

Robert Quattlebaum   commited 2017-07-11 18:16:09 -07:00
4ec139be36
NetworkCapabilities: Added support for TRANSPORT_LOWPAN
This change simply adds a new constant, `TRANSPORT_LOWPAN`, for
identifying low-power wireless networks like Thread.

Bug: b/33073713
Test: builds
Change-Id: I50d9b8df1a0270e06c28f001adf6c52a142a85af
Merged-In: Ie4aa77496f8ff466fa1a5fbc556e9c029457a689

(cherry pick from commit 5bc95c5900)

Robert Quattlebaum   authored and   Hugo Benichi   commited 2017-07-11 15:52:37 +09:00
221ccf7ec5
Merge "ConnectivityManager: allow usage of TYPE_NONE" am: ffcaee218d am: fab5b13b83 am: 0278aa4b70
am: fe42a55877

Change-Id: I1e005686a1de5f2154fbc614ea52ce1a3ff5fc81

Hugo Benichi   authored and   android-build-merger   commited 2017-07-05 14:54:05 +00:00
064fd68f16
Merge "ConnectivityManager: allow usage of TYPE_NONE" am: ffcaee218d am: fab5b13b83
am: 0278aa4b70

Change-Id: I1707e39308b0cf425b75e1e3f85323743c252c2f

Hugo Benichi   authored and   android-build-merger   commited 2017-07-05 14:47:56 +00:00
fe42a55877
Merge "ConnectivityManager: allow usage of TYPE_NONE"
am: ffcaee218d

Change-Id: I72dbd17db63bd7b8637e82f5cdcfec3bf1482962

Hugo Benichi   authored and   android-build-merger   commited 2017-07-05 14:33:35 +00:00
fab5b13b83
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

Hugo Benichi   commited 2017-07-05 21:30:52 +09:00
37d5c3cb21
Merge "Revert "ConnectivityManager: allow usage of TYPE_NONE"" am: 613b73cac8 am: 0d0c37da2a am: bdcebe39e6
am: 1305ff8ac6

Change-Id: Ibd1ef362cdc21d57aefb2d1180dc678bb2692f34

Roland Levillain   authored and   android-build-merger   commited 2017-07-04 11:53:16 +00:00
fdf31f0988
Merge "Revert "ConnectivityManager: allow usage of TYPE_NONE"" am: 613b73cac8 am: 0d0c37da2a
am: bdcebe39e6

Change-Id: I428cb473221a403e3c78cbc5d1224d46747ec315

Roland Levillain   authored and   android-build-merger   commited 2017-07-04 11:46:56 +00:00
1305ff8ac6
Merge "Revert "ConnectivityManager: allow usage of TYPE_NONE""
am: 613b73cac8

Change-Id: I49221522c1a9a6e7d4ae72529c1a47b736e26a39

Roland Levillain   authored and   android-build-merger   commited 2017-07-04 11:31:30 +00:00
0d0c37da2a
Revert "ConnectivityManager: allow usage of TYPE_NONE"
This CL is breaking some internal builds.

This reverts commit 0bc85784a8.

Change-Id: Ie79214808d84c73f54a525f515b4c90a3fb23542

Roland Levillain   commited 2017-07-04 11:14:03 +00:00
5a58f9da60
Merge changes I90c211dc,I4455f272 am: 6cc4ed727e am: 1ac5f64000 am: d0e5f1d280
am: a348c0a644

Change-Id: I8a07b60112df37a63804454b356b4838c3a24965

Hugo Benichi   authored and   android-build-merger   commited 2017-07-04 09:54:57 +00:00
f5f34e604a
Merge changes I90c211dc,I4455f272 am: 6cc4ed727e am: 1ac5f64000
am: d0e5f1d280

Change-Id: Ia79936c51ec8236d5c92c19a8d2a3dff34f0e1a1

Hugo Benichi   authored and   android-build-merger   commited 2017-07-04 09:49:06 +00:00
a348c0a644
Merge changes I90c211dc,I4455f272
am: 6cc4ed727e

Change-Id: I502d978ff636a00979d2083c39381bf600d3d6da

Hugo Benichi   authored and   android-build-merger   commited 2017-07-04 09:35:51 +00:00
1ac5f64000
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

Hugo Benichi   commited 2017-07-04 16:22:59 +09:00
0bc85784a8
Merge "Adds necessary permissions to system apis"
Udam Saini   authored and   Android (Google) Code Review   commited 2017-06-27 17:59:21 +00:00
c44f4f50d3
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

Udam Saini   commited 2017-06-26 17:27:36 -07:00
1507233420
NetworkCapabilities: Added support for TRANSPORT_LOWPAN
This change simply adds a new constant, `TRANSPORT_LOWPAN`, for
identifying low-power wireless networks like Thread.

Bug: b/33073713
Merged-In: Ie4aa77496f8ff466fa1a5fbc556e9c029457a689

(cherry pick from commit 5bc95c5900)

Change-Id: I21f9b41b8b31c63ceeb1bc9c965f6da2614c356a

Test: runtest frameworks-net (not in original commit message)

Robert Quattlebaum   authored and   Hugo Benichi   commited 2017-06-23 16:08:45 +09:00
4c260ed265
Connectivity metrics: serialize networkId, transports, ifname
This patch adds translation from ConnectivityMetricsEvent to
IpConnectivityEvent of recently added fields:
 - top-level network id
 - top-level ifname
 - transports

Also adds inference of link layer from transports or ifname.

At the moment these new fields are not populated in
ConnectivityMetricsEvent. Follow-up patches will fill this gap for
the events of the android.net.metrics package.

Test: new unit tests, $ runtest frameworks-net passes
Bug: 34901696
Merged-In: I563a6a3183470bdfaabb7c781a1beaf6b1058bf0

(partial cherry pick from commit 9ee5e7a0a0)

Change-Id: I6a00270e73a1bd07f23c367f2394d90a43ced47a

Test: runtest frameworks-net (not in original commit message)

Hugo Benichi   commited 2017-06-23 16:07:38 +09:00
a781fa4514
Merge "ConnectivityManager: fix style issue" am: e74f3adba5 am: ec54a40339
am: 060c40b6cb

Change-Id: Iecf5399d77ae742cc66ac7a3cab4570464c4e95f

Hugo Benichi   authored and   android-build-merger   commited 2017-06-22 19:46:28 +00:00
44454a1418
Merge "ConnectivityManager: fix style issue" am: e74f3adba5
am: ec54a40339

Change-Id: I5a420534268a0daec19f1f0677dcfe7abd8faf73

Hugo Benichi   authored and   android-build-merger   commited 2017-06-22 08:03:46 +00:00
060c40b6cb
Merge "Better errors from unregisterNetworkCallback" am: 04e89ad631 am: ca6ebb0f39
am: 91d9810bf2

Change-Id: Ia959388c875c22e56f5f2867f33a7329ce4b3535

Hugo Benichi   authored and   android-build-merger   commited 2017-06-20 05:26:40 +00:00
8d247a4009
Merge "Better errors from unregisterNetworkCallback" am: 04e89ad631
am: ca6ebb0f39

Change-Id: Ib380ee7c3fc85db353682ee7abfe97842eaeeb29

Hugo Benichi   authored and   android-build-merger   commited 2017-06-20 05:19:46 +00:00
91d9810bf2
ConnectivityManager: fix style issue
Simple style fix flagged by linter.

Test: no functional change.
Change-Id: I2cb19912cba149eeaffdd157616d210259d42959

Hugo Benichi   commited 2017-06-20 14:11:57 +09:00
bcc81df1d6
Better errors from unregisterNetworkCallback
This patch changes the validation of unregisterNetworkCallback in
ConnectivityManager so that the caller can better distinguish the case
of a callback that was never registered from the case of a callback that
has already been unregistered.

Bug: 62497809
Test: runtest frameworks-net passes
Merged-In: I58eda22725dd4e67dc4b64207e38cf482032df10

(cherry picked from commit 605b295011be74c786a2eef586d31ccb07160422)

Change-Id: I4d2be5d9037cfec03218b702d707f50808ee0694

Hugo Benichi   commited 2017-06-20 10:06:44 +09:00
8673b7c535
Better errors from unregisterNetworkCallback
This patch changes the validation of unregisterNetworkCallback in
ConnectivityManager so that the caller can better distinguish the case
of a callback that was never registered from the case of a callback that
has already been unregistered.

Bug: 62497809
Test: runtest frameworks-net passes
Change-Id: I58eda22725dd4e67dc4b64207e38cf482032df10

Hugo Benichi   commited 2017-06-19 22:11:50 +09:00
1c027fee59
NetworkCapabilities: Added support for TRANSPORT_LOWPAN
This change simply adds a new constant, `TRANSPORT_LOWPAN`, for
identifying low-power wireless networks like Thread.

Bug: b/33073713
Change-Id: Ie4aa77496f8ff466fa1a5fbc556e9c029457a689

Robert Quattlebaum   commited 2017-06-06 18:38:31 +00:00
5bc95c5900
Merge "Annotate @SystemApi with required permissions." into oc-dev
am: c1406978a4

Change-Id: I305967cad945a807c3f8234efabaad0ef8b591d1

Jeff Sharkey   authored and   android-build-merger   commited 2017-06-05 22:28:21 +00:00
0c4e23a3bf
Annotate @SystemApi with required permissions.
Most @SystemApi methods should be protected with system (or higher)
permissions, so annotate common methods with @RequiresPermission to
make automatic verification easier.

Verification is really only relevant when calling into system
services (where permissions checking can happen on the other side of
a Binder call), so annotate managers with the new @SystemService
annotation, which is now automatically documented.

This is purely a docs change; no logic changes are being made.

Test: make -j32 update-api && make -j32 offline-sdk-docs
Bug: 62263906
Change-Id: I2554227202d84465676aa4ab0dd336b5c45fc651

Jeff Sharkey   commited 2017-06-05 13:27:11 -06:00
b8c7303191
Merge "ConnectivityManager: simplify callback handler" am: 7739baa030 am: 7bce658dd6
am: a67fb638fa

Change-Id: I3934666df4a02101351993f7f83fb0a42124a2f5

Hugo Benichi   authored and   android-build-merger   commited 2017-05-23 06:37:24 +00:00
941fdb851e
Merge "ConnectivityManager: improve argument validation" am: bdc00cdaa0 am: 0187514f74
am: b800e8520e

Change-Id: Idfc0938025c633c89f5bfddd88b3721876d085ef

Hugo Benichi   authored and   android-build-merger   commited 2017-05-23 03:41:52 +00:00
4b11cd92ed
ConnectivityManager: simplify callback handler
Bug: 36701874
Test: $ runtest frameworks-net
Change-Id: I4d5f08903a54f8dced7cb6ae86703847b908b784

Hugo Benichi   commited 2017-05-23 10:39:46 +09:00
3b92699672
ConnectivityManager: improve argument validation
Using Preconditions and dedicated static methods for checking arguments
to improve error stack traces without error messages.

Test: covered by previously added unit test
Bug: 36701874
Change-Id: Id872b2c887a4bca43a8c3644622add1c2ee57c6d

Hugo Benichi   commited 2017-05-23 10:39:45 +09:00
ff4bf6017f