Commit Graph

5687 Commits

Author SHA1 Message Date
Serik Beketayev
c869ab40bf Merge "[Mainline Migration] Migrate NetworkUtils" am: a086c295e7 am: c6218f7977 am: 006d043dfe
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1498168

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Id0749108e03d88af0b8c50a36f1a4ca28b9a40ce
2020-12-10 01:05:32 +00:00
Jeff Sharkey
0ace970e19 Temporarily replace "android.com" accounts.
We're temporarily blocked on internal Gerrit tooling to support
relaxed OWNERS validation, so this change temporarily replaces all
"android.com" accounts with "google.com" equivalents.

Bug: 174932174,175111824
Exempt-From-Owner-Approval: refactoring with team leads buy-in
Change-Id: I114f2a40cee1b65e21250da7372e11c18cd73e25
2020-12-08 17:54:13 +00:00
Serik Beketayev
9817226d99 [Mainline Migration] Migrate NetworkUtils
Migrating makeStrings(), numericToInetAddress() APIs

Bug: 173089079
Test: atest FrameworksNetTests
Change-Id: Ie914fd41bc3ce16d07f5d2768b89ce805b9245a9
2020-12-06 22:33:04 -08:00
Treehugger Robot
820583039d Merge "Remove NATT keepalive from IpSecTransform" am: c20770fee5 am: 89a98351ee am: 8397f75d51
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1512881

Change-Id: I53320999a962c12f7cef9fe804616e62071fce1f
2020-12-04 05:14:46 +00:00
Remi NGUYEN VAN
7521f725a5 Merge "Use IPV6_MIN_MTU from NetworkConstants in Ikev2Vpn" am: 75304108e7 am: 8f85ecd1f5 am: 6a1cb62078
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1512879

Change-Id: Id415ecdbf1509b9c2e1b3e50bb716e7368f83dfc
2020-12-04 05:14:21 +00:00
Remi NGUYEN VAN
622fb80ff7 Merge "Set NetworkIdentity subscriberId on all networks" am: 1ded24221e am: 1a55bddfc3 am: 3e28c9d242
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1512877

Change-Id: Iad1c4756611c3dfc76e2a19d7fb01079813c6783
2020-12-04 05:13:00 +00:00
Treehugger Robot
c20770fee5 Merge "Remove NATT keepalive from IpSecTransform" 2020-12-04 02:07:56 +00:00
Remi NGUYEN VAN
75304108e7 Merge "Use IPV6_MIN_MTU from NetworkConstants in Ikev2Vpn" 2020-12-04 02:05:01 +00:00
Remi NGUYEN VAN
1ded24221e Merge "Set NetworkIdentity subscriberId on all networks" 2020-12-04 02:03:29 +00:00
Patrick Rohr
ab465d5721 Merge changes from topic "restricted-networking-mode" am: 176ba02184 am: 3148f011e0 am: 09f21a03a2
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1505234

Change-Id: Ia175efd2e152ea4b04feddf3bdc159adca2edab5
2020-12-03 12:39:44 +00:00
Patrick Rohr
176ba02184 Merge changes from topic "restricted-networking-mode"
* changes:
  Add Restricted Mode Firewall Chain
  Clean Up NetworkManagementService Tests
2020-12-03 10:50:25 +00:00
Remi NGUYEN VAN
30cadee758 Merge "Remove hidden API usage in metrics toString" am: 179419f810 am: a25a3759ab am: abffb069ec
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1512876

Change-Id: Ifc7f3dc43a4bdea06e82ae18bd03fce0932ad927
2020-12-03 05:20:56 +00:00
Remi NGUYEN VAN
09564bbbd8 Merge "Do not query CS in NetworkProvider constructor" am: 692a8748a5 am: 46c03b4179 am: 8c09b9d7e5
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1512873

Change-Id: I194f6fed28011702dd86676e5aa422129a903d9c
2020-12-03 03:47:02 +00:00
Remi NGUYEN VAN
179419f810 Merge "Remove hidden API usage in metrics toString" 2020-12-03 03:21:42 +00:00
Remi NGUYEN VAN
692a8748a5 Merge "Do not query CS in NetworkProvider constructor" 2020-12-03 01:48:01 +00:00
Remi NGUYEN VAN
8edab97fc3 Merge "Remove CaptivePortal deps on @hide MetricEvents" am: e8f300c360 am: 5e5cd117c5 am: eaa1400c3e
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1513141

