Commit Graph

11489 Commits

Author SHA1 Message Date
Lorenzo Colitti
f8bbcd1f9b Merge changes Ie0b32460,I21028457,I82754375 am: 29e5346c24
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1529778

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Iec4ec0fa39235a171431832a5871e2cfdf1fbf25
2020-12-16 09:10:43 +00:00
Lorenzo Colitti
f61ca94e2c Allow ConnectivityServiceTest to change the calling UID.
Allow ConnectivityServiceTest to change the UID by replacing
static calls to Binder.getCallingUid() with a method that can
be mocked.

Add registerNetworkCallbackAsUid as an initial way to exercise
this, and add some test coverage to the always-on lockdown test
to confirm that things are working as expected.

Bug: 173331190
Test: new unit tests
Change-Id: Ie0b32460e20e5906a0f479191e11a062f21cc608
2020-12-15 21:10:36 +09:00
Lorenzo Colitti
1b17648534 Add a test for getDefaultNetworkCapabilitiesForUser.
Bug: 173331190
Test: test-only change
Test: new test passes 100 times in a row
Change-Id: I210284578e38cd25b8b95235d3390d5bd66a5a70
2020-12-15 21:08:21 +09:00
Lorenzo Colitti
36e91a3a0b Add tests for always-on VPN lockdown mode.
This requires mocking lots of new things that weren't mocked
before but is otherwise fairly straightforward.

A few changes to MockVpn are needed as well:

1. Set the VPN's NetworkInfo to CONNECTED, so methods such as
   isBlockingUid will work. While I'm at it, set the interface on
   the LinkProperties as well to make things a bit more
   realistic.

2. Constructs the VpnConfig when registering the agent, not when
   the MockVpn is created. This is needed because starting and
   stopping lockdown VPN calls prepare, which nulls out mConfig.
   But constructing the VpnConfig when registering the agent is
   more realistic anyway. The production code does that in
   establish, but we can't do that in ConnectivityServiceTest
   because some of the test cases don't call establish and call
   registerAgent directly.

Bug: 173331190
Test: atest FrameworksNetTests
Change-Id: I827543751dbf5e626a24ec02cd6f50b423f5f761
2020-12-15 21:08:20 +09:00
Remi NGUYEN VAN
fdad7a69bf Merge changes from topic "tcp_keepalive_fix" am: f278ef3b02
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1494039

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ic9e330a2bd8dbb701db0e5b73c1954670d4988fc
2020-12-15 09:41:42 +00:00
Remi NGUYEN VAN
c287521d4b Add TcpKeepalivePacketData to SystemApi am: 5e6b51b895
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1494038

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ibe3df65b4e12ecda5d95737f3b1ea18dabc2461d
2020-12-15 09:38:38 +00:00
Remi NGUYEN VAN
f278ef3b02 Merge changes from topic "tcp_keepalive_fix"
* changes:
  Use API TcpKeepalivePacketData in ClientModeImpl
  Add TcpKeepalivePacketData to SystemApi
2020-12-15 09:02:55 +00:00
Chiachang Wang
07fdbc0914 Merge "Remove hidden deprecated getActiveNetworkQuotaInfo" am: 75d25e51d5
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1527738

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ia59544cd76712acdcc406f0f0391a0bbfe5c2f9e
2020-12-15 07:39:15 +00:00
Chiachang Wang
75d25e51d5 Merge "Remove hidden deprecated getActiveNetworkQuotaInfo" 2020-12-15 07:02:54 +00:00
Chiachang Wang
2f81e75ae4 Remove hidden deprecated getActiveNetworkQuotaInfo
getActiveNetworkQuotaInfo has never been in API surface since it
was introduced. It became essentially functionless since android O,
so there should be no usage dependency upon the hidden method,
In order to support ConnectivityService mainline, remove the
useless function to prevent necessary dependency.

Bug: 172183305
Test: atest FrameworksNetTests
Change-Id: Ia685b3260256d465ef614b2f577d13344074c787
2020-12-15 06:45:50 +00:00
Treehugger Robot
2e542d0628 Merge "Add OWNERS for packages/Connectivity" am: 2d32316de4
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1527821

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ifd4cf4bd8f333adab27eeceae4aa48a8bdee4c89
2020-12-14 14:38:13 +00:00
Treehugger Robot
2d32316de4 Merge "Add OWNERS for packages/Connectivity" 2020-12-14 14:12:36 +00:00
Remi NGUYEN VAN
0956b8a3de Use API TcpKeepalivePacketData in ClientModeImpl
Instead of statically linking against and jarjaring
TcpKeepalivePacketData, use the new android.net.TcpKeepalivePacketData
API for S. On R, build the KeepalivePacketDataParcelable from the base
KeepalivePacketData class.

