Commit graph

12,486 commits

Message SHA1
Merge changes from topic "backport-connectivityresources"
* changes:
  Use module resources in NetworkNotificationManager.
  Cherry-pick some test changes from ag/13210542.
  Add connectivity protos to framework-connectivity
  Remove unused NetworkPolicyManagerInternal in CS
  Move connectivity AIDLs to android.net
  Migrate framework-connectivity internal resources
  Expose isUidNetworkingBlocked and isUidRestrictedOnMeteredNetworks
  Add multipath preference, background status API

Lorenzo Colitti   authored and   Gerrit Code Review   commited 2021-03-21 15:47:28 +00:00
a31a7b1bf4
Use module resources in NetworkNotificationManager.
Also make getTransportName non-static so it can access the module
resources.

Also fix a duplicate comment in a resource file.

Bug: 183097033
Test: atest FrameworksNetTests
Test: connected to Wi-Fi with no Internet, observed notification
Change-Id: Ic0d24d36af0b87153d527083f8964ddc6cd78482
Merged-In: Ic0d24d36af0b87153d527083f8964ddc6cd78482

Lorenzo Colitti   commited 2021-03-21 01:54:51 +09:00
2ce7470845
Cherry-pick some test changes from ag/13210542.
ag/13210542 switched from using reset() on mResources to using
clearInvocations(). This ensures that only the previous calls are
reset, and that the mock continues to behave according to what
was specified in setUp.

Test: 183097033
Test: test-only change
Merged-In: I35d28c8df341dbbac2774026c6ca749e296c0482
Change-Id: Ieef982d2df50db3014f35f58a77674939ebe0d43

Lorenzo Colitti   commited 2021-03-21 01:54:51 +09:00
e7963a1d82
Merge "Copy NetworkNotificationManager resources to conectivity module."
Lorenzo Colitti   authored and   Gerrit Code Review   commited 2021-03-20 13:52:46 +00:00
4385ef6896
Add connectivity protos to framework-connectivity
The protos are built separately by framework-connectivity from framework
protos, keeping only android.net protos for the connectivity jar.

Bug: 171860710
Test: m framework-connectivity.impl
Change-Id: I2c4a37ff2ee9e8efde49885feeafa27dcff7ca2c
Merged-In: I2c4a37ff2ee9e8efde49885feeafa27dcff7ca2c

Remi NGUYEN VAN   authored and   Lorenzo Colitti   commited 2021-03-20 22:51:35 +09:00
953819d7f0
Remove unused NetworkPolicyManagerInternal in CS
ConnectivityService doesn't call any NPMI methods, so remove all
usage from CS.

Bug: 170598012
Test: atest FrameworksNetTests
Test: atest FrameworksNetIntegrationTests
Change-Id: I8719ef2e96e7db9da2894b467b9e7a1bc09de386
Merged-In: I8719ef2e96e7db9da2894b467b9e7a1bc09de386

paulhu   authored and   Lorenzo Colitti   commited 2021-03-20 22:51:35 +09:00
c850635440
Move connectivity AIDLs to android.net
java_sdk_libraries and apexes need to contain bootclasspath classes
under predefined packages. Tethering currently uses android.net, so make
sure all the connectivity bootclasspath classes are under android.net.

This avoids maintaining two packages for the tethering APEX, where
com.android.connectivity.aidl is only used by internal AIDL files.

Bug: 182984842
Test: m
Change-Id: I611f1941698c574e37aea912ee76dadc8b32e41a
Merged-In: I611f1941698c574e37aea912ee76dadc8b32e41a

Remi NGUYEN VAN   authored and   Lorenzo Colitti   commited 2021-03-20 22:51:35 +09:00
6ed4472b63
Migrate framework-connectivity internal resources
Use ServiceConnectivityResources instead.
Start by creating resources in the ServiceConnectivityResources package
to match the internal configuration, and common overlays.

