Commit Graph

12228 Commits

Author SHA1 Message Date
Lorenzo Colitti
11eae148c4 Merge "BroadcastInterceptingContext: use passed-in broadcast Handler." am: b3ce8c39d8 am: 3d2c5d6774
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1589251

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib20cb0ce6e981f71695edee77e428b4926266ea7
2021-02-15 11:35:27 +00:00
Lorenzo Colitti
3d2c5d6774 Merge "BroadcastInterceptingContext: use passed-in broadcast Handler." am: b3ce8c39d8
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1589251

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I81793b6c6ff3e4eb4146a115079443f76eecba13
2021-02-15 11:00:37 +00:00
Lorenzo Colitti
b3ce8c39d8 Merge "BroadcastInterceptingContext: use passed-in broadcast Handler." 2021-02-15 10:42:18 +00:00
Lorenzo Colitti
37d17e60c3 BroadcastInterceptingContext: use passed-in broadcast Handler.
Currently, BroadcastInterceptingContext always runs broadcast
receivers on the thread that called sendBroadcast. This means:

1. Receivers might run on the wrong thread, making the test less
   realistic.
2. If any receiver checks what thread it's running on, then
   either the check needs to be modified or deleted, or the test
   must call sendBroadcast on the thread that the receiver
   expects to run on. The latter is impossible when there is more
   than one receiver that needs to run on more than one thread.

This CL adds a setUseRegisteredHandlers method that allows tests
to say that they want each receiver to run on the Handler
specified at registration time.

This CL also enables the new mode for ConnectivityServiceTest,
and resolves a TODO to re-enable a disabled thread check.

The new mode cannot be enabled by default because it would break
most of the tests.

All the below tests pass except for the car bluetooth test
testAutoConnectAdapterOff_returnsImmediately which was already failing.

Bug: 173331190
Test: atest CarInputServiceTest BluetoothProfileDeviceManagerTest
Test: atest NetworkPolicyManagerServiceTest
Test: atest ConnectivityServiceTest
Test: atest TetheringTest TetheringNotificationUpdaterTest
Test: atest VersionedBroadcastListenerTest EntitlementManagerTest
Test: atest TetheringConfigurationTest
Test: atest CachedDeviceStateServiceTest
Test: atest EmergencyAffordanceServiceTest
Change-Id: I3303bb14516f07a55d82a16b59c111ab3f8b0389
2021-02-15 10:40:32 +00:00
Lorenzo Colitti
ca49f2e37c Merge "Minor fixes to LockdownVpnTracker." am: 63072f5113 am: 3926e61925
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1585566

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I9cfdfe54af4ff25e6ca8aee8ddccc74882a72f71
2021-02-15 07:38:20 +00:00
Lorenzo Colitti
3926e61925 Merge "Minor fixes to LockdownVpnTracker." am: 63072f5113
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1585566

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib400714e6faa8cf06487c5d6c721fdd444164fa4
2021-02-15 06:58:45 +00:00
Lorenzo Colitti
63072f5113 Merge "Minor fixes to LockdownVpnTracker." 2021-02-15 06:25:16 +00:00
Treehugger Robot
aeba5e6808 Merge "Expose VpnTransportInfo as module-lib API." am: 30f9755ffc am: 73d58fb722
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1585572

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I5c86cd1089bd4fe406fadf2e0ab6609558ed8510
2021-02-15 05:51:10 +00:00
Treehugger Robot
73d58fb722 Merge "Expose VpnTransportInfo as module-lib API." am: 30f9755ffc
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1585572

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I746f6c33ae1076aa057eca1c731847bf59b7ba66
2021-02-15 05:24:28 +00:00
Treehugger Robot
30f9755ffc Merge "Expose VpnTransportInfo as module-lib API." 2021-02-15 04:54:13 +00:00
Lorenzo Colitti
321e1c1f6a Merge changes Ia68f482a,I4911e214,Ied379654,I66d18512,Ie8e1bd63 am: 6e423b8024 am: f390bd61d7
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1581293

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I91816c01a799a89b89098a6e9ff256dae7d31dbf
2021-02-15 01:03:06 +00:00
Lorenzo Colitti
a0473fccb7 Minor fixes to LockdownVpnTracker.
1. Remove the legacy network type. This is only used for logging.
   - Replace the logcat logging with the display transport
   - Remove the EventLogTags logging, since it's likely not
     actually used by anyone.

