Commit Graph

4028 Commits

Author SHA1 Message Date
Remi NGUYEN VAN
2c6e0c6b5a Merge "Add API for NetworkStack to start captive portal" am: ca551ce981 am: 7f71f50ae6
am: b6a6843c31

Change-Id: I54a32dd01f1f697fc7da703bc1d258ed6a43df23
2019-02-06 19:08:29 -08:00
Remi NGUYEN VAN
b6a6843c31 Merge "Add API for NetworkStack to start captive portal" am: ca551ce981
am: 7f71f50ae6

Change-Id: Ie428acbfce0f94f0bade67258fefbb3253a539df
2019-02-06 18:58:57 -08:00
Remi NGUYEN VAN
ca551ce981 Merge "Add API for NetworkStack to start captive portal" 2019-02-07 02:39:17 +00:00
Chalard Jean
b671b369a4 Merge "[KA04] Expose TCP socket keepalive API" am: e5f71e4ed0 am: e38d50b7c8
am: 58a1512d6a

Change-Id: I490acd417b3f70ba1dec3bbf9f049088b849c782
2019-02-06 07:41:19 -08:00
Chalard Jean
58a1512d6a Merge "[KA04] Expose TCP socket keepalive API" am: e5f71e4ed0
am: e38d50b7c8

Change-Id: Ia5c108bfa42ab0de9d4cdf676c5980dc9a9aba12
2019-02-06 07:31:44 -08:00
junyulai
352dc2f202 [KA04] Expose TCP socket keepalive API
The new set of API allows applications to request keepalives
offload for established TCP sockets over wifi.

However, the application must not write to or read from the
socket after calling this method, until specific callbacks are
called.

Bug: 114151147
Test: atest FrameworksNetTests FrameworksWifiTests NetworkStackTests

Change-Id: I3880505dbc35fefa34ef6c79555458ecf5d296a4
2019-02-06 22:51:42 +09:00
Chalard Jean
de626e0520 Merge "[KA03.5] Add stable AIDL parcelable for TcpKeepalivePacketData" am: 533b2960fc am: 968c9f495c
am: 66b84e3c44

Change-Id: I700550160c795becb4c3e37a88328488846d272f
2019-02-06 01:47:49 -08:00
Chalard Jean
66b84e3c44 Merge "[KA03.5] Add stable AIDL parcelable for TcpKeepalivePacketData" am: 533b2960fc
am: 968c9f495c

Change-Id: I3b0645585140d8ee12f896946a2a1fbb519e6195
2019-02-06 01:38:31 -08:00
Chalard Jean
533b2960fc Merge "[KA03.5] Add stable AIDL parcelable for TcpKeepalivePacketData" 2019-02-06 09:19:07 +00:00
Chalard Jean
a957cf50a0 Merge "Deprecate getActiveLinkProperties." am: 4b7cae6c0d am: 19159dbc95
am: 7409a6bb32

Change-Id: I364a5420ab6552f652fa40a6607af249f92770c6
2019-02-06 01:03:25 -08:00
Chalard Jean
7409a6bb32 Merge "Deprecate getActiveLinkProperties." am: 4b7cae6c0d
am: 19159dbc95

Change-Id: Iab302f94c8b33373831e1aa2aa4ff2beac9cf82f
2019-02-06 00:54:12 -08:00
Treehugger Robot
4b7cae6c0d Merge "Deprecate getActiveLinkProperties." 2019-02-06 08:32:10 +00:00
Remi NGUYEN VAN
dc48356147 Add API for NetworkStack to start captive portal
Endpoints protected with INTERACT_ACROSS_USERS_FULL, such as
startActivityAsUser, should only be used by modules signed with the
platform cert. The NetworkStack needs to have the system server start
the application so this restriction can be applied.

Bug: 123846255
Test: flashed, captive portal works from primary and secondary user
Change-Id: Ib3e427b3fd03ced80c02985e795f79b096a2ec9a
2019-02-06 16:38:32 +09:00
Chalard Jean
eb1ea889bc Deprecate getActiveLinkProperties.
There are other, more idiomatic ways to do this. Deprecating this
with usage limited to P will curb usage and reduce the maintenance
load.
This also deprecates the extra EXTRA_NETWORK_TYPE, which has
survived from an old world but has only been used in deprecated
broadcasts for some time.

Bug: 109783091
Test: eyeball current.txt
Change-Id: I87b74833bb4ec362ee3fd07511a66d318c29067d
2019-02-06 15:44:44 +09:00
Chalard Jean
f431962460 Merge "[KA03] Support tcp keepalive offload" am: 5f8ddc2eb1 am: 6bbaced544
am: 9eb8724be7