Bug: 182125649
Test: device boots, has connectivity
Change-Id: I77a3efca2cd644f9828db1ed5d3cae8070fb8363
Merged-In: I77a3efca2cd644f9828db1ed5d3cae8070fb8363

Remi NGUYEN VAN   authored and   Lorenzo Colitti   commited 2021-03-20 22:35:16 +09:00
8e12782094
Add multipath preference, background status API
Add APIs for getMultipathPreference and getRestrictBackgroundStatus.
Both are used by Connectivity to back the external
ConnectivityManager.getRestrictBackgroundStatus, and
ConnectivityManager.getMultipathPreference APIs.

Test: atest CtsNetTestCases
      atest ConnectivityServiceTests
      atest NetworkPolicyManagerServiceTest
Bug: 176289731
Change-Id: I8a03162b2f6691086bb64e75ffd354cdfca7f86a
Merged-In: I8a03162b2f6691086bb64e75ffd354cdfca7f86a

Remi NGUYEN VAN   authored and   Lorenzo Colitti   commited 2021-03-20 22:23:16 +09:00
0f91b7a19a
Copy NetworkNotificationManager resources to conectivity module.
The localized resources were automatically generated with:

===========
export OLDRES=core/res/res
export NEWRES=packages/Connectivity/service/ServiceConnectivityResources/res
export FILE=services/core/java/com/android/server/connectivity/NetworkNotificationManager.java