The current ClientModeImpl code that uses a statically linked
TcpKeepalivePacketData is actually broken, as since R the system_server
has been sending a @hide android.net.TcpKeepalivePacketData, and
ClientModeImpl was testing it against com.android.wifi.x.android.net.*.
To fix this on R, this change rebuilds a
TcpKeepalivePacketDataParcelable class from the packet data included in
the base KeepalivePacketData class.

Bug: 172789687
Test: atest ConnectivityManagerTest#testCreateTcpKeepalive
      See associated test change
Change-Id: Ia32b4444dbf90306b2cfd37ec13d4ba4e90cd1e8
2020-12-14 18:43:53 +09:00
Remi NGUYEN VAN
5e6b51b895 Add TcpKeepalivePacketData to SystemApi
This is consistent with NattKeepalivePacketData, which is also a
subclass of KeepalivePacketData.

TcpKeepalivePacketData is already used by the wifi module, but
statically linked.

Bug: 172789687
Test: m
Change-Id: I6aee1ae205987521bea4a3838bbece279ffa0e37
2020-12-14 18:43:44 +09:00
Remi NGUYEN VAN
1859a56b4a Add OWNERS for packages/Connectivity
In preparation of future modularization of connectivity classes, a large
part of frameworks/base/services/net is planned to be moved to
packages/modules/Connectivity. However moving each class "manually"
to that git project would lose their commit history, and require many
cross-repository topics.

To facilitate the work, create frameworks/base/packages/Connectivity,
which will be used to move the classes at first, before they can all be
moved together with their history to packages/modules/Connectivity. This
mirrors the procedure used for NetworkStack, Tethering,
CaptivePortalLogin, etc. previously.

The added OWNERS file just imports owners from the previous file
location.

Bug: 171540887
Test: m
Change-Id: Ic1c0dbbe8c1f07582c04757ced0ead2fc5b10ca7
2020-12-14 18:34:39 +09:00
Lorenzo Colitti
abab26a12b Merge "Generalize support for underlying networks." am: 629666597e
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1513052

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ia252eb29dbccb0105c3f4a46c7597abb56de0c21
2020-12-14 05:59:51 +00:00
Treehugger Robot
4ec2b26948 Merge "Fix a crash in eng builds" am: 6dbd8585dc
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1527538

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I245a8498d89e73fefa448a23d71a30d3f34b56ca
2020-12-14 05:50:17 +00:00
Lorenzo Colitti
629666597e Merge "Generalize support for underlying networks." 2020-12-14 05:19:49 +00:00
Treehugger Robot
6dbd8585dc Merge "Fix a crash in eng builds" 2020-12-14 05:17:15 +00:00
Chiachang Wang
a38bb78531 Merge "Resolve UidRange dependency between NMS and CS module" am: 0079fa9b39
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1495869

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I2e55c3c4bed3d71eb48242428c179809aae00a1f
2020-12-14 03:10:01 +00:00
Chiachang Wang
0079fa9b39 Merge "Resolve UidRange dependency between NMS and CS module" 2020-12-14 02:55:41 +00:00
Chalard Jean
0e5e045ba7 Fix a crash in eng builds
CAPTIVE_PORTAL is a CS-managed capability, and causes CS to log a wtf.
When this test is run on an eng build, this sends SIGSEGV to the test,
which is pretty difficult to debug.

Test: FrameworksNetTests NetworkStackTests
Change-Id: I72fc46a6daa4e886425b4dc967318cca9f1a5302
2020-12-13 23:02:08 +09:00
Lorenzo Colitti
96dba63235 Generalize support for underlying networks.
Currently, ConnectivityService assumes that only VPNs can have
underlying networks. Make the code decide this based only on the
return value of NetworkAgentInfo#supportsUnderlyingNetworks.
This allows non-VPN network types to support underlying networks
in the future.

This requires storing the original agent's capabilities in
NetworkAgentInfo so that applyUnderlyingCapabilities can mix in
the underlying network capabilities without overwriting the
capabilities of the network itself. Currently, the only
information that applyUnderlyingCapabilities takes from the
original agent's capabilities are the metered bit (stored in
NetworkAgentInfo#declaredMetered) and the transports (assumed to
be exactly {TRANSPORT_VPN}. Store the full capabilities instead.
This is more state than needed but it ensures that we do not need
to make any changes if in the future we want to propagate new
types of information from the underlying networks.

