Commit Graph

4007 Commits

Author SHA1 Message Date
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
Chalard Jean
08577fc579 Tell the factory it is already serving a request.
This is a cherry-pick of ag/607226 that has been rebased on
top of four years of changes and with comments addressed.

Gives each factory a serial number and propogates it to every
NetworkAgent so when a score comes back indicating a request is
being handled the factory can account for it properly.

Without this, a new request that's already handled by a network
offered by a factory will not cause an increment of the factorys
ref count. Concretely this results in issues like the RAT icon
not being displayed in spite of the network actually being up
and usable.

This will be ported to AOSP as soon as possible, but immediately
some master-only WiFi tests need to be adjusted with this change
which would not let me submit to AOSP.

Bug: 18637384
Bug: 29030667
Test: manual
Test: atest frameworks/opt/telephony/tests/telephonytests
Test: atest frameworks-net
Test: atest CtsNetTestCases CtsHostsideNetworkTests
Change-Id: I597ac588f76dd507512ff02868fd1310b7e63f7e
2019-01-30 15:41:57 +09:00
Remi NGUYEN VAN
4a80077ddd Merge "Remove last NetworkStack usage of hidden APIs" am: 16ec5d038c am: 4845df3ced
am: 14062be8f2

Change-Id: I2059d9cfa3015388301a74828255354b6dc23c23
2019-01-29 21:42:29 -08:00
Remi NGUYEN VAN
14062be8f2 Merge "Remove last NetworkStack usage of hidden APIs" am: 16ec5d038c
am: 4845df3ced

Change-Id: I488fc028b8fd2aa5a09464082c65a4889a8a6b62
2019-01-29 21:27:50 -08:00
Remi NGUYEN VAN
231b52bc03 Remove last NetworkStack usage of hidden APIs
Includes various small changes to stop using hidden APIs

Test: make NetworkStack
Test: flashed, booted, WiFi and tethering working
Bug: 112869080
Change-Id: Id2830795a444f484b377ed6437435a1cd833697a
2019-01-30 10:23:24 +09:00
Roshan Pius
5af35cba45 Merge "WifiNetworkConfigBuilder: Split into 2 separate builders" 2019-01-29 18:25:21 +00:00
Roshan Pius
3409263cba WifiNetworkConfigBuilder: Split into 2 separate builders
Split the existing WifiNetworkConfigBuilder into 2 separate builders,
one for building WifiNetworkSuggestion and one for WifiNetworkSpecifier.

Other changes in the CL:
a) Marked the constructor of the abstract NetworkSpecifier class public
to allow WifiNetworkSpecifier.Builder() (& hence WifiNetworkSpecifier) to
be public. The alternative is to put the builder for WifiNetworkSpecifier
in some other file (like WifiManager)
b) Mark WifiNetworkSpecifier class public to make it's builder visible.
c) Modify the documentation (& usage example) for WifiNetworkSpecifier
builder to explicitly call out that this can only be used for a local
wifi connection (i.e no internet capability).

Bug: 123313291
Test: ./frameworks/base/wifi/tests/runtests.sh
Test: make docs
Change-Id: I1a5fcff886124010222e112dbca92797a514b6d9
2019-01-29 10:23:46 -08:00
Chalard Jean
287da6be9d Merge "Move FdEventsReader to the shared area." am: 4a838a68d6 am: 06318332ef
am: 04c1e6533b

Change-Id: I6f08c2a2fb43ca34297a1e3289fca9da7cfe7213
2019-01-29 04:34:56 -08:00
Chalard Jean
04c1e6533b Merge "Move FdEventsReader to the shared area." am: 4a838a68d6
am: 06318332ef

Change-Id: I0f4418b73b455f9b37ae8f5b2ca1a19884c51ff9
2019-01-29 04:20:52 -08:00
Remi NGUYEN VAN
d0c4680e12 Merge "Add utils connect, setsockopt, bind, sendTo" am: 1e002eede3 am: dfa16fe772
am: 031e0aa44e