Change-Id: Ic0f0be93d4610f47c80efb90fdd68858d70d0be8
2020-12-02 12:43:12 +00:00
Remi NGUYEN VAN
e8f300c360 Merge "Remove CaptivePortal deps on @hide MetricEvents" 2020-12-02 11:12:56 +00:00
Remi NGUYEN VAN
f3a89e677e Merge "Add ConnectivityManager.TYPE_PROXY to SystemApi" am: 71cd774f68 am: 41e94b11c8 am: 24ea402272
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1512885

Change-Id: Ib51a3218d736ab905379f20fbb059bb97b2297ef
2020-12-02 10:55:57 +00:00
Remi NGUYEN VAN
71cd774f68 Merge "Add ConnectivityManager.TYPE_PROXY to SystemApi" 2020-12-02 09:23:27 +00:00
Remi NGUYEN VAN
79664cbf54 Set NetworkIdentity subscriberId on all networks
Instead of setting NetworkIdentity.subscriberId only on telephony
networks, set it when provided on any network. At the moment only
telephony is expected to have a subscriberId in its NetworkState anyway,
and while there are plans for other network agents (wifi) to have a
subscriberId, it should also be set in that case.

This allows NetworkIdentity to stop depending on hidden network type
APIs to determine if the network is mobile.

Bug: 174436414
Test: atest FrameworksNetTests
Change-Id: I4f09987f8737d1801342eb5d6d7c2b9968b466b0
2020-12-02 18:11:16 +09:00
Remi NGUYEN VAN
c755617364 Remove hidden API usage in metrics toString
Remove usage of hidden NetworkType, transport APIs in toString()
implementations of metrics and data usage classes.

The toString implementations can log the transports or network type as
hex or raw indices. While slightly less readable, the metrics classes
and network type APIs are deprecated.

Bug: 174436414
Test: m
Change-Id: I79239a540b66dadd3bbe0a997960530878331358
2020-12-02 18:10:59 +09:00
Remi NGUYEN VAN
1b06ca6e89 Remove CaptivePortal deps on @hide MetricEvents
The legacy metrics are deprecated, and CaptivePortal is planned to move
to a connectivity-specific jar which cannot reference MetricsEvents.

Bug: 171540887
Test: m
Change-Id: I409375de3844a7fedef707cf9e19a106d82a8e3a
2020-12-02 13:17:09 +09:00
Patrick Rohr
9aabc50ec9 Add Restricted Mode Firewall Chain
Adding new allowlist firewall chain to support restricted networking
mode. See go/restricted-networking-mode.

Bug: b/157505406
Bug: b/170323408
Test: atest NetworkManagementServiceTest
Change-Id: I8e39b3d7b129ad74224d0c1311135b7b48f6514f
2020-11-30 18:36:02 +01:00
Lorenzo Colitti
481b463618 Merge changes I982543cd,I41c3bf6c,Id3e5f6e1 am: 86d837daa8 am: e5334a1b25 am: 487c745309
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1511316

Change-Id: I91ccdc9a5f4426d9c1623b869c0411b9af203c36
2020-11-30 15:05:48 +00:00
Remi NGUYEN VAN
7f159cf640 Add ConnectivityManager.TYPE_PROXY to SystemApi
This follows other TYPE_* constants like TYPE_WIFI_P2P that are
@SystemApi or public.
TYPE_PROXY has a use-case for the system to set network policies based
on proxy network templates. Although network types are deprecated, that
use-case needs to be supported and significant amounts of network
management would need to be rewritten to stop using network types.

The constant needs to be API as ConnectivityManager is planned to move
out of framework.jar, so only its formal API will be available to the
system server.

Bug: 174436414
Test: m
Change-Id: I266ed6bc59f5eb72302afe14472c93933733c8f8
2020-11-30 19:23:45 +09:00
Remi NGUYEN VAN
8fe718ee81 Remove NATT keepalive from IpSecTransform
The code is unused, and based on ConnectivityManager#startNattKeepalive,
which is deprecated.

Bug: 174436414
Test: atest FrameworksNetTests
Change-Id: I08c6c1baec668a304d971bb6f2328891a5611e6a
2020-11-30 17:24:10 +09:00
Remi NGUYEN VAN
caeabd308e Use IPV6_MIN_MTU from NetworkConstants in Ikev2Vpn
Instead of sharing the constant from LinkProperties, use the already
defined constant in the NetworkConstants class.

This allows Ikev2VpnProfile to allow depending on non-public
LinkProperties APIs, as LinkProperties is planned to move to
framework-connectivity.