This should have no impact on current use cases (i.e., VPNs).

There is a change in ordering: in disconnectAndDestroyNetwork,
the new code propagates underlying network capabilities before
removing the network from LegacyTypeTracker, instead of after.

This is done to simplify the new code. When the new code
propagates underlying network capabilities in response to a
change for a particular network (e.g., connect, disconnect,
capabilities change), it only considers networks that have the
changed network as underlying. Because determining the
underlying networks requires knowing the default network,
the new code runs before the default network is changed and
LegacyTypeTracker is updated.

This shouldn't have app implications because the connectivity
broadcasts sent by LegacyTypeTracker and the callbacks cannot be
ordered, since they run on separate threads with unpredictable
delays. The capability change callbacks resulting from
propagation of underlying network capabilities were already
sent before the rematch, so the callbacks themselves are not
reordered in any way.

Bug: 173331190
Test: atest FrameworksNetTests \
            CtsNetTestCases:NetworkAgentTest \
	    CtsNetTestCases:Ikev2VpnTest \
	    CtsNetTestCases:VpnServiceTest \
	    CtsNetTestCases:android.net.cts.ConnectivityDiagnosticsManagerTest \
	    HostsideVpnTests com.android.server.connectivity.VpnTest
Change-Id: Ic5353a928a3a3541dcf953c35f47277c5e295db8
2020-12-13 00:10:56 +09:00
Paul Hu
64b9975620 Merge "Replace PackageManager @hide APIs" am: 36f2678d7d
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1523340

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Id4e2fab962ba401f2c941c58c0eb2210a8f835e7
2020-12-11 10:05:38 +00:00
Paul Hu
36f2678d7d Merge "Replace PackageManager @hide APIs" 2020-12-11 09:50:28 +00:00
Paul Hu
a9334a45bd Merge "Expose TcpRepairWindow as module-lib API" am: 1c6da2593f
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1519961

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I2621e4f244e70dfdbd6e6e228f9c6401326fc56a
2020-12-11 06:15:36 +00:00
Paul Hu
1c6da2593f Merge "Expose TcpRepairWindow as module-lib API" 2020-12-11 05:37:10 +00:00
Chalard Jean
1d7b25112f Merge changes from topic "remove_legacy_NA" am: 8e0446ba0a
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1456097

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I141e67982f1119d5fc700ed2cb75e2f8220f5383
2020-12-11 02:40:14 +00:00
Lucas Lin
f5ff230673 Merge "Use getUserHandles() instead of getUsers() to get user id" am: 618b9e5609
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1513050

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I6e03c6f4317e11ffe64b7bcf170f70f535995e85
2020-12-11 02:37:54 +00:00
Chalard Jean
8e0446ba0a Merge changes from topic "remove_legacy_NA"
* changes:
  Remove support for legacy network agents
  Remove deprecated constructors for NetworkAgent
  Migrate NetworkAgentWrapper to the new NA API
  Cleanup TestNetworkService
2020-12-11 02:32:57 +00:00
Lucas Lin
618b9e5609 Merge "Use getUserHandles() instead of getUsers() to get user id" 2020-12-11 02:02:37 +00:00
Treehugger Robot
ae0265afb5 Merge "Add a mutability flag to the PendingIntent" am: 39b703a229
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1505734

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Idd6c05fbe1fee9c1e3858ef1d52da9dc8c8c7366
2020-12-10 16:32:39 +00:00
Treehugger Robot
39b703a229 Merge "Add a mutability flag to the PendingIntent" 2020-12-10 16:27:58 +00:00
Paul Hu
6b93bb1950 Merge "Address leftover comments" am: 5d799726f5
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1495899

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I0e2439670745ab19220e6cd44e6a62de5f61b842
2020-12-10 16:13:09 +00:00
Paul Hu
5d799726f5 Merge "Address leftover comments" 2020-12-10 15:47:27 +00:00
paulhu
310c9fbc20 Replace PackageManager @hide APIs
ConnectivityService is using
PackageManager#getApplicationInfoAsUser() to get application
info but this API is not able to call after CS becomes a
mainline module. Thus, replace it with formal API.