Change-Id: I55d7b285a75946713986163fbaa166d4b02513d4
2019-02-05 22:41:37 -08:00
Chalard Jean
9eb8724be7 Merge "[KA03] Support tcp keepalive offload" am: 5f8ddc2eb1
am: 6bbaced544

Change-Id: I695f8a96348b3033bd20a2a9d42ac9ee2bd485ad
2019-02-05 22:32:01 -08:00
junyulai
2ed5d4cf92 [KA03.5] Add stable AIDL parcelable for TcpKeepalivePacketData
Bug: 114151147
Test: atest FrameworksNetTests
Change-Id: I057dde79013b9eda5037b9a44f8eee06cc07352e
2019-02-06 14:07:39 +09:00
markchien
150e191bca [KA03] Support tcp keepalive offload
When offload is starting, socket will be switched to repair
mode. Read and write on the socket will not be allowed until
repair mode is turned off. If remote packet arrives, repair
mode will be turned off automatically and a callback will
be raised to indicate that socket is ready to read from.

Bug: 114151147
Test: -atest FrameworksNetTests
      -manual

Change-Id: I0c335865912e183e7ad32a8ea12188f02ccde5fd
2019-02-06 12:22:22 +09:00
Chalard Jean
98afe69ae9 Merge "[KA02] internal cleanup and refactor for SocketKeepalive" am: 292da961e6
am: 1732e54ca5

Change-Id: I242fdacdd70729367f60da80a1a27d8f5a08dff6
2019-02-05 10:39:31 -08:00
junyulai
06835112ab [KA02] internal cleanup and refactor for SocketKeepalive
In previous change, the new SocketKeepalive API was exported.
But internally, old PacketKeepalive names and structures are
still used.

This change rename them properly for code consistency and also
refactor KeepalivePacketData to support different types of
KeepalivePacketData.

Bug: 114151147
Test: 1. atest FrameworksNetTests
      2. atest FrameworksWifiTests
      3. atest FrameworksTelephonyTests

Change-Id: Ia9917d12987e91e87e34ffb3f126e7bc7c9c187e
Merged-In: Ia9917d12987e91e87e34ffb3f126e7bc7c9c187e
2019-02-05 20:13:47 +09:00
junyulai
e413528700 [KA02] internal cleanup and refactor for SocketKeepalive
In previous change, the new SocketKeepalive API was exported.
But internally, old PacketKeepalive names and structures are
still used.

This change rename them properly for code consistency and also
refactor KeepalivePacketData to support different types of
KeepalivePacketData.

(clean cherry-pick from aosp/860394)

Bug: 114151147
Test: 1. atest FrameworksNetTests
      2. atest FrameworksWifiTests
      3. atest FrameworksTelephonyTests

Change-Id: Ia9917d12987e91e87e34ffb3f126e7bc7c9c187e
2019-02-04 04:06:22 +00:00
Remi NGUYEN VAN
45289f0bef Merge "Add NetworkStackPermissionStub definitions" am: 0fe59007ce am: d1a7c18ec6
am: f502776654

Change-Id: Ic4eb53246e7e61f7ebe6ad574a2e96a2cb4eff4b
2019-01-31 06:47:49 -08:00
Remi NGUYEN VAN
f502776654 Merge "Add NetworkStackPermissionStub definitions" am: 0fe59007ce
am: d1a7c18ec6

Change-Id: I201c5a28b7f07178a6980e582d05b36121037707
2019-01-31 06:36:24 -08:00
Remi NGUYEN VAN
0fe59007ce Merge "Add NetworkStackPermissionStub definitions" 2019-01-31 14:13:22 +00:00
Remi NGUYEN VAN
3b4ee41b21 Merge "Fix bluetooth tethering on multi-user" am: 4bb4c1a792 am: 1a0ac241e8
am: b077c11c2f

Change-Id: I21169bd77683c2f991f0ad1ab76e94b3e871a565
2019-01-31 04:32:06 -08:00
Remi NGUYEN VAN
b077c11c2f Merge "Fix bluetooth tethering on multi-user" am: 4bb4c1a792
am: 1a0ac241e8

Change-Id: I73c2a061f2aeae466f650d85f16cb4587b264737
2019-01-31 04:20:50 -08:00
Remi NGUYEN VAN
d8c75a0438 Add NetworkStackPermissionStub definitions
The NetworkStackPermissionStub package is used to enforce that
permissions used by the NetworkStack are only used in packages
sharing signature with NetworkStackPermissionStub.

