Commit graph android_packages_modules_Co.../core/java
Message SHA1
Set correct owner UID for VPN agentConnect()
This commit changes agentConnect to set the owner UID as the mOwnerUid
field instead of the Binder.getCallingUid().

Binder.getCallingUid() can return incorrect results for platform VPNs,
as agentConnect() is called under a clean calling UID.

Additionally, this relaxes the ownerUid sanitization check to allow a
VPN network's owner to see it's own ownership information.

Vpn.mOwnerUid is guaranteed to be correct, as all VPNs MUST have called
prepareInternal() at some previous point, which sets mOwnerUid as the
package's UID (or SYSTEM_UID if this is legacy VPN).

Bug: 150135470
Test: CTS tests showing ownership information
Change-Id: Ic979dad73983d722365849fbfb0becfd432b894c

Benedict Wong   commited 2020-06-08 14:33:01 -07:00
e3bcbc0ec7
Merge "Update javadoc to use complete sentence"
Treehugger Robot   authored and   Gerrit Code Review   commited 2020-06-05 03:02:36 +00:00
1b33b21814
Update javadoc to use complete sentence
Avoid using the "iff" abbreviation in our Javadoc.

Bug: 158092978
Test: m doc-comment-check-docs and check the generated doc
Change-Id: I41bf8a6ddad200f00524d9b2dd1bf169810ee460

Chiachang Wang   commited 2020-06-04 07:46:14 +00:00
d24c4d2f15
Update extra info before registering
The extra info is taken into NetworkMonitor from while creating
it. The NetworkMonitor is created when a new agent is registered
but the extra info is not available at that time. Make sure the
field is set in the NetworkInfo when registering.

Bug: 156173829
Test: adb shell dumpsys network and check the apn in the extra
      info shown correctly
Test: atest FrameworkNetTests
Change-Id: Ieaad8cbf1a28af3b97c7f98f74358e417fcad661

Chiachang Wang   commited 2020-06-03 13:01:01 +08:00
c9d788a50c
Allow TRANSPORT_TEST ethernet networks
Ethernet networks using tap interfaces should have TRANSPORT_TEST so
they are not considered by network selection.

Test: atest CaptivePortalApiTest FrameworksNetTests
Bug: 156319532
Change-Id: I0d9477977c88aa055625ab4046577a41e76b05ff

Remi NGUYEN VAN   commited 2020-05-29 10:22:50 +09:00
d64d6c3e98
Forward unknown Data Stall types to Connectivity Diagnostics.
This CL forwards suspected Data Stall events detected with unknown
detection methods to ConnectivityDiagnostics.

Currently, ConnectivityService drops any data stall events with unknown
detection methods, which leads to false negatives for Connectivity
Diagnostics registrants. This change ensures that registrants will still
be notified as NetworkStack is updated to use new detection methods.

The documentation for ConnectivityDiagnosticsManager#DataStallReport is
also updated to reflect that the detection methods included in the
report are a bit mask of detection methods used. Implicitly, this means
that data stalls detected via unknown methods will have an empty bit
mask (0x00).

Bug: 156294356
Test: atest ConnectivityDiagnosticsManager
Change-Id: I62d0bf91fcc17c7921afd519c72551399906bd6b

Cody Kesting   commited 2020-05-19 10:57:29 -07:00
43a47efd1c
Merge "Create TestApi for simulating a Data Stall on ConnectivityService."
Cody Kesting   authored and   Gerrit Code Review   commited 2020-05-12 16:52:35 +00:00
727f0d1d44
Merge "Set owner and administrator UIDs for test networks."
Cody Kesting   authored and   Gerrit Code Review   commited 2020-05-12 16:52:07 +00:00
eb44b7b1bb
Added a new capability for temporarily unmetered network.
Added a new network capability TEMOPORARILY_NOT_METERED to support
the case that a network can temporarily become unmetered. This
allows carriers to deploy unmetered 5G network. When devices
camp on 5G network, this capability will be dynamically added
to the network and will be removed once leaving 5G coverage.