Bug: 174436414
Test: m
Change-Id: I594bb7e81bc7681799c16eff621a5ffd1b29624c
2020-11-30 17:18:51 +09:00
Chalard Jean
05f12dff8e Migrate VPN to the public NetworkAgent API.
On top of being a cleanup this is useful for the S Network
Selection project that will need to enrich the Network
Agent API, and as such should not have to support legacy
agents.

Test: FrameworksNetTests NetworkStackTests
Bug: 167544279
Change-Id: Id3e5f6e19829c64074cd6a52c5f950cee56b860b
2020-11-30 16:15:18 +09:00
Remi NGUYEN VAN
a1bef5bbc2 Do not query CS in NetworkProvider constructor
ConnectivityService may not be available in a NetworkProvider
constructor, if it is created (but still unused) before
ConnectivityService starts.

As ConnectivityManager is only necessary in
declareNetworkRequestUnfulfillable, which should not be called often,
just query ConnectivityManager at that point.

This is necessary for VcnManagementService, which is started before
ConnectivityService and creates its NetworkProvider in its constructor.
Fortunately VcnManagementService does not call
declareNetworkRequestUnfulfillable at this point.

ConnectivityManager may be migrated to classic service getters that
cache "null" when the service was not available the first time it is
queried, so no system service must query it before it starts.

Bug: 171540887
Test: atest FrameworksNetTests:NetworkProviderTest
Change-Id: I8dadcd0e1360a9464192f330493e13aa69dd9fe2
2020-11-30 12:42:15 +09:00
Lorenzo Colitti
45d070e43a Allow tests to create TRANSPORT_TEST|TRANSPORT_VPN networks. am: 45feed9b00 am: aa3254e8cd am: 0834d86f37
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1511312

Change-Id: I631909b5db9507c7e62d498015c49d325d13f258
2020-11-28 04:51:03 +00:00
Lorenzo Colitti
376fe26d84 Move applying underlying caps from Vpn to ConnectivityService. am: d182c40d8c am: 17199d78a2 am: dbcfe78633
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1501815

Change-Id: I924998ffa45ba630d8688007878f339264e7108e
2020-11-28 04:50:46 +00:00
Lorenzo Colitti
45feed9b00 Allow tests to create TRANSPORT_TEST|TRANSPORT_VPN networks.
This CL allows an app that has the MANAGE_TEST_NETWORKS
permission to create test VPN networks.

The code enforces that such networks can never apply to any UIDs
and thus will never carry any traffic.

Bug: 173331190
Test: passes existing tests, moved tests pass
Change-Id: I5befea0e3b4b6dce4ca0c6a04471a055186b644c
2020-11-27 15:35:38 +09:00
Lorenzo Colitti
d182c40d8c Move applying underlying caps from Vpn to ConnectivityService.
Add support to ConnectivityService to track underlying networks
directly instead of through the Vpn class.

1. Communicate all information necessary to propagate underlying
   network capabilities to ConnectivityService via NetworkAgent.
   This includes:
   a. Underlying networks:
      - Add SystemApi for NetworkAgent to declare its underlying
        networks to ConnectivityService, and use it in Vpn.
      - Add a new declaredUnderlyingNetworks member to
        NetworkAgentInfo and store the underlying networks in it.
	Move propagation of underlying network capabilities to
	mixInCapabilities, which is a natural place for it.
   b. "Always metered" bit:
      - Communicate this to ConnectivityService via the existing
        NOT_METERED capability. Store it in a new declaredMetered
	boolean in NetworkAgentInfo to separate it cleanly from
	the NOT_METERED bit in the capabilities, which depends on
	whether the underlying networks are metered or not. In
	order to ensure that this is only ever changed when a NC
	update is received from a NetworkAgent, define a new
	processCapabilitiesFromAgent similar to the existing
        processLinkPropertiesFromAgent.

2. Ensure that propagating underlying network capabilities does
   not read the VPN's NetworkCapabilities. In order to do this,
   ensure that all relevant information on underlying networks
   and metering is sent to ConnectivityService at NetworkAgent
   registration time. CS still calls Vpn#updateCapabilities when
   a user is added/removed, but that is deleted in a future CL.

3. Slightly generalize propagating underlying network
   capabilities because there may be other network types that
   also have underlying networks that aren't VPNs (e.g., VCN).
   - Introduce a new supportsUnderlyingNetworks() boolean method
     in NetworkAgentInfo.
   - Rename updateAllVpnsCapabilities to
     propagateUnderlyingNetworkCapabilities.

