Commit Graph

1844 Commits

Author SHA1 Message Date
Junyu Lai
5591c1c73e Merge "[VCN01] Add NOT_VCN_MANAGED capability" am: 82ffaf2ac2 am: 0afa8fa899 am: 101173a281
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1529959

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I2ef798c4f1d66196322796c5e7ca9254300b5f78
2021-01-13 09:00:08 +00:00
Hai Shalom
41473668e1 Merge "Support for Venue URL and friendly name from Network agent" am: 6fce4189cd am: 5485906661 am: 16750033ff
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1515261

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I52b5fdc3445d35a19c0281469b4780bc5fe12199
2021-01-13 03:48:44 +00:00
junyulai
869e7020a0 [VCN01] Add NOT_VCN_MANAGED capability
Add new capability to indicate whether a network is
managed by Virtual Carrier Network (VCN). This is needed
to identify networks between VCN managed network and
others. And this capability will be:
  1. mutable
  2. requestable
  3. set by default for network agents and requests
  4. allowed for test networks

Test: 1. atest FrameworksNetTests CtsNetTestCases
      2. adb shell dumpsys connectivity
      3. atest ConnectivityServiceTest#testLoseMutableAndRequestableCaps
Bug: 175662146

Change-Id: Ia5eeb3912a687164fa95d7ba5516fd73abca79ba
2021-01-13 11:05:40 +08:00
Roshan Pius
d04061ee77 Merge "NetworkCapabilities: Embed location senstive TransportInfo" 2021-01-13 02:26:34 +00:00
Hai Shalom
6fce4189cd Merge "Support for Venue URL and friendly name from Network agent" 2021-01-13 01:54:05 +00:00
Lorenzo Colitti
9d76a44551 Merge changes I3eb82680,I9d6147d9 am: 013be9d6c8 am: a619c0c2d7 am: 6158fa695f
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1547644

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I3f0d6bfead295ed6a98a15ef9bb3542b88d5652a
2021-01-13 00:50:46 +00:00
Lorenzo Colitti
013be9d6c8 Merge changes I3eb82680,I9d6147d9
* changes:
  NetworkWatchlistServiceTests: update IIpConnectivityMetrics.
  Stop using IIpConnectivityMetrics in ConnectivityService.
2021-01-13 00:31:56 +00:00
Ken Chen
1ba322e461 Merge "Let ConnectivityService control the socket closure" am: 191e2d3c39 am: 968c4ed867 am: 9d2c783e91
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1534909

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I159a4a4115f200e78bc368d9db2997c58d0858b8
2021-01-12 23:46:44 +00:00
Ken Chen
b8e4bc9c3f Let ConnectivityService control the socket closure
Netd currently calls maybeCloseSockets before adding/removing users for
network. The task should be moved from netd to CS. In this way, we can
handle WiFi lingering more easily in the future.

Test: atest HostsideVpnTests
Test: atest FrameworksNetTests
Change-Id: Icf8125e8552c89da367a67f48611ed193a1a343d
2021-01-12 23:50:28 +08:00
Lorenzo Colitti
d9932a7da8 Stop using IIpConnectivityMetrics in ConnectivityService.
Currently, ConnectivityService calls the IpConnectivityMetrics
service class directly to log default network events. This is
incompatible with ConnectivityService being in a mainline module.
Replace direct access to IIpConnectivityMetrics with public
methods in IpConnectivityLog, which is @SystemApi class.

The new methods are not yet @SystemApi, but they can be made so
if desired. Alternatively, these metrics could be deleted.

Also remove the IpConectivityMetrics service from the
service-connectivity JAR, and go back to starting it from
SystemServer.java, which is what was happening a few hours ago
before aosp/1542626 was merged.