Permissions defined in this package are intended to be used only by the
NetworkStack: both NetworkStack and the stub APK will be signed with
a dedicated certificate to ensure that, with permissions being signature
permissions.

This APK *must* be installed, even if the NetworkStack app is not
installed, because otherwise, any application will be able to define
this permission and the system will give that application full access
to the network stack.

Test: flashed, booted
Bug: 112869080
Change-Id: Ia13a9e6a703cb7b4403697a7f7bfff0f6f3b813e
2019-01-31 21:16:13 +09:00
Remi NGUYEN VAN
4bb4c1a792 Merge "Fix bluetooth tethering on multi-user" 2019-01-31 11:53:53 +00:00
Remi NGUYEN VAN
3884eeeb20 Merge changes from topic "bindprocess-resolv" am: 643e60b0fe am: 291e3726cd
am: 7a71796b0a

Change-Id: I3f35e6719db4a1152281d1143e8756e726d51e64
2019-01-31 00:30:06 -08:00
Remi NGUYEN VAN
7a71796b0a Merge changes from topic "bindprocess-resolv" am: 643e60b0fe
am: 291e3726cd

Change-Id: I80f85170981c2f5b1ef949b5db88baf5fc101cd0
2019-01-31 00:19:37 -08:00
Mark Chien
c85d681cec Merge "Add get last entitlement value callback API" am: 4163ff7928 am: 524fbd619e
am: a31f85f6dc

Change-Id: If67c8d092dd2c40f95cbe423bc694aa349039541
2019-01-30 23:59:01 -08:00
Remi NGUYEN VAN
643e60b0fe Merge changes from topic "bindprocess-resolv"
* changes:
  Allow use of bindProcessToNetwork only to change private DNS bypass.
  Allow bypassing private DNS via bindProcessToNetwork.
2019-01-31 07:52:04 +00:00
Mark Chien
a31f85f6dc Merge "Add get last entitlement value callback API" am: 4163ff7928
am: 524fbd619e

Change-Id: I42892bdacaa41f9cea7e653f0bb9b5497192e5f6
2019-01-30 23:49:43 -08:00
Mark Chien
4163ff7928 Merge "Add get last entitlement value callback API" 2019-01-31 07:23:31 +00:00
Remi NGUYEN VAN
3b906878f8 Fix bluetooth tethering on multi-user
Bluetooth runs as UID 1001002 when on a secondary user. With this change
the NetworkStack verifies that the calling UID matches the Bluetooth app
regardless of the user.

Test: flashed, BT reverse tethering still working as primary user
      (no option to turn on as secondary user on phones)
Bug: 123655057
Change-Id: I23f9c5fa40f3bb676ac65dd8c15106c9d78309a4
2019-01-31 16:03:21 +09:00
markchien
f273127880 Add get last entitlement value callback API
The callback would be used to notify entitlement value. If the
cache value indicates entitlement succeeded, it just fire
callback with cache value instead of run entitlement check.

Bug: 120887283
Test: atest FrameworksNetTests
Change-Id: I8afe928423bd75c54c61533a50a5c0814922ceb1
2019-01-31 12:31:55 +08:00
Varun Anand
066e326222 Merge "Add an API that allows VPNs to declare themselves as metered." am: 62a9b66a38 am: 9563c15d09
am: b8ae5b64a9

Change-Id: I74c6eceaa7444d0cc79fac3b94151a1bdeb63037
2019-01-30 20:11:09 -08:00
Lorenzo Colitti
e5ca11604e Allow use of bindProcessToNetwork only to change private DNS bypass.
Currently it is not possible to change private DNS bypass by
doing:

  setProcessDefaultNetwork(network.getPrivateDnsBypassingCopy());
  setProcessDefaultNetwork(network);

because the code will ignore the change. Fix this by ensuring
that we always call bindProcessToNetwork (which does not have
side effects) and then only performing the expensive operations
(flushing DNS cache, upating socket pools) if the netId changed.

Bug: 112869080
Test: None
Change-Id: I5e8999cb11d8b8c1e9eb583fa8b3932f212accff
2019-01-31 13:08:24 +09:00
Varun Anand
b8ae5b64a9 Merge "Add an API that allows VPNs to declare themselves as metered." am: 62a9b66a38
am: 9563c15d09