2. Remove code that checks for NetworkInfo objects in state
   FAILED, since LockdownVpnTracker can never have received any
   such NetworkInfo from ConnectivityService since lollipop.

Bug: 173331190
Test: passes existing tests in ConnectivityServiceTest
Change-Id: I66ed71e51ba18b95862f3a0a5df2775eecea501e
2021-02-15 09:58:20 +09:00
Lorenzo Colitti
30ac156ae5 Expose VpnTransportInfo as module-lib API.
This information originates in non-mainline system server code
and needs to be passed to the connectivity mainline code.

Bug: 173331190
Test: already covered by CTS tests
Change-Id: Ic612b6a51f7ec13e2213c8754312cf716130c876
2021-02-15 09:34:19 +09:00
Lorenzo Colitti
f390bd61d7 Merge changes Ia68f482a,I4911e214,Ied379654,I66d18512,Ie8e1bd63 am: 6e423b8024
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1581293

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I042d739aff199b0c7dff06008dcfaa9492e08d95
2021-02-15 00:30:46 +00:00
Lorenzo Colitti
6e423b8024 Merge changes Ia68f482a,I4911e214,Ied379654,I66d18512,Ie8e1bd63
* changes:
  Check registering system default callback needs NETWORK_SETTINGS.
  Move VPN code from ConnectivityService to VpnManagerService.
  Add a skeleton VpnManagerService, and start it on boot.
  Convert LockdownVpnTracker to NetworkCallbacks.
  Minor fixes to VpnTransportInfo.
2021-02-15 00:00:47 +00:00
James Mattis
c4221b6a75 Merge changes from topics "pans", "pans-permission" am: 68658a18c7 am: 6e19867390
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1561317

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I8afdee99c0b0813d3e3a61df053f9cdef966949c
2021-02-13 21:51:49 +00:00
James Mattis
6e19867390 Merge changes from topics "pans", "pans-permission" am: 68658a18c7
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1561317

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I72035b6d5d6504cece1df472ae317e865ceb7882
2021-02-13 21:14:48 +00:00
James Mattis
68658a18c7 Merge changes from topics "pans", "pans-permission"
* changes:
  Marking setOemNetworkPreference as @SystemApi
  Adding permission for OEM managed preferences
  Implementation of setOemNetworkPreference
2021-02-13 20:54:57 +00:00
Yan Yan
913569d3e5 Merge changes Ifc8ad902,I6d1b8d0e am: 87c6253518 am: 66b74e588b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1453730

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: If7bedd741266a08bf2eef515f1fb72a9aebc74e3
2021-02-12 22:12:07 +00:00
Yan Yan
66b74e588b Merge changes Ifc8ad902,I6d1b8d0e am: 87c6253518
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1453730

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I12bd81925142b20a04448952de67cb72d77b4ccd
2021-02-12 21:41:59 +00:00
Yan Yan
87c6253518 Merge changes Ifc8ad902,I6d1b8d0e
* changes:
  [API] Expose IpSecTunnelInterface#setUnderlyingNetwork
  Update underlying network of IpSecTunnelInterface
2021-02-12 21:23:29 +00:00
Treehugger Robot
a62a0be37d Merge "Stop using Slog in QosCallbackTracker." am: 3b78cadc29 am: 55db18c16b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1585567

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I25baa31f1d7d148a78e29ae46a152b6b5e245d0b
2021-02-12 05:48:35 +00:00
Treehugger Robot
55db18c16b Merge "Stop using Slog in QosCallbackTracker." am: 3b78cadc29
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1585567

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I6df42ce17addb1f433eba440ba4593b2e4ca57e5
2021-02-12 05:18:13 +00:00
James Mattis
7a25354727 Marking setOemNetworkPreference as @SystemApi
Marking setOemNetworkPreference in ConnectivityManager as @SystemApi.