Test: builds, boots
Test: atest FrameworksNetTests
Test: "dumpsys connmetrics" shows events, including default network events
Change-Id: I9d6147d93590363a2f8f83f39f05c03d001b4851
2021-01-12 23:19:49 +09:00
Lorenzo Colitti
183bdef769 Merge "Remove Vpn#isBlockingUid." am: 57f4dfc101 am: aeeac8d0c7 am: 19281cbdb4
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1528212

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I141c6e1d0585f81e2ab14ad96499beb112eebdb5
2021-01-12 11:26:08 +00:00
Lorenzo Colitti
57f4dfc101 Merge "Remove Vpn#isBlockingUid." 2021-01-12 10:20:33 +00:00
Treehugger Robot
f2b8791703 Merge "Improve error message when testing network factory" am: 5c19af924e am: 00545d7629 am: d89648a6cc
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1531798

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I4b421f7b2895a24912d37d73dc011fa440440cf2
2021-01-12 05:31:18 +00:00
Treehugger Robot
5c19af924e Merge "Improve error message when testing network factory" 2021-01-12 03:50:30 +00:00
Hai Shalom
492febbfa2 Support for Venue URL and friendly name from Network agent
Extend CaptivePortalData with a member to hold the venue friendly
name. If CaptivePortalData is initialized by both the network
agent and Capport, merge the two objects to include the venue
friendly name and prioritize the venue URL from the network
agent.

Bug: 162783305
Test: atest ConnectivityServiceTest
Test: atest CtsNetTestCasesLatestSdk:CaptivePortalDataTest
Test: End-to-end test
Change-Id: I4fdf356be42237c5b6c0ae5bacfd3cec4726861b
2021-01-11 18:45:34 -08:00
Jeff DeCew
2c92a7415a Merge "Show LargeIcon as wide for apps targeting S." 2021-01-08 20:57:53 +00:00
Treehugger Robot
19efed5fab Merge "Pivot network statistics to use DataInput/Output." am: 14b8536eb3 am: 67ae1d500b am: 2ac863a446
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1540224

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I44be7ea64d012f35d312ae3b039b0fd7e37e9d60
2021-01-08 11:49:37 +00:00
Treehugger Robot
14b8536eb3 Merge "Pivot network statistics to use DataInput/Output." 2021-01-08 10:33:16 +00:00
Lorenzo Colitti
db35103974 Remove Vpn#isBlockingUid.
This code is no longer used. Delete it and the tests for it.

One of the tests checks that when a restricted profile is added,
the lockdown UID rules are updated to cover that profile as well.
ConnectivityServiceTest does not currently has coverage for this,
so add it.

Bug: 173331190
Test: moved unit test from VpnTest to ConnectivityServiceTest
Change-Id: Ic350b90946870890bf031668bb5c201037b0bd15
2021-01-08 15:35:55 +09:00
Roshan Pius
e9c34f86cb NetworkCapabilities: Embed location senstive TransportInfo
Changes:
i) Add a new constructor for NetworkCapabilities which accepts whether
location sensitive fields need to be parceled or not. Defalts to false
on the other constructor. This boolean should only be set on the copy of
NetworkCapabilities when sent to apps that hold location permission.
(Similar to how sensitive fields are handled in LinkProperties)
ii) Add a new makeCopy() method in the TransportInfo interface which
accepts whether location sensitive fields need to be parceled or not.
iii) Migrate the existing NetworkCapabilities owner UID masking to use
this new mechanism (instead of existing masking in ConnectivityService).
iv) Always set parcelLocationSensitiveFields to true in the NetworkAgent
surface (since that is a privileged surface from the transports to the
connectivity service)
v) Add a hasSensitiveFields() in TransportInfo interface to avoid
perfoming location permission checks for location insensitive
TrasnsportInfo.

Also, migrate to the new SdkLevel util for isAtLeastR() & isAtLeastS()
checks.

Bug: 162602799
Test: atest android.net
Test: atest com.android.server
Change-Id: Ie522d8c75a82ae521ccfd5165823d0c72642e651
2021-01-07 13:24:33 -08:00
Jeff DeCew
3aa6043c46 Show LargeIcon as wide for apps targeting S.
* This does not inhibit the grouping behavior which demotes this image and shows it in a smaller square area on the left.
* This also converts the Notification class to calculate margins and sizes in DIP instead of PX, as that is more resilient.

Fixes: 175409684
Test: atest NotificationTemplateTest
Change-Id: I35d28c8df341dbbac2774026c6ca749e296c0482
2021-01-07 14:30:57 -05:00
Lorenzo Colitti
927845625a Merge changes Iec22ff63,Iaca8a7cc am: 0cec61c277 am: de3c1f6764 am: 6aacbaac9c
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1528211

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I293366c6aac42f776ff23277a707d8c2ae0fd1b0
2021-01-07 19:22:06 +00:00
Lorenzo Colitti
e8ce205f6d Inform ConnectivityService about always-on VPN lockdown.
Currently, when an always-on VPN is set in lockdown mode, Vpn
configures prohibit UID rules in netd directly and does not
inform ConnectivityService of the fact.