Bug: 153081494
Test: Manual
Change-Id: I10e26cb0852e67f614e7b9c4e49f95e078602e21
Merged-In: I10e26cb0852e67f614e7b9c4e49f95e078602e21

Jack Yu   authored and   Sarah Chin   commited 2020-05-06 13:13:45 -07:00
d089298a81
Create TestApi for simulating a Data Stall on ConnectivityService.
This change adds a TestApi for simulating a Data Stall to
ConnectivityService. This allows for Data Stalls to be triggered without
having to manipulate the signals used by NetworkMonitor . This also
allows NetworkMonitor to update the ways it detects Data Stalls without
affecting CTS tests for ConnectivityDiagnosticsManager.

Bug: 148032944
Test: atest ConnectivityDiagnosticsManagerTest
Change-Id: Icad439efa2ab4c872c21d3ee6ceaae8c5b49f18d

Cody Kesting   commited 2020-04-27 20:55:00 -07:00
b5c7abd071
Set owner and administrator UIDs for test networks.
This change sets the owner and administrator UIDs for test networks when
their initial values match the UID for the app creating the test
network. This ensures that apps registering test networks can only make
themselves owners / administrators of the network.

Bug: 153449964
Test: atest NetworkAgentTest
Change-Id: I3a974700aa1d83cb285295ed1de0aa263e2e5b58

Cody Kesting   commited 2020-04-27 20:54:57 -07:00
ba3433669a
Set attributionTag for noteOp(WRITE_SETTINGS) calls
Test: atest FrameworksNetTests TetheringTests:TetheringServiceTest
Bug: 136595429
Merged-In: I33f787644c44d7b0e5ce17a433820cfcd985cdfb
Change-Id: Ic3d937e7bb5141798234ed5b2852c1f768e97495

Philip P. Moltmann   commited 2020-04-20 18:00:03 -07:00
bbf050b58d
Allow testing of signal strength
- Let any process with NETWORK_SETTINGS register for signal strength
  wakeup.
- Allow agents registering test networks to assign them a signal
  strength.

Test: NetworkAgentTest
Bug: 139268426
Change-Id: I2b4b89be3e69f4853fd6978d2c8f5c8eb4271f21

Chalard Jean   commited 2020-04-13 21:55:32 +09:00
cbc7c5b171
Add instrumentation to test NetworkAgent.
Test: NetworkAgentTest, new tests using this API
Bug: 139268426
Change-Id: Ia83b1c896df63bb18e2aa4b74d6cc09eba990eb5

Chalard Jean   commited 2020-04-13 15:44:07 +09:00
2116068514
Fix a theoretical NPE
Test: NetworkAgentTests
Bug: 153718627
Change-Id: I08f57cce0cd85d5cd66e9a0ef948224290e9200e

Chalard Jean   commited 2020-04-10 23:08:00 +09:00
5d8bc4b1ac
Merge "Fix a stupid NPE"
Treehugger Robot   authored and   Gerrit Code Review   commited 2020-04-07 05:53:10 +00:00
30673a9684
Fix a bug where the legacy extra info is reset on connect.
Bug: 149459996
Test: NetworkAgentTest FrameworksNetTests FrameworksWifiTests FrameworksTelephonyTests
Change-Id: I5f8f6d962ee3317e101d19518c767b3c327c0c47

Chalard Jean   commited 2020-04-06 12:46:19 +09:00
8e43611e05
Fix a stupid NPE
Okay so this is really not a behavior change as it converts an
NPE into an illegal argument exception, but still, that's what
should happen (and that's what the upcoming test actually tests
for).

Test: upcoming NetworkAgentTest
Bug: 139268426
Change-Id: I3e17211c03bc74426bf5e2e414ec322d73b0060b

Chalard Jean   commited 2020-04-03 07:17:13 +09:00
c7e1877d1c
Merge changes from topics "api-fix-networkagent", "satisfiedby"
* changes:
  Rename satisfiedBy into canBeSatisfiedBy
  Address further API council comments.