This commit does not move the actual logic of calculating the
underlying capabilities out of Vpn.java. That can be done in a
subsequent change once CS stops calling getUnderlyingNetworks().

This commit also does not modify any of the other code in CS that
directly accesses VPNs' underlying networks.

Bug: 173331190
Test: passes existing tests in ConnectivityServiceTest
Test: CTS test in r.android.com/1511114
Test: atest CtsNetTestCases:Ikev2VpnTest HostsideVpnTests
Change-Id: I5f76cb1aa4866efed3d5c4590e931fdb0e994f8d
2020-11-27 15:35:38 +09:00
Junyu Lai
0e0b760e62 Merge "Expose getTx/RxBytes in TrafficStats" am: 6ef6648cd9 am: aca01cd0c1 am: e0f68a4855
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1440245

Change-Id: I755eb6294da6cba787f60d057997a4d239aaa095
2020-11-25 06:32:25 +00:00
junyulai
e2dfbb3b65 Expose getTx/RxBytes in TrafficStats
Test: atest FrameworksNetTests TrafficStatsTest
      atest android.net.cts android.net.wifi.cts
Bug: 164965653
Change-Id: I17b9d0bc2404c5727d4c4530ad941439b7b71a54
2020-11-24 12:11:08 +08:00
Benedict Wong
8af43b0db5 Merge "Expose MIN_MTU_V6 as a public, @hide constant" am: 4833cf6910 am: 919265831e am: 0b417d78e9 am: 1e01b17a63
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1505072

Change-Id: Iaa9e9dc9c60369f6b96e21d1619cbf2c88b22013
2020-11-20 02:50:21 +00:00
Benedict Wong
185890ec61 Merge changes I72976905,I7a637d39 am: da498a524d am: f6aaaaddda am: 0c8fa5e245 am: e6c50457ab
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1495025

Change-Id: I48e7e7d786ebe442a78892bb49891699b286a828
2020-11-20 02:05:18 +00:00
Benedict Wong
4833cf6910 Merge "Expose MIN_MTU_V6 as a public, @hide constant" 2020-11-20 01:30:18 +00:00
Benedict Wong
da498a524d Merge changes I72976905,I7a637d39
* changes:
  Add VcnTunnel, UnderlyingNetworkTracker skeletons
  Add bug number to stopship comment for VCN Network scores
2020-11-19 22:01:24 +00:00
Sarah Chin
2684b2895b Merge "Clarify documentation on TEMP_NOT_METERED API" am: 9e7ff9a167 am: b6771dff52 am: 2e506764fc am: 8698f3f4d0
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1504954

Change-Id: Ibfc36bfcf1550cd27ff5449d5dbd7ee34c9937c7
2020-11-19 19:30:04 +00:00
Sarah Chin
9e7ff9a167 Merge "Clarify documentation on TEMP_NOT_METERED API" 2020-11-19 17:50:35 +00:00
Lorenzo Colitti
55486fb834 Merge changes I3711b362,I49421183,Icc0701cb,I2f5ccc1d am: cbd6dbc553 am: f58d0c7de6 am: 3fc6919483 am: 8bef265085
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1501951

Change-Id: I5c7847bac88b574737ab80e5a20e9e22afb5b2e4
2020-11-19 12:30:34 +00:00
Sarah Chin
296eec4947 Clarify documentation on TEMP_NOT_METERED API
Test: build
Bug: 165337240
Change-Id: Ifc0843b529e7a205b0e1caf98420adfc377c28e7
2020-11-19 01:15:48 -08:00
Benedict Wong
ac1921adce Expose MIN_MTU_V6 as a public, @hide constant
MIN_MTU_V6 is increasingly used, and the LinkProperties version is used
as a source of truth for the constant.

Bug: 163602123
Test: atest FrameworksNetTests
Change-Id: I67134cd4fb7e2cf59c36947b62f681ac9b94ea4a
2020-11-19 00:21:53 -08:00
Benedict Wong
4f040fb77d Add VcnTunnel, UnderlyingNetworkTracker skeletons
This change adds skeletons for each of the various major components used
in the VCN.

Additionally, this change adds the VcnGatewayConnectionConfig, used to
configure each logical connection to the VCN gateway. Each
VcnGatewayConnectionConfig specifies a Network that can be brought up on
demand for a given telephony service (INTERNET, MMS, DUN, etc)