for i in $OLDRES/values-*/strings.xml; do
    outfile=$NEWRES/${i#core/res/res/}
    outdir=$(dirname $outfile)

    if egrep -q "$regex" $i || egrep -q "$strarrayregex" $i; then
        mkdir -p $outdir

        cat << EOF > $outfile
<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2021 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
EOF

        egrep $regex $i >> $outfile

        egrep -A $strarraylines "$strarrayregex" $i >> $outfile

        echo "</resources>" >> $outfile
    fi
done
===========

The text to the the base resources file was added manually from
the output of:

===========
egrep -B 2 $regex core/res/res/values/strings.xml  | grep -v -- ^--
egrep -B 2 -A 6 $strarrayregex core/res/res/values/strings.xml  | grep -v -- ^--
===========

The drawables were copied from the Wifi resources and from the
framework resources.

Test: m
Bug: 183097033
Change-Id: I99c0d28069dd1a13d452105b0a83a03a833232a2
Merged-In: I99c0d28069dd1a13d452105b0a83a03a833232a2

Lorenzo Colitti   commited 2021-03-20 21:37:58 +09:00
f40003c502
Fix InetAddressCompat exception handling
Fix InetAddressCompat exception handling to throw the original exception
in case of InvocationTargetException, rather than wrapping in a generic
IllegalStateException.

Bug: 183198868
Test: Test device with and without connectivity
Change-Id: Idc4d678afe9f20f920d7061790af4203ab75be26

Remi NGUYEN VAN   commited 2021-03-19 23:56:27 +09:00
cb5c2e141e
Merge "Add startCaptivePortalApp to system API"
Chiachang Wang   authored and   Gerrit Code Review   commited 2021-03-19 11:30:20 +00:00
9e18198cc5
Merge "[NS03] Mix in other CS-managed properties"
Chalard Jean   authored and   Gerrit Code Review   commited 2021-03-19 10:32:46 +00:00
dc2fed3454
Merge "Expose getCapabilities"
Lucas Lin   authored and   Gerrit Code Review   commited 2021-03-19 10:24:25 +00:00
0f441f7bdd
Merge "Reland "Add an API to listen for changes in network blocked status of an uid.""
Treehugger Robot   authored and   Gerrit Code Review   commited 2021-03-19 10:12:15 +00:00
cd3ea1f002
Merge "Send a Network instead of network id for wifi no internet dialog"
Chiachang Wang   authored and   Gerrit Code Review   commited 2021-03-19 07:54:24 +00:00
94dc99ea38
Merge "Remove hidden API usage from ProxyTracker"
Aaron Huang   authored and   Gerrit Code Review   commited 2021-03-19 07:50:27 +00:00
ed15b01b0d
Merge "Ensure all calls to getCallingUid use the version in mDeps."
Lorenzo Colitti   authored and   Gerrit Code Review   commited 2021-03-19 07:36:52 +00:00
a6b1b9d110
Remove hidden API usage from ProxyTracker
Connectivity mainline module cannot use HandlerExecutor because it
is a hidden API. So, replace it with alternative.

Bug: 177035719
Test: FrameworksNetTests
Change-Id: I228a8a2e3479b0af1e977d13f877a565f0789a7e

Aaron Huang   commited 2021-03-19 06:03:08 +00:00
d1a8c71ed9
Merge "[NS02] Mix in validation of the score"
Chalard Jean   authored and   Gerrit Code Review   commited 2021-03-19 05:39:40 +00:00
a5323dd580
[NS03] Mix in other CS-managed properties
These properties are necessary to figure out the maximum
score of a network.

Test: FrameworksNetTests
Change-Id: I48dce20ad4a80597039393dca607e8da829b2a61

Chalard Jean   commited 2021-03-19 13:50:56 +09:00
67b66080a0
[NS02] Mix in validation of the score
Test: FrameworksNetTests FrameworksWifiTests NetworkStackTests
Change-Id: I9cac3a05ad0c4008599973b12d2c5e4c02233a5c

Chalard Jean   commited 2021-03-19 13:50:56 +09:00
6bde0e5c04
Merge "CaptivePortalData: use CharSequence in VenueFriendlyName API"
Treehugger Robot   authored and   Gerrit Code Review   commited 2021-03-19 04:13:36 +00:00
f678876c62
Send a Network instead of network id for wifi no internet dialog
It's a refactor work for incoming connectivity mainline. The
network information contained in the no internet notification
action was placed the target network id. The receiver which is
Settings will need to construct the network from the network id
using the hidden Network constructor. Since Network is moving
into module, Settings will not be able to access it. Apps should
use Network instead of network id, so just send the network
object to Settings.

Bug: 172183305
Test: manually test with no internet dialog and check the
      behavior and log
Test: atest FrameworksNetTests
Change-Id: I68acc70a26a27eeeb9ab7af068a459905839f942

Chiachang Wang   commited 2021-03-19 02:08:01 +00:00
ef52aade37
Merge "Add InetAddressCompat"
Remi NGUYEN VAN   authored and   Gerrit Code Review   commited 2021-03-18 23:58:16 +00:00
e1da163302
Merge "Move network selection utils to Connectivity"
Remi NGUYEN VAN   authored and   Gerrit Code Review   commited 2021-03-18 23:57:34 +00:00
f0f68f5561
Reland "Add an API to listen for changes in network blocked status of an uid."
This reverts commit d88174dafd.

Reason for revert: The issue causing the build breakage has been fixed

Change-Id: I03fa406551b51aaa4d4d9255cf1a53f9b4bcc1bd
Merged-In: Ib9949b8619c6b148f73630b314c4113d76c31ec1

Sudheer Shanka   commited 2021-03-18 19:11:55 +00:00
e95b266e54
Merge "Revert "Add an API to listen for changes in network blocked status of an uid.""
Anthony Stange   authored and   Gerrit Code Review   commited 2021-03-18 16:52:08 +00:00
2bb1da3473
Revert "Add an API to listen for changes in network blocked status of an uid."
This reverts commit cc8f26dea8.

Reason for revert: Breaking build - b/183106805
Bug: 183106805
Merged-In: Ib9949b8619c6b148f73630b314c4113d76c31ec1
Change-Id: I9789ed81e630f49c71034b6917188983bd11d774

Anthony Stange   commited 2021-03-18 16:51:22 +00:00
d88174dafd
Merge changes from topic "revert-1626206-replaceUidRange-MSYTKFNGUE"
* changes:
  Revert "Replace the usage of UidRange"
  Revert "Expose uids related APIs in NetworkRequest and NetworkCa..."

Anthony Stange   authored and   Gerrit Code Review   commited 2021-03-18 16:40:53 +00:00
2576238aec
Revert "Replace the usage of UidRange"
Revert "Add shims for NetworkRequest"

Revert submission 1626206-replaceUidRange

Reason for revert: Breaking build - b/183106405
Reverted Changes:
I0b79c73e8:Add shims for NetworkRequest
I4bc0daf5a:Replace the usage of UidRange
I4e5aec6ef:Replace the usage of UidRange
I107c329d4:Expose uids related APIs in NetworkRequest and Net...

Change-Id: I6290429db1c8e787f8138b55b98fd92a74ac6402

Anthony Stange   commited 2021-03-18 16:30:59 +00:00
f0b9889ccf
Revert "Expose uids related APIs in NetworkRequest and NetworkCa..."
Revert "Add shims for NetworkRequest"

Revert submission 1626206-replaceUidRange

Reason for revert: Breaking build - b/183106405
Reverted Changes:
I0b79c73e8:Add shims for NetworkRequest
I4bc0daf5a:Replace the usage of UidRange
I4e5aec6ef:Replace the usage of UidRange
I107c329d4:Expose uids related APIs in NetworkRequest and Net...

Change-Id: I45e08f89533af0d6851add38fecb5c6c114615ae

Anthony Stange   commited 2021-03-18 16:30:59 +00:00
84d92b3ce1
Merge "Add an API to listen for changes in network blocked status of an uid."
Sudheer Shanka   authored and   Gerrit Code Review   commited 2021-03-18 15:29:17 +00:00
c262455617
Move network selection utils to Connectivity
NetworkScore, IOnCompleteListener should be in the Connectivity scope,
as they are supporting classes for the ConnectivityManager APIs.

Bug: 181512874
Test: m
Change-Id: I6dc40a80e0bf5f86f5625b657b01eba969d41fcf

Remi NGUYEN VAN   commited 2021-03-18 23:57:26 +09:00
65b24f7034
Add InetAddressCompat
Although the InetAddress symbols used by Connectivity are stable core
platform API, and should be usable, the core_current stubs are not yet
part of the module_current API.
Until that is fixed, add an InetAddressCompat utility that calls the
three static methods by reflection.

Test: atest FrameworksNetTests CtsNetTestCases
Bug: 183097033
Change-Id: I797009aeff1d39ae2dc06ef69d2e235689b43c89

Remi NGUYEN VAN   commited 2021-03-18 23:54:04 +09:00
33e3abb3b5
Add startCaptivePortalApp to system API
The API is already used by settings and should be usable by setup
wizards. It is the only way for a caller outside of the system_server to
trigger the captive portal application.

The API is already CTS tested in android.net.cts.CaptivePortalTest.

Fixes: 182871577
Test: atest CtsNetTestCases:android.net.cts.CaptivePortalTest
Change-Id: Ie8d9a546b54524ba837715baa94a07d1f993d8d3

Remi NGUYEN VAN   authored and   Chiachang Wang   commited 2021-03-18 22:41:00 +08:00
bffe51d589
Merge "Expose systemReady for SystemServer"
Lucas Lin   authored and   Gerrit Code Review   commited 2021-03-18 13:40:54 +00:00
33737f6ac4
Merge changes from topic "replaceUidRange"
* changes:
  Expose uids related APIs in NetworkRequest and NetworkCapabilities
  Replace the usage of UidRange

Chiachang Wang   authored and   Gerrit Code Review   commited 2021-03-18 13:36:39 +00:00
7b582e9749
Merge "Expose APIs for Settings"
Chiachang Wang   authored and   Gerrit Code Review   commited 2021-03-18 13:27:47 +00:00
53178361ae
Merge "Add a VpnManager.TYPE_VPN_OEM."
Lorenzo Colitti   authored and   Gerrit Code Review   commited 2021-03-18 13:12:08 +00:00
96d66bb7b8
Expose getCapabilities
Expose getCapabilities() for EthernetNetworkFactory.

Bug: 182963415
Test: m ethernet-service
Change-Id: I430416af8fae3d4ee99f2f2abe529e3051e9e5cb

lucaslin   commited 2021-03-18 20:30:22 +08:00
e01f6d4df4
Merge "Address remaining comments on aosp/1607893"
Chalard Jean   authored and   Gerrit Code Review   commited 2021-03-18 12:30:14 +00:00
08b0411d4f
Address remaining comments on aosp/1607893
Test: ConnectivityServiceTest
Change-Id: Icf70b20624604bfade37804311a77ef6be564c09

Chalard Jean   commited 2021-03-18 12:30:00 +00:00
4de6088dc9
Merge "Move constants to MODULE_LIB"
Chalard Jean   authored and   Gerrit Code Review   commited 2021-03-18 12:29:38 +00:00
229cf59510
Merge "Add more connectivity module settings"
Paul Hu   authored and   Gerrit Code Review   commited 2021-03-18 12:22:55 +00:00
9abe34a466
Add an API to listen for changes in network blocked status of an uid.
Given that ConnectivityService is moving to a mainline module, we need
a @SystemApi for it to listen for changes in blocked status of an uid.
So, we decided to create a new API for this which can provide
ConnectivityService with more info about why an uid is blocked (which
will be useful for adding a new similar onBlockedStatusChanged callback
in CM.NetworkCallback) and also captures data saver restriction without
having out to track it separately.

Currently, NPMS does some redundant computations because we are
calculating both uid rules and blocked reasons separately. In a
follow-up change, we will compute uid rules using blocked reasons
and later possibly remove that onUidRulesChanged callback.

Bug: 176289731
Test: atest ./tests/cts/hostside/src/com/android/cts/net/HostsideRestrictBackgroundNetworkTests.java
Test: atest ./tests/net/java/com/android/server/ConnectivityServiceTest.java
Test: atest ./services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java
Change-Id: Ib9949b8619c6b148f73630b314c4113d76c31ec1
Merged-In: Ib9949b8619c6b148f73630b314c4113d76c31ec1

Sudheer Shanka   authored and   Remi NGUYEN VAN   commited 2021-03-18 10:42:25 +00:00
cc8f26dea8
Add a VpnManager.TYPE_VPN_OEM.
This needed for OEMs that have VPN types not supported by AOSP.

Bug: 171872481
Test: new test coverage in VpnTransportInfoTest
Change-Id: Ic7529bef7f12d2c74a3be5b1a4a2d54fb0d0bfac

Lorenzo Colitti   commited 2021-03-18 05:54:53 +00:00
3541fcbcbc
Add more connectivity module settings
Add more connectivity module settings and update all references
to ConnectivitySettingsManager.

Bug: 182538166
Test: atest FrameworksNetTests
Change-Id: Ie96fbd0996ed3acb37099b6270bf3d4c2e558e9a

paulhu   commited 2021-03-18 11:58:29 +08:00
79260c21a8
Expose APIs for Settings
ConnectivityManager will be a part of incoming connectivity
mainline. Settings will no longer to access the hidden methods.
For those methods that accept the interaction from users, they
should be exposed as formal interface to allow the
functionality. Expose them to API surface.

Bug: 172183305
Test: make update-api
Change-Id: Id4533b94291766bb060af0091b5ccb81a00630fd

Chiachang Wang   commited 2021-03-18 11:18:56 +08:00
0cefc1c20a
Add framework-connectivity.impl
The library will be included in the connectivity module APEX when
migrating its sources out of framework-minus-apex.

Bug: 171540887
Test: m
Change-Id: I1595521eaced6e6997c076bb56b06ffdd22a4fa0

Remi NGUYEN VAN   commited 2021-03-18 00:29:08 +09:00
1142754c99