Ethernet service related files are going to be moved into Connectivity
module. So, NetdService won't be visible to EthernetTracker since it's
a hidden class. Alternatively, get the INetd instance from system
service instead.
Bug: 210586283
Test: atest FrameworksNetTests
Test: atest EthernetServiceTests
Change-Id: Iea021ac25cbe4b8836fdab2cd6b4bd3ead5bf725
Added test coverage regarding how EthernetTracker consumes the xml
config as set in config_ethernet_interfaces. Additionally, adding
test coverage for transport override functionality in
EthernetNetworkFactory.
Bug: 206170402
Test: atest com.android.server.ethernet.EthernetTrackerTest
&& atest com.android.server.ethernet.EthernetNetworkFactoryTest
Change-Id: I3d55a230d3f28154ed6fdac6d63ed57bf589d3bd
Hard coded network scores are no longer used however they still exist
in EthernetNetworkFactory. This change removes this unused code in
favor of the NetworkScore object.
Bug: 209679953
Test: m && atest com.android.server.ethernet.EthernetNetworkFactoryTest
Change-Id: Ic9035964fc0e0bdf1dbd1ee845ba3293c753dd8d
Replace them with PermissionUtils.enforceNetworkStackPermission*
since those methods are deprecated.
Bug: 177187957
Test: atest EthernetServiceTests
Change-Id: Ifde4a8898439b86e6cc49b7469787bc5e4a91835
When the EthernetNetworkAgent has already been stopped, a call to
unwanted will cause a crash due to a nullptr derefernce.
Bug: 197279734
Test: atest EthernetNetworkFactoryTest
Change-Id: Ice39c603bdd3e3139aa8ece7fb897bf7b567e74b
The requestTetheredInterface() and releaseTetheredInterface() in
EthernetManager is annotated as @NonNull. Basically, the taken
callback parameter to the service implementation should also be
@NonNull. However, it still possible to use native commands to
call the method in the aidl. If a null callback is taken, it may
cause unexpected results and cause crashes. Add a null check and
throw NPE as a warning.
Bug: 190058445
Test: adb commands
Change-Id: I18fd63aba3f7326597fc3a8c93ba8c9097bf7348
Update the naming and usgae according to API review feedback.
Bug: 184735772
Test: atest EthernetTrackerTest
Change-Id: Ie8dc0bcdf46ceebda5d6062231b48c1f63b250f6
Merged-In: Ie8dc0bcdf46ceebda5d6062231b48c1f63b250f6
Update the naming and usgae according to API review feedback.
Bug: 184735772
Test: atest EthernetTrackerTest
Change-Id: Ie8dc0bcdf46ceebda5d6062231b48c1f63b250f6
getAvailableInterfaces() will return available ethernet
interfaces which are the information about networks. So it should
enforce ACCESS_NETWORK_STATE permission check to ensure the
applications are allowed to access the information.
Bug: 174573778
Test: TetheringTests
Test: CtsTetheringTest
Change-Id: I7aaa5225d56f2feecc51ba263489ed0ce02fd651
- Use public API of StaticIpConfiguration.Builder to set
ipaddress, domains, gateway and dnsServers.
- Use public constructor to create an instance of IpConfiguration
and set IpAssignment, ProxySettings, StaticIpConfiguration and
HttpProxy by public API.
Bug: 182963415
Test: m ethernet-service
Change-Id: Idce8bfe7afc31baa644c816afa1f8004987e8c6e
Merged-In: Idce8bfe7afc31baa644c816afa1f8004987e8c6e
- Use public API of StaticIpConfiguration.Builder to set
ipaddress, domains, gateway and dnsServers.
- Use public constructor to create an instance of IpConfiguration
and set IpAssignment, ProxySettings, StaticIpConfiguration and
HttpProxy by public API.
Bug: 182963415
Test: m ethernet-service
Change-Id: Idce8bfe7afc31baa644c816afa1f8004987e8c6e
Replaced by request.canBesatisfiedBy() to avoid direct reference
of hidden member.
Bug: 182963415
Test: m ethernet-service
Test: atest EthernetServiceTests
Change-Id: I2a27410a6148c525e17a11cb1ba3570f04e60b5d
NetworkCapabilities#clearAll() is a hidden API, use clearAll()
of NetworkCapabilities.Builder instead.
Bug: 182963415
Test: m ethernet-service
Test: atest EthernetServiceTests
Change-Id: I87745b5f7a5817f95cdbc623b2313c181ff48f19
The connection service will become the mainline module.
So, need to remove the hidden API usage of NetworkRequest.
The NetworkRequest.type(TRACK_DEFAULT) is no longer sent
to the factories. So, remove the (TRACK_DEFAULT) check to
avoid using hidden API.
Bug: 170598012
Test: atest EthernetServiceTests
Change-Id: I5b5fed864318e9ac7e190c40d4f52076ab0eece8
The new specifier represents ethernet interfaces more
specifically and is part of the public API.
Bug: 179329291
Test: atest CtsNetTestCases
Merged-In: I6cba1709b3007a22d95849a1281237c77e1464a4
Change-Id: I6cba1709b3007a22d95849a1281237c77e1464a4
The connection service will become the mainline module. The mutable
NetworkCapabilities is deprecated, and the NetworkCapabilities should
be built through their Builder instead.
Bug: 170598012
Test: atest EthernetServiceTests
Change-Id: I09661ddda24d652ed791a7c6b093541e20a15e77
The connection service will become the mainline module. The mutable
NetworkCapabilities is deprecated, and the NetworkCapabilities should
be built through their Builder instead.
Bug: 170598012
Test: atest EthernetServiceTests
Change-Id: I31f12a39a924302beca980b8d920e3c5c18816d4
Follow-up from aosp/1549897, the capability will not be in
default capabilities, but will be in most of the NetworkRequests
which requires internet. Thus, add the capabilities into all
NetworkAgent implementations by default to provide
backward compatibility.
Test: TH
Bug: 175662146
Change-Id: Ib6e203571946e3094e4ce534b108f796cc3b8fb7
Since NetdUtils has the same method(setInterfaceUp) as
NetworkManagementService, replace the usage of NMS with NetdUtils.
Bug: 170598012
Test: atest EthernetServiceTests
Change-Id: Id0f8e17e9d6237fa8ab157c96dd982c47007a453
Because they operate on test interfaces, ethernet interfaces included
with setIncludeTestInterfaces should have TRANSPORT_TEST.
Bug: 156319532
Test: atest CaptivePortalApiTest
Change-Id: Ife3eab06432cabf3ee626de49abc31c8349b4316
There is a stopgap hack in ConnectivityService doing
this automatically, but individual agents should be doing
this themselves.
Test: FrameworksNetTests NetworkStackTests
Bug: 150570873
Change-Id: I6f75e2b26eb9f554243bc418142a4dc18839aa79
This is a combination of ag/10147368 and ag/10438581.
ag/10147368 implemented this conversion together with
using the planned NetworkScore API, while ag/10438581
reverted the parts that had to do with NetworkScore.
This is just a squash of these two patches and it
brings the factory in line with the code in rvc-dev.
Test: FrameworksNetTests NetworkStackTests EthernetTetheringTest
Change-Id: Ib214fbbd042f2c0ebd01cf5b0ec33d922629677e
Merged-In: Ie7b70750ef0e17141080f4266dea6155c3601569
Both EthernetManager#getAvailableInterfaces() and the no-arg
version of EthernetManager#isAvailable() end up calling
EthernetServiceImpl#getAvailableInterfaces. This method attempts
to filter out restricted interfaces if the caller does not have
the CONNECTIVITY_USE_RESTRICTED_NETWORKS permission.
Unfortunately EthernetNetworkFactory's notion of a restricted
interface is the opposite of what it should be. This means that
while privileged callers can see all interfaces, unprivileged
callers can only see restricted interfaces which they cannot use.
Fix this by correcting NetworkInterfaceState#isRestricted(), so
that unprivileged callers can see only unrestricted interfaces.
Privileged callers are unaffected.
This bug probably went unnoticed because restricted Ethernet
interfaces are rare (likely used only on auto devices) and
because the callers that care about those restricted interfaces
are generally privileged.
Bug: 148824036
Test: atest android.net.EthernetTetheringTest#testPhysicalEthernet
Change-Id: Idff3b05a193a80c581d80d0e4fe9c2d3fc0d8a25
Currently, callbacks for tethered interface availability are sent
based on interface link state. This is incorrect:
- It is acceptable and expected to be able to enable tethering on
an interface that does not yet have link up.
- It doesn't seem useful to disable Ethernet tethering if link
temporarily goes down.
Instead, only base the callbacks on whether an interface exists
or not.
Bug: 150644681
Test: WIP tests in aosp/1260100 pass
Change-Id: I015219cbd03626c38fb5156d0cb2991ba7d7def7
Currently, the default interface can only ever go from null to
non-null. This is correct for fixed interfaces (because they
don't get unplugged) and it's generally correct for USB
interfaces that use ethX as their device name (because when
they are unplugged and plugged in again, the device name won't
change). But it is not correct if, for example, the default
interface is a test interface. So, allow mDefaultInterface to go
back to null.
This CL also fixes a crash if a tethered interface request is
added and removed when there is no default interface.
Also, make dump() report tethered interface requests.
Also remove an unused variable that I missed in the previous CL.
Bug: 150644681
Test: tested by EthernetTetheringTest in same topic
Change-Id: I5109d8da3aeb6c1f6523291d9e2ec92c64b5ad2d
This CL adds a setIncludeTestInterfaces method to EthernetManager
that, when called, causes the Ethernet service to recognize and
manage test interfaces created by TestNetworkManager.
Bug: 150644681
Test: Tested by EthernetTetheringTest in same topic
Change-Id: I86eef7a93267f800dbfc8eafd307effa76a344ca