Bug: 170593746
Test: atest FrameworksNetTests
Test: atest CtsNetTestCasesLegacyApi22
Change-Id: Idd1269aa50e234801583097bb6f40b099bab8fba
2020-12-10 23:32:32 +08:00
Chiachang Wang
28afaff7c3 Resolve UidRange dependency between NMS and CS module
ConnectivityService is going to become a mainline module which
cannot access hidden APIs. Thus, replace the VPN uid range
controlling APIs from NMS to INetd directly.

Bug: 170598012
Test: atest FrameworksNetTests
Test: atest HostsideVpnTests
Test: manually test to connect to VPN and check the uid range
Change-Id: Ie6656ef36f54c2f14d5a2899e763a29b70a30f5d
2020-12-10 22:24:47 +08:00
paulhu
47804de69b Add a mutability flag to the PendingIntent
From S, it's required to specify explicitly either FLAG_MUTABLE
or FLAG_IMMUTABLE when creating a PendingIntent. Thus, add a
mutability flag to the PendingIntent in ConnectivityServiceTest
that doesn't specify it before.

Bug: 173157160
Test: atest FrameworksNetTests
Change-Id: I755c53b90d709dfbac576dc076722476c3edee35
2020-12-10 12:28:14 +00:00
Lucas Lin
c9c0408e9f Merge "Reimplement DumpUtils#checkDumpPermission() in ConnectivityService" am: 081753f277
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1519792

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ibd216cc83e539f202e01076b97fa2d981185dc49
2020-12-10 11:06:27 +00:00
Lucas Lin
081753f277 Merge "Reimplement DumpUtils#checkDumpPermission() in ConnectivityService" 2020-12-10 10:57:58 +00:00
Treehugger Robot
1c13032793 Merge "[Mainline] Network netId to getNetId() migration" am: 999c30297a
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1520637

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I65d8843281e3c3fe15141ad2583955e069339413
2020-12-10 09:11:10 +00:00
Treehugger Robot
999c30297a Merge "[Mainline] Network netId to getNetId() migration" 2020-12-10 08:47:27 +00:00
Lorenzo Colitti
39772e8a34 Merge changes I6eb6d92b,I638e29fd,I2348b7a3 am: 635e43ae1a
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1521657

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I87704813daaf2a0b4495a835abde950e683993e5
2020-12-10 08:32:15 +00:00
Lorenzo Colitti
635e43ae1a Merge changes I6eb6d92b,I638e29fd,I2348b7a3
* changes:
  Add a convenience method to update a network's capabilities.
  Disallow NetworkAgents from changing the owner UID.
  Observe mOwnerUID in NetworkCapabilities#equals.
2020-12-10 08:11:52 +00:00
lucaslin
99473f6489 Reimplement DumpUtils#checkDumpPermission() in ConnectivityService
ConnectivityService is going to be a part of mainline module, to
prevent using @hide method in ConnectivityService, reimplement
DumpUtils#checkDumpPermission() in ConnectivityService.

Bug: 175177794
Test: atest FrameworksNetTests
Test: adb shell dumpsys connectivity
Change-Id: I1e4bc023b39b40a717a3a0fd8cd60aa2f25e9bdb
2020-12-10 07:12:05 +00:00
lucaslin
c0c8e0352e Use getUserHandles() instead of getUsers() to get user id
UserManager#getUsers() is a hidden API, use getUserHandles() to
get user id instead in PermissionMonitor.

Bug: 171529940
Test: atest FrameworksNetTests
Change-Id: Ic304627688de8e49505a95ebc99628b2e0eafab9
2020-12-10 13:58:39 +08:00
Xin Li
b97c153d49 [automerger skipped] Merge "DO NOT MERGE - Merge Android R QPR1" am: db56932b84 -s ours
am skip reason: Change-Id Ib81ba3288a986546bc570c3759c55d026add591a with SHA-1 3cfbcbee16 is in history

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1520888

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I1158b1e4f70b018504c963a76782c8773f698118
2020-12-10 03:05:40 +00:00
Xin Li
db56932b84 Merge "DO NOT MERGE - Merge Android R QPR1" 2020-12-10 02:18:27 +00:00
Xin Li
3da9726060 DO NOT MERGE - Merge Android R QPR1
Bug: 172690556
Merged-In: Ib81ba3288a986546bc570c3759c55d026add591a
Change-Id: I2acfeb6cfc83a80056a685355cc367a5514da069
2020-12-09 17:55:44 -08:00
Serik Beketayev
3aa4d1a686 Merge "[Mainline Migration] Migrate NetworkUtils" am: 3422864269
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1498168

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Icc0a49e76f87a741f4410b53e9a40012e37fde36
2020-12-10 00:08:03 +00:00