Bug: 176496438
Bug: 176494815
Test: atest FrameworksNetTests
atest FrameworksNetIntegrationTests
atest CtsNetTestCasesLatestSdk

Change-Id: I4681c88dc3a83f71c387b29610c33594e57cb43f
2021-02-11 20:38:21 -08:00
James Mattis
981865c88f Adding permission for OEM managed preferences
Adding CONTROL_OEM_PAID_NETWORK_PREFERENCE as a signature level
permission to allow an application to control OEM managed network
preferences.

Bug: 176496438
Bug: 176494815
Test: atest FrameworksNetTests
atest NetworkStackTests
atest FrameworksNetIntegrationTests
atest NetworkStackIntegrationTests
atest CtsNetTestCasesLatestSdk
Change-Id: Iee13e89f3931c7079c2d88cb57b249b1b1cf93ad

Change-Id: Id29cafe1eaf5dff8a0605cb2579204d9c77b7e70
2021-02-11 20:38:21 -08:00
James Mattis
6e6fabf657 Implementation of setOemNetworkPreference
Main implementation of ConnectivityService.setOemNetworkPreference. This
covers the main requirements of this method including listener
functionality.

Bug: 176495594
Bug: 177101287
Bug: 176494815
Test: atest FrameworksNetTests
atest NetworkStackTests
atest FrameworksNetIntegrationTests
atest NetworkStackIntegrationTests
atest CtsNetTestCasesLatestSdk

Change-Id: I8d318ab07785e52dd84d6261fdea8f318dce9bc5
2021-02-11 20:38:18 -08:00
Treehugger Robot
3b78cadc29 Merge "Stop using Slog in QosCallbackTracker." 2021-02-12 04:03:12 +00:00
Lorenzo Colitti
aa5a8b2c6d Stop using Slog in QosCallbackTracker.
This is not public API. Use Log instead.

Test: m
Fix: 172050541
Change-Id: I281831431e2edcf9a3b77122ad8736b94aa8e215
2021-02-12 01:40:06 +00:00
Lorenzo Colitti
d5e9f98e28 Check registering system default callback needs NETWORK_SETTINGS.
Also address a code review comment.

Bug: 173331190
Test: test-only change
Change-Id: Ia68f482af6d10af203bdbd4e14a12ae0b12bb6b5
2021-02-12 01:12:48 +09:00
Lorenzo Colitti
0dd4b6f512 Move VPN code from ConnectivityService to VpnManagerService.
ConnectivityService itself does not depend on mVpns or the Vpn
class any more. Most of this CL is simply moving code from one
class to another:

- Move the AIDL calls from IConnectivityManager to IVpnManager.
- Move the implementation from ConnectivityService to
  the new VpnManagerService.
- Move the APIs from ConnectivityManager to VpnManager, but
  temporarily maintain some shims in ConnectivityManager for the
  moved calls so that existing callers do not have to be modified
  in this CL.
- Update VpnService to call IVpnManager instead of
  IConnectivityManager.
- Move the code that registers the VpnManager service from
  ConnectivityFrameworkInitializer to SystemServiceRegistry.

Bug: 173331190
Test: atest HostsideVpnTests FrameworksNetTests CtsNetTestCases
Change-Id: I4911e2144df721a94fa00da9edf0dc372a7091c2
2021-02-12 01:12:24 +09:00
Lorenzo Colitti
bfad39fe98 Add a skeleton VpnManagerService, and start it on boot.
This adds a lot of unused code but this should make it easier to
review subsequent CLs.

Bug: 173331190
Test: builds, boots, "dumpsys vpnmanager" succeeds
Change-Id: Ied379654a0c3ab6242d3125661fe30f322395059
2021-02-12 01:07:29 +09:00
Lorenzo Colitti
549e9acd92 Convert LockdownVpnTracker to NetworkCallbacks.
This will allow moving LockdownVpnTracker from the connectivity
to the VPN code. This requires moderate refactoring since it's
pretty tightly coupled to both.