This means that ConnectivityService cannot send NetworkCallbacks
that tells apps that they are blocked or unblocked. It also means
that ConnectivityService has to take the mVpns lock and call into
Vpn to allow synchronous APIs such as getActiveNetwork to return
BLOCKED if the app is blocked.

Move all this to ConnectivityService:
- Add a setRequireVpnForUids API to ConnectivityManager, and have
  that pass the routing rules to netd.
- Update VpnTest to expect calls to ConnectivityManager instead
  of to netd.
- Whenever setRequireVpnForUids is called, ensure that
  ConnectivityService sends onBlockedStatusChanged to the
  affected callbacks.
- Update existing unit tests to check for callbacks.
- Add a way to find the VPN that applies to a given UID without
  taking the VPN lock, by instead scanning all connected VPNs.
  Use this as a replacement for direct access to mVpns.

For simplicity, and in order to ensure proper ordering between
the NetworkCallbacks sent for VPNs connecting and disconnecting,
process blocked UID ranges on the handler thread. This means that
when setRequireVpnForUids returns, the rule changes might not
have been applied. This shouldn't impact apps using network
connectivity, but it might mean that apps setting an always-on
package, and then immediately checking whether networking is
blocked, will see a behaviour change.

Bug: 173331190
Fix: 175670887
Test: new test coverage in ConnectivityServiceTest
Test: atest MixedDeviceOwnerTest#testAlwaysOnVpn \
            MixedDeviceOwnerTest#testAlwaysOnVpnLockDown \
	    MixedDeviceOwnerTest#testAlwaysOnVpnAcrossReboot \
	    MixedDeviceOwnerTest#testAlwaysOnVpnPackageUninstalled \
	    MixedDeviceOwnerTest#testAlwaysOnVpnUnsupportedPackage \
	    MixedDeviceOwnerTest#testAlwaysOnVpnUnsupportedPackageReplaced \
	    MixedDeviceOwnerTest#testAlwaysOnVpnPackageLogged \
            MixedProfileOwnerTest#testAlwaysOnVpn \
            MixedProfileOwnerTest#testAlwaysOnVpnLockDown \
	    MixedProfileOwnerTest#testAlwaysOnVpnAcrossReboot \
	    MixedProfileOwnerTest#testAlwaysOnVpnPackageUninstalled \
	    MixedProfileOwnerTest#testAlwaysOnVpnUnsupportedPackage \
	    MixedProfileOwnerTest#testAlwaysOnVpnUnsupportedPackageReplaced \
	    MixedProfileOwnerTest#testAlwaysOnVpnPackageLogged \
            MixedManagedProfileOwnerTest#testAlwaysOnVpn \
            MixedManagedProfileOwnerTest#testAlwaysOnVpnLockDown \
	    MixedManagedProfileOwnerTest#testAlwaysOnVpnAcrossReboot \
	    MixedManagedProfileOwnerTest#testAlwaysOnVpnPackageUninstalled \
	    MixedManagedProfileOwnerTest#testAlwaysOnVpnUnsupportedPackage \
	    MixedManagedProfileOwnerTest#testAlwaysOnVpnUnsupportedPackageReplaced \
	    MixedManagedProfileOwnerTest#testAlwaysOnVpnPackageLogged
Test: atest FrameworksNetTests HostsideVpnTests \
            CtsNetTestCases:VpnServiceTest \
	    CtsNetTestCases:Ikev2VpnTest
Change-Id: Iaca8a7cc343aef52706cff62a7735f338cb1b772
2021-01-07 17:44:29 +09:00
Paul Hu
c435b35e9f Merge "Replace INetworkPolicyManager to NetworkPolicyManager" am: 715827ca0a am: 19cb73eaa1 am: 9e47ac3e60
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1534908

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Id6685f26e6f7c7d9b0da6edd147f1aa37e16d676
2021-01-07 03:41:23 +00:00
Paul Hu
715827ca0a Merge "Replace INetworkPolicyManager to NetworkPolicyManager" 2021-01-07 02:08:58 +00:00
Jeff Sharkey
fdca8168db Pivot network statistics to use DataInput/Output.
Using these generalized interfaces is more flexible, since it enables
us to pivot the implementation being used internally.  In particular,
an upcoming CL will pivot them to use a more efficient alternative.