Chalard Jean   authored and   Gerrit Code Review   commited 2020-04-02 05:51:02 +00:00
2e64ca57b8
Merge "Only apply VPN isolation if it's fully routed"
Lorenzo Colitti   authored and   Gerrit Code Review   commited 2020-04-02 04:10:12 +00:00
f198a43744
Rename satisfiedBy into canBeSatisfiedBy
Test: FrameworksNetTests NetworkStackTests
Bug: 152238712
Change-Id: I076876a6662bde143ef7d315ce3767acafff93c1
Merged-In: I076876a6662bde143ef7d315ce3767acafff93c1

Chalard Jean   authored and   Aaron Huang   commited 2020-04-01 20:38:30 +08:00
82acfd29a1
Only apply VPN isolation if it's fully routed
VPN is considered fully routed if both IPv4 and IPv6 have
either a default route or a prohibit route.

Bug: 145332510
Test: atest FrameworksNetTests
Change-Id: I59cf48552bca98092d1212e3d718fd420add5458

Rubin Xu   commited 2020-04-01 09:36:29 +01:00
fa429013a0
Address further API council comments.
Test: FrameworksNetTests NetworkStackTests
Bug: 152238712
Copy from ag/10866511
Change-Id: I8a785ae0e74e659c317deaaa28c203356c7766ed
Merged-In: I8a785ae0e74e659c317deaaa28c203356c7766ed

Chalard Jean   authored and   Aaron Huang   commited 2020-04-01 16:01:04 +08:00
ef902503aa
Merge changes from topics "networkagent_api", "networkprovider_api"
* changes:
  Update the NetworkProvider API for council comments
  Update NetworkAgentConfig API for council comments
  Update the NetworkAgent API for council comments

Aaron Huang   authored and   Gerrit Code Review   commited 2020-04-01 05:33:28 +00:00
e6d2e6c4ac
Merge "Clarify comments for Connectivity Diagnostics reports."
Cody Kesting   authored and   Gerrit Code Review   commited 2020-03-31 17:43:44 +00:00
71016c103f
Merge "Sort administrator UIDs for NetworkCapabilities."
Cody Kesting   authored and   Gerrit Code Review   commited 2020-03-31 17:43:02 +00:00
92e4bb4455
Merge "Add combine() and equals() for NetworkCapabilities admin UIDs."
Cody Kesting   authored and   Gerrit Code Review   commited 2020-03-31 17:42:18 +00:00
1bf4b1f47b
Update the NetworkProvider API for council comments
Bug: 152238712
Test: FrameworksNetTests NetworkStackTests
Copy from ag/10826397
Change-Id: I6b086572cfc72a0727f4510351cff0e74cbc4302
Merged-In: I6b086572cfc72a0727f4510351cff0e74cbc4302

Chalard Jean   authored and   Aaron Huang   commited 2020-03-31 11:57:59 +00:00
12fe284e0c
Update NetworkAgentConfig API for council comments
Bug: 152238712
Test: FrameworksNetTests NetworkStackTests
Copy from ag/10826396
Change-Id: Idca9f243a5c955f4caa30921ee520e1a93b0d11a
Merged-In: Idca9f243a5c955f4caa30921ee520e1a93b0d11a

Chalard Jean   authored and   Aaron Huang   commited 2020-03-31 11:51:05 +00:00
e5b9e82f86
Update the NetworkAgent API for council comments
Bug: 152238712
Test: FrameworksNetTests NetworkStackTests
Copy from ag/10824609
Change-Id: I9a2691f783f4449348c3f767568e05620f0b9df5
Merged-In: I9a2691f783f4449348c3f767568e05620f0b9df5

Chalard Jean   authored and   Aaron Huang   commited 2020-03-31 11:34:42 +00:00
7fe99f5dfe
Merge "Invoke onConnectivityReport on registering ConnectivityDiagnostics."
Cody Kesting   authored and   Gerrit Code Review   commited 2020-03-31 00:06:26 +00:00
77f2293b06
Merge "Clean up handling of NetworkCapabilities#administratorUids."
Cody Kesting   authored and   Gerrit Code Review   commited 2020-03-30 22:04:43 +00:00
7ac175925c
Clarify comments for Connectivity Diagnostics reports.
Clarify when
ConnectivityDiagnosticsCallback#onConnectivityReportAvailable will be
invoked. Clarify when NetworkAgentInfo#mConnectivityReport will be null
vs non-null.