In this CL:

1. Add an @hide API to tell ConnectivityService that legacy
   lockdown VPN is enabled. I chose not to use the existing
   setVpnRequiredForUids API because that method has specific
   semantics and because it will be required long term since
   it's used by non-legacy VPN types.

2. Instead of updating LockdownVpnTracker inline from the
   ConnectivityService handler thread, have it listen to
   NetworkCallbacks. This introduces an extra thread hop, but
   most of the interactions between the lockdown VPN and CS were
   via NetworkAgent, which is asynchronous anyway.

3. Add code to LegacyTypeTracker to send the extra
   CONNECTIVITY_ACTION broadcast for the underlying network type
   that is sent after the VPN connects. In order to do this, make
   Make LockdownVpnTracker specify its underlying network
   (via setUnderlyingNetworks) when it connects.

4. Reimplement LockdownVpnTracker#augmentNetworkInfo based on
   information that is available in ConnectivityService.

5. Remove the code in LockdownVpnTracker that counted errors.
   I think this code has not worked since lollipop, because
   ConnectivityService never sees NetworkInfo objects in state
   FAILED. This is because ConnectivityService only hears about
   NetworkInfo objects via NetworkAgents, and LegacyVpnRunner
   only registers its NetworkAgent when the connection succeeds.

Bug: 173331190
Test: passes existing tests in ConnectivityServiceTest
Change-Id: I66d18512882efd468ee0ecec61f28786a195b357
2021-02-12 01:07:29 +09:00
Lorenzo Colitti
720f3cc167 Minor fixes to VpnTransportInfo.
This CL addesses comments on aosp/1570921.

Bug: 173331190
Test: new test coverage
Change-Id: Ie8e1bd63bb818a03f4b17402e1b365577ca034a2
2021-02-11 23:28:00 +09:00
Roland Levillain
541fc05fd4 Merge changes from topic "int32ref" am: 8437d37bd0 am: 947f8c8acf
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1566390

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I8511efa59e8d8617f48d62ee52d9e7ae15458253
2021-02-11 13:06:09 +00:00
Roland Levillain
947f8c8acf Merge changes from topic "int32ref" am: 8437d37bd0
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1566390

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I86dde2fef971759b4720cfb242e8954baacf9d84
2021-02-11 12:43:56 +00:00
Roland Levillain
8437d37bd0 Merge changes from topic "int32ref"
* changes:
  [Mainline] android.system package APIs migration
  Use public android.system.Int64Ref instead of Int32Ref which is hidden (CorePlatformApi) type of libcore
2021-02-11 12:05:36 +00:00
Yan Yan
00387a2654 Update underlying network of IpSecTunnelInterface
Bug: 169855650
Test: atest IpSecManagerTunnelTest
Change-Id: I6d1b8d0e49f89c67ddc2caf4ba63fb0b1eb062c0
2021-02-10 14:51:43 -08:00
Hai Shalom
b5a72aa56d Merge "Support for Terms & Conditions notification" am: 67bb51ec40 am: fed30f42e8
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1557451

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I233420be11a45376bb6771389e440fcd92c94fb5
2021-02-10 16:32:46 +00:00
Hai Shalom
fed30f42e8 Merge "Support for Terms & Conditions notification" am: 67bb51ec40
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1557451

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ibabb4e549706c5ab263aab9df78c9e5a0bff95de
2021-02-10 15:40:25 +00:00
Hai Shalom
67bb51ec40 Merge "Support for Terms & Conditions notification" 2021-02-10 15:36:58 +00:00
Serik Beketayev
13279169ae [Mainline] android.system package APIs migration
By removing Int32Ref.