Change-Id: I7a1f7071d7b13b5e92fdf1af1686abdd8ceea3d6
2019-01-29 03:53:19 -08:00
Treehugger Robot
4a838a68d6 Merge "Move FdEventsReader to the shared area." 2019-01-29 11:45:15 +00:00
Remi NGUYEN VAN
6922228cd9 Merge "Add NetworkUtils utilities to SystemApi" am: 9cc31061fe am: ca1d65e707
am: 08747c5ccb

Change-Id: Ib755bbfc5bb6bff4ada3995b70dfe8fc2d40b4f9
2019-01-29 03:39:27 -08:00
Remi NGUYEN VAN
031e0aa44e Merge "Add utils connect, setsockopt, bind, sendTo" am: 1e002eede3
am: dfa16fe772

Change-Id: Ib5ebe3134fb1d53581b9d91b4f4f142afb5e9fb3
2019-01-29 03:34:23 -08:00
Remi NGUYEN VAN
08747c5ccb Merge "Add NetworkUtils utilities to SystemApi" am: 9cc31061fe
am: ca1d65e707

Change-Id: I978bdb626c1f4c8bbe736c8bad1c74fb6a67b4b5
2019-01-29 03:29:01 -08:00
Chalard Jean
0bf364d92e Move FdEventsReader to the shared area.
This is necessary both in the network stack app and the
framework.

Test: FrameworksNetTests
Change-Id: I48af0ab29405501f0581a6c0c9ce6e5d4a32c8b4
2019-01-29 18:35:11 +09:00
Remi NGUYEN VAN
249da094eb Add utils connect, setsockopt, bind, sendTo
The utilities are not supported as public API but required as SystemApi
for the NetworkStack.

Test: flashed, boots, WiFi works
Bug: 112869080
Change-Id: Ia64b3bf9c6c33cf61bed76469ea9963b550bed2b
2019-01-29 17:49:36 +09:00
Remi NGUYEN VAN
5c5f1ba99c Add NetworkUtils utilities to SystemApi
attach*Filter and addArpEntry are necessary for the NetworkStack but are
only usable for apps that have system permissions.
Also includes system API for IpPrefix, LinkAddress, LinkProperties,
Network, and static modifier in ApfCapabilities that were missed in
previous CLs.

Test: Builds, flashed, WiFi works
Bug: 112869080
Change-Id: If141ae6a2f9145f5af64ba002ca44938f39b90a9
2019-01-29 17:30:26 +09:00
Remi NGUYEN VAN
5b8ef04f36 Merge "Add SocketUtils for NetworkStack" am: cec60fa56a am: 27ae908282
am: ca7c41f5fa

Change-Id: I6d059f9cd1a694659bfd7ac09a32022d29c03f85
2019-01-28 23:47:36 -08:00
Remi NGUYEN VAN
ca7c41f5fa Merge "Add SocketUtils for NetworkStack" am: cec60fa56a
am: 27ae908282

Change-Id: I89fe62b4baf63104359bb6741807bb2f1666cdd9
2019-01-28 22:57:39 -08:00
Pavel Grafov
1f47ab08c1 Merge "Whitelist packages from VPN lockdown." am: 774c3ce152 am: b478bb25ac
am: 2b996ad0dd

Change-Id: Ice1f8f27da3d0092af58c8e93969575ba9f8f925
2019-01-28 22:13:24 -08:00
Pavel Grafov
2b996ad0dd Merge "Whitelist packages from VPN lockdown." am: 774c3ce152
am: b478bb25ac

Change-Id: I10094606f74e6cdc5f4b0b6591cf776fd895b1d3
2019-01-28 21:34:03 -08:00
Remi NGUYEN VAN
cec60fa56a Merge "Add SocketUtils for NetworkStack" 2019-01-28 23:14:08 +00:00