Bug: 147849853
Test: atest FrameworksNetTests
Change-Id: I748bd9ded72a34d89f13bd4362d6d4da62b910b8

Cody Kesting   commited 2020-03-30 14:51:24 -07:00
782d0a044c
Sort administrator UIDs for NetworkCapabilities.
Administrator UIDs stored in NetworkCapabilities should be sorted. This
allows for easier equals checks and hashCode computation. Additionally,
duplicate UIDs should be prevented.

Bug: 147903575
Test: atest FrameworksNetTests
Change-Id: Ia5387ca2ce7c3fcbd04dc7fbff5266f7bcc71694

Cody Kesting   commited 2020-03-30 14:51:24 -07:00
751d414caf
Add combine() and equals() for NetworkCapabilities admin UIDs.
NetworkCapabilities#mAdministratorUids should be checked for equality
when combining NetworkCapabilities. Administrator UIDs should also be
included in NetworkCapabilities equals() and hashCode().

Bug: 147903575
Test: FrameworksNetTests
Change-Id: I803bdec80e27ee80d3a39844c5fb7aed584ab07d

Chalard Jean   authored and   Cody Kesting   commited 2020-03-30 14:27:20 -07:00
9e70d0d85f
Invoke onConnectivityReport on registering ConnectivityDiagnostics.
This change updates the behavior for registering
ConnectivityDiagnosticsCallbacks. Now, after a successful register()
call, callbacks will receive cached ConnectivityReports for all
matching, permissioned networks. This allows registrants to be updated
with the network state for their networks without having to wait for the
next network validation.

Bug: 147849853
Test: atest FrameworksNetTests
Change-Id: I924ba8fdcc847f453557021591bde38602fe089c

Cody Kesting   commited 2020-03-30 11:10:46 -07:00
905b475a00
Clean up handling of NetworkCapabilities#administratorUids.
Update ConnectivityService's check for administrator UIDs to use
ArrayUtils to check for UID inclusion. Update the NetworkCapabilities
annotation on the administrator UIDs field to clarify that it is
NonNull.

Bug: 147903575
Test: atest FrameworksNetTests
Change-Id: Id630fe9d76aacdaf038fdaa5360f0327520ee0c3

Cody Kesting   commited 2020-03-30 16:55:21 +00:00
61c6b86550
Merge "Create a builder for NetworkCapabilities."
Remi NGUYEN VAN   authored and   Gerrit Code Review   commited 2020-03-30 02:58:45 +00:00
9259da76fb
Merge "API review: access field by method"
Aaron Huang   authored and   Gerrit Code Review   commited 2020-03-27 07:03:25 +00:00
1c556c813c
Merge "Allow MANAGE_TEST_NETWORKS to register limited agents"
Chalard Jean   authored and   Gerrit Code Review   commited 2020-03-25 09:47:03 +00:00
86b48f950e
Allow MANAGE_TEST_NETWORKS to register limited agents
This puts in force some restrictions against test networks,
and in exchange relaxes the restrictions around registering
a network agent that provides a test network.
Test networks can only ever have transport TEST, and have
only a few capabilities available to them.

This is useful in particular to test CTS. See aosp/1253423
for first, basic usage of this capability.

Test: IpSecManagerTunnelTest
Test: new CTS aosp/1253423
Bug: 139268426
Change-Id: I47600e6097e8519e50ae771daa13bb6bb7640451

Chalard Jean   commited 2020-03-25 16:28:50 +09:00
b5b172f89f
Create a builder for NetworkCapabilities.
Bug: 151322799
Test: FrameworksWifiTests
Change-Id: I69c00c9e3963950e55d7105d8825f7d3a3ec9b2f
Merged-In: I06eb97e50d5583579b3c26d1365d2dbaec8bfc99
(cherry picked from commit 9771f34dae9cdeb857636cac2b3c2d473713914e)