Bug: 177619520
Bug: 179703584
Test: mma
Change-Id: I9b63146ae563ed977f3112c9910f7a7c575de0b8
Merged-In: I9b63146ae563ed977f3112c9910f7a7c575de0b8
(cherry picked from commit 63be51447826b077a1048901bb1aa73adb321ee1)
2021-02-10 12:34:46 +00:00
Lorenzo Colitti
22b1c63d51 Merge changes from topics "vpnmove-getconnectionowneruid", "vpnmove-systemdefaultcallback", "vpnmove-vpntransportinfo" am: 5e21b83410 am: 5eac15c044
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1572981

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: If16c695f15a12615811545836b4117225097d6a4
2021-02-10 07:20:26 +00:00
Lorenzo Colitti
5eac15c044 Merge changes from topics "vpnmove-getconnectionowneruid", "vpnmove-systemdefaultcallback", "vpnmove-vpntransportinfo" am: 5e21b83410
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1572981

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I83b4210780cf87006be5f55439ade06cd7893530
2021-02-10 06:55:56 +00:00
Lorenzo Colitti
5e21b83410 Merge changes from topics "vpnmove-getconnectionowneruid", "vpnmove-systemdefaultcallback", "vpnmove-vpntransportinfo"
* changes:
  Stop using mVpns in getConnectionOwnerUid.
  Add a VpnTransportInfo object.
  Add a registerSystemDefaultNetworkCallback method.
2021-02-10 06:38:41 +00:00
Lorenzo Colitti
bd015f4861 Stop using mVpns in getConnectionOwnerUid.
Use data that is already available in ConnectivityService
instead.

The behaviour of the new implementation is slightly different
from Q and R code when the permission check fails.

- The old code would throw a SecurityException if an app that
  was not an active VPN called the method, and would return
  INVALID_UID if the connection belonged to a UID that was not
  subject to the VPN.
- The new code returns INVALID_UID in both cases.

This does not seem like a compatibility problem. The only case in
which the code throws SecurityException is if the app is not a
current VPN app, but the app already knows whether it is or not.
The docs don't mention that the method SecurityException, either.

Bug: 173331190
Test: atest FrameworksNetTests
Test: atest HostsideVpnTests
Change-Id: If3d031e74df33b5c97e12ebf02272faac6769d50
2021-02-10 02:52:16 +09:00
Lorenzo Colitti
523b5e8405 Add a VpnTransportInfo object.
This currently stores the VPN type and a session name, but can be
extended in the future.

Bug: 173331190
Test: added coverage in VpnTest
Test: added coverage in ConnectivityServiceTest
Test: added coverage in NetworkAgentTest
Change-Id: I450858a9fa332c8d896dbdb4c14337d5ec23677f
2021-02-10 02:52:16 +09:00
Lorenzo Colitti
80b48bc589 Add a registerSystemDefaultNetworkCallback method.
This method allows internal components to track the system
default network. This differs from registerDefaultNetworkCallback
because that method sends callbacks for the default network for
the UID that called it. This may not be the system default
network, for example, when a VPN is up and applies to the UID.

Bug: 173331190
Test: new unit tests in ConnectivityServiceTest
Test: new unit tests in ConnectivityManagerTest
Test: new CTS tests in ConnectivityServiceTest
Test: new CTS tests in HostsideVpnTests in other CL in this topic
Change-Id: Id02748a2183f71b71ff2a53a580466b9dcecaa93
2021-02-09 20:58:28 +09:00
Junyu Lai
ecac1d2479 Merge changes from topic "removeNI" am: c60c7b4df8 am: c62d1e3b0c
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1536707

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Iec45cb7f553f08e4e3ec91827964a8eec8f96a91
2021-02-09 05:00:28 +00:00
Junyu Lai
c62d1e3b0c Merge changes from topic "removeNI" am: c60c7b4df8
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1536707

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ia7c6e3bf8f10b98fc2c4d83d41e65c64737753f0
2021-02-09 04:26:28 +00:00
Junyu Lai
c60c7b4df8 Merge changes from topic "removeNI"
* changes:
  [FUI07] Stop making NetworkState with NetworkInfo from external callers
  [FUI06] Stop using NetworkInfo in NetworkState from external callers
2021-02-09 03:37:59 +00:00