Bug: 163602123
Bug: 163432852
Test: Skeletons only, no major testable pieces
Change-Id: I7297690573c1b6ebd0ab9c1d434dd45c1e7d841d
2020-11-19 00:07:35 -08:00
Lorenzo Colitti
945b512d4d Minor fixes to NetworkCapabilities#toString.
1. The current code only prints the array of administrator UIDs
   if it's empty. This is clearly an oversight. Print it only if
   it's non-empty.
2. Only print requestor UID and package name if they are set.
   This makes output shorter in the common case that they are
   unset.
3. Reorder the output at the end: group all UIDs together, and
   place SSID and private DNS broken bit after that.
4. Make the private DNS broken indication a single word instead
   of a sentence. This saves space and makes it easier to write
   regexps.

New format:
... SignalStrength: -72 OwnerUid: 1000 AdminUids: [1000] SSID: ...
... Uid: 1000 RequestorUid: 1000 RequestorPkg: android ...

Test: manual
Change-Id: I2f5ccc1d9e4af6ddacc4d193185a17723822972b
2020-11-18 17:10:11 +09:00
Benedict Wong
d5e3147ca1 Merge "Add stubs for VCN configuration management" am: 03492715e8 am: 43dbf5cb2c am: a0740b9727 am: 292f2b8dbf
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1477377

Change-Id: Id2d4d4fdc716cb6a9e72ec5ad072d72063fdad59
2020-11-17 06:10:47 +00:00
Benedict Wong
4b140e2bd6 Add stubs for VCN configuration management
This change adds stubs for both the API and the internal binder
interfaces.

Bug: 163431877
Test: Compiles, boots
Change-Id: I11183d9fe3ad53944882b163eee5110e85898393
2020-11-16 13:29:34 -08:00
Aurimas Liutikas
46a165215b Remove legacy style metalava suppression
@SuppressLint("Doclava125") is a legacy way of suppressing
RequiresPermission check. Updating to the new style of suppression
so metalava no longer has to support the legacy mode.

sed -i "s/@SuppressLint(\"Doclava125/@SuppressLint(\"RequiresPermission/" \
core/java/android/app/admin/DevicePolicyManager.java \
core/java/android/hardware/hdmi/HdmiControlManager.java \
core/java/android/hardware/location/ContextHubManager.java \
core/java/android/hardware/usb/UsbDeviceConnection.java \
core/java/android/net/TrafficStats.java \
core/java/android/os/RecoverySystem.java \
core/java/android/os/storage/StorageManager.java \
core/java/android/service/persistentdata/PersistentDataBlockManager.java \
location/java/android/location/LocationManager.java \
media/java/android/media/AudioManager.java \
telecomm/java/android/telecom/TelecomManager.java \
telephony/java/android/telephony/CarrierConfigManager.java \
telephony/java/android/telephony/TelephonyManager.java \
wifi/java/android/net/wifi/RttManager.java \
wifi/java/android/net/wifi/WifiScanner.java

Test: make
Exempt-From-Owner-Approval: No-op change
Merged-In: I6d5df95cfca2950ea86872d2f0afc1ba828841dc
Change-Id: I6d5df95cfca2950ea86872d2f0afc1ba828841dc
2020-11-12 18:30:12 -08:00
Aurimas Liutikas
1394a019e7 Remove legacy style metalava suppression
@SuppressLint("Doclava125") is a legacy way of suppressing
RequiresPermission check. Updating to the new style of suppression
so metalava no longer has to support the legacy mode.

sed -i "s/@SuppressLint(\"Doclava125/@SuppressLint(\"RequiresPermission/" \
core/java/android/app/admin/DevicePolicyManager.java \
core/java/android/hardware/hdmi/HdmiControlManager.java \
core/java/android/hardware/location/ContextHubManager.java \
core/java/android/hardware/usb/UsbDeviceConnection.java \
core/java/android/net/TrafficStats.java \
core/java/android/os/RecoverySystem.java \
core/java/android/os/storage/StorageManager.java \
core/java/android/service/persistentdata/PersistentDataBlockManager.java \
location/java/android/location/LocationManager.java \
media/java/android/media/AudioManager.java \
telecomm/java/android/telecom/TelecomManager.java \
telephony/java/android/telephony/CarrierConfigManager.java \
telephony/java/android/telephony/TelephonyManager.java \
wifi/java/android/net/wifi/RttManager.java \
wifi/java/android/net/wifi/WifiScanner.java

Test: make
Exempt-From-Owner-Approval: No-op change
Change-Id: I6d5df95cfca2950ea86872d2f0afc1ba828841dc
2020-11-12 18:27:15 -08:00