This is a no-op refactoring.

Bug: 176777285
Test: atest FrameworksNetTests CtsNetTestCases
Change-Id: Ibd4717174cf1f136e9d5d80172ecb6e493265306
2021-01-06 18:48:12 -07:00
Lorenzo Colitti
abf3317103 Merge "Migrate away from AsyncChannel in NetworkAgent" 2021-01-06 14:10:21 +00:00
junyulai
0b9fecfac2 Improve error message when testing network factory
Currently, when network factory is under testing, but failed
without terminating the network factory. The mocked network
factory will stay registered and trigger another assertion
fail in teardown(). Thus, the test suite will only shows
the callstack that generated in teardown() instead of the
original fail. The error message is misleading and not useful
at all.

Thus, safely terminate and quit mocked network factory after
testing to prevent assertion fail in teardown().

Test: atest ConnectivityServiceTest#testMobileDataAlwaysOn
Bug: 175180558
Change-Id: I0f96332cc05221e576bd792c6cd26d9dccb4e228
2021-01-06 17:26:09 +08:00
paulhu
7121b5ef72 Replace INetworkPolicyManager to NetworkPolicyManager
Connectivity service is going to become a mainline module which
will not able to access hidden APIs. Thus, use formal API
Context#getSystemService() to get network policy service instead
of hidden API ServiceManager#getService().

Bug: 170598012
Test: atest FrameworksNetTests FrameworksNetIntegrationTests
Change-Id: I4f286264b5800b2b922f85a76ddd20d64d53000a
2021-01-05 17:47:25 +08:00
Junyu Lai
0310fc1f60 Merge "Add test for increment operation count on non-default network" am: 20f05ed023 am: 7933522fbf am: 730e15b8d6
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1517499

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I53607908e07f8c7c94e1c2ac8632ebb645ea469a
2020-12-28 10:01:46 +00:00
Junyu Lai
20f05ed023 Merge "Add test for increment operation count on non-default network" 2020-12-28 08:16:44 +00:00
Chiachang Wang
629e586bff Merge "[IT4.2] Update argument type of interfaceClassDataActivityChanged" am: 6b674eea72 am: 3fa134a3f8 am: 1db2093644
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1531806

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I992dd2f78c0f7334bbe97a03faba161d09a03a71
2020-12-28 02:32:19 +00:00
Chiachang Wang
6b674eea72 Merge "[IT4.2] Update argument type of interfaceClassDataActivityChanged" 2020-12-28 01:05:28 +00:00
Serik Beketayev
20754ee85c Merge "[Mainline] Migrate ProxyInfo" am: ea935361d5 am: 872ac951cc am: a12940d1ca
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1506616

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ia6f5bf74bf461f762472ea1d88553db3b9719c80
2020-12-25 09:58:40 +00:00
Serik Beketayev
ea935361d5 Merge "[Mainline] Migrate ProxyInfo" 2020-12-25 08:32:04 +00:00
Remi NGUYEN VAN
96be83bccb Migrate away from AsyncChannel in NetworkAgent
Use two oneway binder interfaces instead.
The interfaces post messages to handlers as was implemented before, but
provide a more strictly defined interface, with less hops between
NetworkAgent, AsyncChannel, and ConnectivityService.

The actual public interface is the NetworkAgent @SystemApi: the binder
interface is an internal implementation detail.

Test: atest FrameworksNetTests CtsNetTestCasesLatestSdk
Bug: 173574274
Merged-In: Ie364ab50f416e7821e70f4539a881eea828e1256