Change-Id: Iab1d2a3bf27ec9c033253ccd48ce8026e3b18799
2019-01-30 19:39:50 -08:00
Varun Anand
62a9b66a38 Merge "Add an API that allows VPNs to declare themselves as metered." 2019-01-31 02:43:25 +00:00
Pavel Grafov
ed02ce4f19 Merge "Nuke old setAlwaysOnVpnPackageForUser method." am: 35a8f1a38a am: 79867a16fb
am: 6efd265881

Change-Id: I0ca587378c1db327c4e73b18ab5c1c2505f05ce0
2019-01-30 14:50:00 -08:00
Remi NGUYEN VAN
df46cd451f Merge "Add SystemApi for captive portal metrics" am: 55849979a5
am: 56bed1321e

Change-Id: I15adc597039539d53e5c08dc5f8cac74bcb0eda2
2019-01-30 14:42:34 -08:00
Pavel Grafov
6efd265881 Merge "Nuke old setAlwaysOnVpnPackageForUser method." am: 35a8f1a38a
am: 79867a16fb

Change-Id: I7f0de294357ae6c691d38be52dd278eb37d42116
2019-01-30 14:36:37 -08:00
Remi NGUYEN VAN
55849979a5 Merge "Add SystemApi for captive portal metrics" 2019-01-30 22:24:12 +00:00
Varun Anand
1215f09b07 Add an API that allows VPNs to declare themselves as metered.
For VPN apps targeting Q and above, they will by default be treated as
metered unless they override this setting before establishing VPN.

Bug: 120145746
Test: atest FrameworksNetTests
Test: On device tests verifying meteredness setup correctly for apps
targeting Q and apps targeting P.
Change-Id: Ia6d1f7ef244bc04ae2e28faa59625302b5994875
2019-01-30 14:09:03 -08:00
Pavel Grafov
194b1cebd1 Nuke old setAlwaysOnVpnPackageForUser method.
All callers have migrated to 4-argument one.

Test: builds
Bug: 77468593
Change-Id: I253515f6b0100b675505646339e5b82d373c9429
2019-01-30 19:56:36 +00:00
Lorenzo Colitti
65ceeb4db2 Allow bypassing private DNS via bindProcessToNetwork.
Currently, bypassing private DNS requires calling the deprecated
setProcessDefaultNetworkForHostResolution. Allow apps to do this
via the non-deprecated binProcessForNetwork as well.

This has fewer backwards compatibility concerns than the
alternative approach of having setProcessDefaultNetwork call
setProcessDefaultNetworkForHostResolution. That approach would
have been problematic, for example, if an app did:

  cm.bindProcessToNetwork(network);
  ...
  cm.bindProcessToNetwork(null);

In this case, it would be difficult to know whether to clear the
resolver mapping as well: what if an app had also called
setProcessDefaultNetworkForHostResolution?

Similarly, it would be difficult to know what to do if an app did:

  cm.setProcessDefaultNetworkForHostResolution(network);
  cm.bindProcessToNetwork(null);

This approach does not have these concerns, and has no effect
on apps that don't call Network.getPrivateDnsBypassingCopy, which
regular apps don't have permission to use. It also provides a
path to deprecate setProcessDefaultNetworkForHostResolution.

Bug: 112869080
Test: atest android.net.cts.ConnectivityManagerTest android.net.cts.MultinetworkApiTest
Change-Id: I4158a37b6ed87a9a9b2677c526dcfee8af48e483
2019-01-31 00:55:47 +09:00
Remi NGUYEN VAN
a8f471c007 Merge "Add SystemApi for captive portal metrics" 2019-01-30 15:19:07 +00:00
Remi NGUYEN VAN
de60221ec8 Add SystemApi for captive portal metrics
The metrics go through NetworkMonitor in the NetworkStack so that they
can be upgraded to new metrics in the future.

Test: flashed, captive portal login works, metrics shown in events log
Bug: 112869080
Merged-In: I4bccfbd87bae5b2d65e45c7a5918aa45ab5d76e8
Change-Id: Ib5e2126788f8d56a00a56d7efcd33c5f9a37a6de
2019-01-30 22:54:27 +09:00
Remi NGUYEN VAN
d4a9de2055 Add SystemApi for captive portal metrics
The metrics go through NetworkMonitor in the NetworkStack so that they
can be upgraded to new metrics in the future.

Test: flashed, captive portal login works, metrics shown in events log
Bug: 112869080
(Cherry-pick of aosp/890004)

Change-Id: I4bccfbd87bae5b2d65e45c7a5918aa45ab5d76e8
2019-01-30 22:01:20 +09:00