Chalard Jean   commited 2020-03-25 13:27:04 +09:00
bd958b3101
Merge "Expose netId by adding getter API"
Chalard Jean   authored and   Gerrit Code Review   commited 2020-03-25 02:23:03 +00:00
cb1c9fcc50
API review: access field by method
- InvalidPacketException, public field should be a method so
  add getter to get error code.
- KeepalivePacketData, public fields should be methods so
   add getter for fields.

Bug: 151322799
Test: atest FrameworksNetTests
      atest FrameworksWifiTests
      atest FrameworksTelephonyTests: some failure in CarrierAppUtilsTest
Copy from ag/10731108
Change-Id: Id01e6135193716cc21bba11da529bf1507a954f7
Merged-In: Id01e6135193716cc21bba11da529bf1507a954f7

Aaron Huang   commited 2020-03-24 10:55:18 +00:00
60011ce0a1
Expose netId by adding getter API
Bug: 151156820
Test: m
      atest TetetheringTests

Clean CP from ag/10747732

Change-Id: Ieb1483c146aa2f7d8f251157e6e81d71c44ae899
Merged-In: Ieb1483c146aa2f7d8f251157e6e81d71c44ae899

markchien   authored and   Chalard Jean   commited 2020-03-24 09:19:26 +00:00
dee287219f
Merge "Fix addRoute replace default route unexpectedly"
Treehugger Robot   authored and   Gerrit Code Review   commited 2020-03-24 05:51:30 +00:00
7a1edfc7e6
Fix addRoute replace default route unexpectedly
In aosp/1203789, if two routes are with the same destination,
it will be replaced instead of added when calling addRoute.
This breaks scenarios which rely on the ability to add multiple
default routes, such as multiple IPv6 default routes learned
via address autoconfiguration.

This change treats the route is an update if the destination
and nexthop are the same, but different in other properties.

Test: atest OffloadControllerTest#testSetUpstreamLinkPropertiesWorking
Test: atest LinkPropertiesUtilsTest#testLinkPropertiesIdenticalEqual
Test: atest ConnectivityServiceTest#testStackedLinkProperties
Test: atest ConnectivityServiceTest#testRouteAddDeleteUpdate
  (only directly related tests are listed)
Fix: 152170074
Fix: 151911339
Bug: 142892223

Change-Id: I7153ec9866f14a109ba8155c905e5d9e4f85eb64

junyulai   commited 2020-03-24 10:27:01 +08:00
21c26dae4e
Refactor Network's use of mUrlConnectionFactory.
1.) Replace maybeInitUrlConnectionFactory() with a static method
    createUrlConnectionFactory(Dns) and move the logic to acquire
    the lock and initialize mUrlConnectionFactory out into
    openConnection. This makes it a bit clearer that the lock
    is acquired during openConnection().
2.) Use @GuardedBy("mLock") rather than a human readable comment
    on mUrlConnectionFactory.
3.) Make mUrlConnectionFactory non-volatile (since it's guarded by
    mLock), as recommended by Narayan on the review thread for
    http://r.android.com/370652
    Alternatively, the field could have remained volatile
    and we could have used double-checked locking to avoid
    acquiring the lock in the common case.
    The lock is only acquired during getSocketFactory() and
    openConnection(), so it shouldn't usually be contended.

This CL is a pure refactoring that shouldn't have any observable
behavior change.

Bug: 38311512
Test: Treehugger
Exempt-From-Owner-Approval: refactoring only, owner didn't respond in time
Change-Id: I1cf6075dc7cd994657b11d6a82de3ec63235fb1e

Tobias Thierer   commited 2020-03-23 11:34:32 +00:00
d109bbbbe4
Merge "Change NetworkCapabilties administrator UIDs to be stored as int[]."
Cody Kesting   authored and   Gerrit Code Review   commited 2020-03-19 18:09:26 +00:00
3cde0f0c33
Merge "TetheringManager API clean up"
Mark Chien   authored and   Gerrit Code Review   commited 2020-03-19 16:09:21 +00:00
ffe3a0c6ca