Change-Id: Ie364ab50f416e7821e70f4539a881eea828e1256
2020-12-25 03:54:19 +00:00
Remi NGUYEN VAN
4f9da57398 Merge "Migrate away from AsyncChannel in NetworkAgent" 2020-12-25 01:57:44 +00:00
Sudheer Shanka
49305f5625 Merge "Update usage of allowlist/denylist in some method names/comments." am: e1dc77b743 am: f316b89f93 am: fa2f9f4eee
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1402789

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I40b28e3be169fbc59f8b889871ed938b45de2fab
2020-12-24 09:50:20 +00:00
Sudheer Shanka
e1dc77b743 Merge "Update usage of allowlist/denylist in some method names/comments." 2020-12-24 08:16:51 +00:00
Aaron Huang
45c71859fd Merge "Have NetworkPolicyManagerService create MultipathPolicyTracker" am: 99f0ad7b3e am: 7334ba2cb9 am: c0fe879c33
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1519960

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I023815a53f01a0459b94033b7e2fa2ed91cca86a
2020-12-24 07:02:53 +00:00
Serik Beketayev
aca858652c [Mainline] Migrate ProxyInfo
Bug: 173455434
Test: atest FrameworksNetTests
Change-Id: I924aed710b62a0c91b888a9e04ac2c90cdfd88d0
2020-12-23 22:15:51 -08:00
junyulai
0a2a999f05 Add test for increment operation count on non-default network
Currently, when the caller increment operation count, the count
will be blamed on the active default network even though the
traffic is all generated on other networks. This is kind
of weird. But in order to change the behavior, extend test
coverage first.

Test: atest com.android.server.net.NetworkStatsServiceTest#testOperationCount_nondefault_traffic
Bug: 174123988

Change-Id: Ia5b5aa3601de15bb9ee5a29f6d184d122f1c5352
2020-12-24 13:22:59 +08:00
Sudheer Shanka
e4c793b200 Update usage of allowlist/denylist in some method names/comments.
In a previous change (https://r.android.com/1394342), we did a mass update of whitelist->allowlist
and blacklist->denylist in network policy related code. Updating
some usages of those (like allowlisted to allowed) to make them
sound natural.

Test: atest services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java
Test: atest services/tests/servicestests/src/com/android/server/NetworkManagementInternalTest.java
Test: atest hostsidetests/net/src/com/android/cts/net/HostsideRestrictBackgroundNetworkTests.java
Change-Id: I6d34b0bd3cdb64d5872874fd9378bfc962a24f8d
2020-12-24 04:03:33 +00:00
Aaron Huang
5301b6faf4 Have NetworkPolicyManagerService create MultipathPolicyTracker
To make connectivity service mainline, this patch makes
MultipathPolicyTracker as a submodule of NetworkPolicyManagerService
to remove the dependencies of ConnectivityService.

Bug: 175015282
Test: FrameworksNetTests
Change-Id: I82a7c62069ffd0683deb2f5ce2f99de120a2a16f
2020-12-23 23:17:15 +08:00
Chiachang Wang
973313a3d5 [IT4.2] Update argument type of interfaceClassDataActivityChanged
The argument type of interfaceClassDataActivityChanged takes a
string for the network type. It requires both the receivers and
NMS to do type transformation. The transformation is a redundant
work. Update it to take integer directly and rename to
understandable naming.

Bug: 170598012
Test: atest FrameworksNetTests
Change-Id: Ibe9fa7a1b71af2dab916b5d615742e77e4174c39
2020-12-23 17:34:08 +08:00
Remi NGUYEN VAN
37ebfa827a Migrate away from AsyncChannel in NetworkAgent
Use two oneway binder interfaces instead.
The interfaces post messages to handlers as was implemented before, but
provide a more strictly defined interface, with less hops between
NetworkAgent, AsyncChannel, and ConnectivityService.

The actual public interface is the NetworkAgent @SystemApi: the binder
interface is an internal implementation detail.

Test: atest FrameworksNetTests CtsNetTestCasesLatestSdk
Change-Id: Ie364ab50f416e7821e70f4539a881eea828e1256
2020-12-23 17:30:54 +09:00
Chiachang Wang
49cbff8801 Merge "[IT04] Add uid as parameter of interfaceClassDataActivityChanged" am: 3035c93439 am: 40b5767863 am: 702597e7fe
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1523339

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ieafdf569c13b1421c18fa3086827e6e432b498d7
2020-12-23 07:31:25 +00:00
Chiachang Wang
3035c93439 Merge "[IT04] Add uid as parameter of interfaceClassDataActivityChanged" 2020-12-23 05:20:33 +00:00
Remi NGUYEN VAN
852709e1cd Merge "Split NetworkUtils and NetworkUtilsInternal" am: caa437cae0 am: 15befc3d9e am: a0ac08e394
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1513140

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ief9d6a1fae360dbe1c43d5d6bac4dad5850c004b
2020-12-23 02:22:35 +00:00
Remi NGUYEN VAN
caa437cae0 Merge "Split NetworkUtils and NetworkUtilsInternal" 2020-12-23 01:19:27 +00:00