Commit Graph

306 Commits

Author SHA1 Message Date
Chiachang Wang
e5c363a3bd Merge "Enable strict_updatability_linting in connectivity src" am: 81bc609550
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1902533

Change-Id: I5cf42aa64a838f711cd1ecc589f86aecb19b358f
2021-12-08 02:53:16 +00:00
Chiachang Wang
81bc609550 Merge "Enable strict_updatability_linting in connectivity src" 2021-12-08 02:36:16 +00:00
Chalard Jean
57864d9400 Remove the legacy int policy from NetworkRanker am: 132ff9ef2e
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1906317

Change-Id: I2847dc951d05916da1dc41a1f06e63180bbb0162
2021-11-30 13:11:21 +00:00
Chalard Jean
132ff9ef2e Remove the legacy int policy from NetworkRanker
This code is now dead and can't be resurrected. It can safely
be removed.

Test: FrameworksNetTests
Change-Id: I7bc2ce3d43a92e463b6aed73914c3f7a3a0c8103
2021-11-30 20:00:55 +09:00
Paul Hu
192f0c63f1 Merge "Simplify the permission update conditions" am: 5e3ef685ef
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1903462

Change-Id: I0e9774887d2c2cc1adf140d544457f07bca830b1
2021-11-29 05:46:14 +00:00
Paul Hu
5e3ef685ef Merge "Simplify the permission update conditions" 2021-11-29 05:31:14 +00:00
Paul Hu
b0a10cd127 Merge "Save uid netd network permissions" am: 6fafdc1548
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1773890

Change-Id: Ibff437f91017017cc6fcc7e456e621e2ad81995a
2021-11-29 03:45:46 +00:00
Paul Hu
6fafdc1548 Merge "Save uid netd network permissions" 2021-11-29 03:27:33 +00:00
paulhu
7bbffbd7d8 Simplify the permission update conditions
Bug: 192431153
Test: atest FrameworksNetTests
Change-Id: Ibef4f3b26932a3d12959e2e1d585e184a4ec73cb
2021-11-26 16:14:47 +08:00
paulhu
b2d5b054d3 Save uid netd network permissions
PermissionMonitor only saves netd network permissions by appId.
Then apply same permision to uids which are same appId. But
UIDS_ALLOWED_ON_RESTRICTED_NETWORKS can allow single uid has
restricted network permission. Thus, save the netd network
permissions by uid that can apply different permission to each
uid.

Bug: 192431153
Test: atest FrameworksNetTests
Change-Id: I942cbe0fa30758a7497c47a1b684ed70c4e3b09e
2021-11-26 14:47:01 +08:00
Aaron Huang
2797722d0c Merge "Remove TODO that was already done" am: 93d437ba0c
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1900213

Change-Id: Ie6370d66be8d4de22465b31be0b0eba680ed0a16
2021-11-26 04:16:55 +00:00
Chiachang Wang
3bc5276568 Enable strict_updatability_linting in connectivity src
Bug: 188851968
Test: m lint-check
Change-Id: I3cd06ea16f05cb37d9369a48dd0285d8239fd764
2021-11-26 10:31:58 +08:00
Aaron Huang
2f8e0319d4 Remove TODO that was already done
The TODO is used to track to remove dependencies from
ConnectivityService. Remove it since that was already done.

Test: remove comment only
Change-Id: Ida8c1124e110f64262a693dcddfbc7a9549510da
2021-11-23 14:39:16 +08:00
Xin Li
e41bbea995 Merge sc-qpr1-dev-plus-aosp-without-vendor@7810918
Bug: 205056467
Merged-In: I745ef4d42ecaf06bb81d9dbe0b7162267fea65a8
Change-Id: I7b2a1fc519124cfc10806dde5fd543504a51e072
2021-11-10 08:06:18 +00:00
Remi NGUYEN VAN
959d2cb6bd Don't rematch all requests when adding new ones
With the network selection rewrite in S, rematching a single request can
now easily be done; this can be used as an optimization in
handleRegisterNetworkRequests to avoid rematching all requests when
registering a new one.

This can be disabled by a flag that is unset by default,
REMATCH_ALL_REQUESTS_ON_REGISTER.

Test: atest ConnectivityServiceTest
Change-Id: If76f79b41ac88863974f7025624667134bea2570
2021-11-08 19:17:57 +09:00
Remi NGUYEN VAN
1d1b1fe999 Merge "Move fromStableParcelable to KeepaliveController" 2021-11-04 06:19:17 +00:00
Treehugger Robot
f475961aca Merge "Add permission update logs" 2021-11-02 02:27:56 +00:00
paulhu
819e8625e6 Add permission update logs
Save permission update result when package added /
package removed / setting changed.

Log:
Permission Monitor:
  Interface filtering rules:

  Update log:
    2021-10-27T11:04:23.472 - Package remove: name=com.vzw.apnlib, uid=10001, nPerm=(NONE/NONE), tPerm=UNINSTALLED
    2021-10-27T11:03:38.307 - Setting change: update={}, remove={10001=1}
    2021-10-27T11:02:22.589 - Setting change: update={10001=2}, remove={}
    2021-10-27T11:01:08.615 - Package add: name=com.vzw.apnlib, uid=10001, nPerm=(NONE/NONE), tPerm=NONE

Bug: 204260474
Test: build / flash / adb shell dumpsys connectivity
Change-Id: I889a8f2c82751f227655b39a4281a6f044508a86
2021-11-01 16:35:06 +08:00
Remi NGUYEN VAN
5d99aa78f7 Move fromStableParcelable to KeepaliveController
TcpKeepaliveController is the only user of
KeepalivePacketDataUtil.fromStableParcelable. Because of
fromStableParcelable, networkstack-client needs to depend on
net-utils-framework-commonm, which pulls a lot of unnecessary classes.
This is particularly problematic considering that networkstack-client
may need to be redistributed as a prebuilt.

Move the method to TcpKeepaliveController, simplifying dependencies.
This also shows that fromStableParcelable could be removed altogether
(or moved to tests) if TcpKeepaliveController built a
TcpKeepalivePacketData class directly.

Test: atest ConnectivityCoverageTests
Change-Id: I554318f6bcd07c73d153598a0231e9fcaf912e90
2021-11-01 13:23:27 +09:00
Chalard Jean
ba551d4dbb Improve logs in checkNrisConsistency
Test: ConnectivityServiceTest
Change-Id: If5235443217ad4abbdd40e89d5721d4f7832d52f
2021-10-28 12:45:12 +09:00
Chalard Jean
524f0b1d7f Apply a workaround, and try to detect a system crash
This will prevent the system crash in b/194394697, and on T try to
detect the issue much earlier and crash the system at that time
together with much more expansive logs.

Bug: 194394697
Test: ConnectivityServiceTest
Change-Id: Ia4be82179160216d41bf4d88b896e4814385063a
2021-10-27 16:00:56 +09:00
Chalard Jean
e88bfbc015 Merge "No-op cleanup" 2021-10-26 02:39:47 +00:00
Chalard Jean
a3578a5465 No-op cleanup
Binders from the system server don't help, because if the process
dies there is nobody to listen to its binder deaths.

Test: ConnectivityServiceTest
Change-Id: I993cb9481edfaeb652b875be7f90166db16d0e1d
2021-10-25 19:24:48 +09:00
lucaslin
6adf5ac19b Add underlying networks into NetworkAgentInfo if any
Now, VPN will set underlying networks into NetworkCapabilities
directly. So the declaredUnderlyingNetworks can also be set
directly when creating a NetworkAgentInfo.

Bug: 191918368
Test: atest FrameworksNetTests:ConnectivityServiceTest
Change-Id: I507072d00ae1eb0c391e5261ab93e359b9c4cb5c
2021-10-19 15:04:56 +08:00
Treehugger Robot
29f0350da3 Merge "Update Permission only if the network is created" 2021-10-14 06:13:54 +00:00
Paul Hu
2541cf6d81 Merge "Stop using PerUidCounter#transact" am: a7db5ddda5 am: fe5e2742b6 am: 707437622a
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1821293

Change-Id: I30d748c01fa05f05a02ee5ef8bbc721fc32eafae
2021-10-04 14:23:49 +00:00
Paul Hu
fe5e2742b6 Merge "Stop using PerUidCounter#transact" am: a7db5ddda5
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1821293

Change-Id: Icd1072ef5b8281fa54f71796e7eaa981b0fd943b
2021-10-04 13:58:26 +00:00
Paul Hu
a7db5ddda5 Merge "Stop using PerUidCounter#transact" 2021-10-04 13:48:07 +00:00
Treehugger Robot
3fcefe8039 Merge "Updating formatting and text for per-app dumpsys" am: 7ece4bb71e am: 3a44ebe9a1 am: 388ae1444f
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1723618

Change-Id: Iaac0cb2ec69b2335759f10787a3698c636b11753
2021-10-03 06:32:52 +00:00
Treehugger Robot
3a44ebe9a1 Merge "Updating formatting and text for per-app dumpsys" am: 7ece4bb71e
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1723618

Change-Id: Id13fe82d772d51b935a86076b1b660f57b4f5032
2021-10-03 06:11:23 +00:00
Treehugger Robot
7ece4bb71e Merge "Updating formatting and text for per-app dumpsys" 2021-10-03 05:53:26 +00:00
TreeHugger Robot
0a2d680a4d Merge "Ensure calling package name and uid are matched" into sc-qpr1-dev am: e93efb6f96
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/15618365

Change-Id: I80aa5da33f8c4c5154a721ceec58852b6c2d42f1
2021-10-01 14:21:16 +00:00
paulhu
3c811e1e55 Add comment for not listening EXTERNAL_APPLICATIONS_UNAVAILABLE am: e7e02d7880
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1826071

Change-Id: Ib46d16e9d96ff331a486ec4151aa498236f29d8f
2021-10-01 01:48:36 +00:00
paulhu
e7e02d7880 Add comment for not listening EXTERNAL_APPLICATIONS_UNAVAILABLE
Bug: 192653840
Test: only add comment.
Change-Id: I5a61ea76a40cf74e15ec36e415d6d4eb8ef6016f
2021-10-01 01:30:31 +00:00
James Mattis
8b298a00b2 Updating formatting and text for per-app dumpsys
Fixing the indentation for dumpsys CONNECTIVITY for per app network
info. Also updated to more clearly show when the active network is
currently tagged to the "no service network" for configured apps so as
to more clearly show intent to dumpsys consumers. Finally, correctly
showing profile network preferences which weren't being shown
previously.

Prior formatting with no per-app networks:
Current per-app default networks: Per-App Network Preference:
    none

Updated formatting with no per-app networks:
Current network preferences:
  Default requests:

Prior formatting with active per-app networks ("none" is shown in this
case since profile network preferences weren't correctly displayed):
Current per-app default networks: Per-App Network Preference:
    none
  Is per-app network active:
    true
    Active network: 100
    Tracked UIDs:
      {1100000-1199999}

Updated formatting with active per-app networks:
Current network preferences:
  Profile preferences:
    [[ProfileNetworkPreference user=UserHandle{11} caps=[ Capabilities:
    INTERNET&TRUSTED&NOT_VCN_MANAGED&ENTERPRISE Uids:
    <{1100000-1199999}>]]]
  OEM preferences:
    OemNetworkPreferences{mNetworkMappings={android.net.cts=-1}}
  Mobile data preferred UIDs:
    mMobileDataPreferredUids: {1, 2, 3}
  Default requests:
    Request: [uid/pid:1000/1423] - Satisfier: [100] Preference order: 10
    Tracked UIDs:{1100000-1199999}

Bug: 189860802
Test: adb shell dumpsys connectivity
Change-Id: I5ed4bb83e9e5a4497f5019ab4e4c0f238989a246
2021-09-30 11:47:36 -07:00
paulhu
74128521ad Stop using PerUidCounter#transact
PerUidCounter#transact is used to adjust the request counter for
the per-app API flows. Directly adjusting the counter is not
ideal however in the per-app flows, the nris can't be removed
until they are used to create the new nris upon set.

In fact, satisfiers are the info that new nris need reference.
Without satisfiers in new nris, the avaiable callbacks would be
sent to listeners agin when assign new satisfiers. Even the new
best networks are same as previous satisfiers, but the new nris
have lost those info if calling handleRemoveNetworkRequests()
before createPerAppCallbackRequestsToRegister().

However, removing satisfiers from nris is not necessary actually
because the CS will update the best network to nri when compute
network reassignment. It doesn't need to be cleared when
calling handleRemoveNetworkRequest(). Thus, keep that info and
adjust the sequence to remove nri first. The counter is still
correct and doesn't hit limit artificially.

Bug: 201648050
Test: atest FrameworksNetTests CtsNetTestCases
Change-Id: I4cbc953def7866b23c2b8ebc8deaadf0ffc3b75d
2021-09-30 15:35:53 +00:00
Pavan Kumar M
be994246f4 Update Permission only if the network is created
Reproduction steps:

- Register a NetworkAgent but don't mark it as connected.
- Set teardownDelayMs for the NetworkAgent to 100
- Unregister the NetworkAgent then see system crashed.

Tests:

- Builds, Boots
- ConnectivityServiceTest

Change-Id: Ib8e517acb0193a2454d672612fe61fc199de46a4
Bug: 200023207
2021-09-29 12:37:42 +00:00
Chalard Jean
8c06f9991b Merge "Check NetworkAgentInfo Map Before Destroying Network" am: 9d31c63e03
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1802528

Change-Id: Ibcf989ffd494108faeeb4419041fb32389208c4d
2021-09-29 06:20:06 +00:00
Chalard Jean
9d31c63e03 Merge "Check NetworkAgentInfo Map Before Destroying Network" 2021-09-29 06:03:56 +00:00
Tyler Wear
f405adead7 Fix NetworkOffer Death link does not exist am: 3ec7e6d9fb
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1799528

Change-Id: Ic1b0cb9e06d05d334cedd4b50bc7e8cf91dcc59a
2021-09-29 00:55:19 +00:00
Tyler Wear
614b27badd Check NetworkAgentInfo Map Before Destroying Network
updateNetworkInfo is called with the argument in a message,
which is initialized with `this` in NetworkAgentRegistry.
That means it's technically possible that CS calls
tearDownUnneededNetwork, calling nai.disconnect() and
queuing up a message to call this, but before it's done
the NA calls sendNetworkInfo with DISCONNECTED, which
never looks up the agent from the map. Throwing a
ServiceSpecificException and resulting in a System crash.

Bug: 196423147
Change-Id: Ia52f2b794f32c263200c14b8dc2eb6b184bff5ff
2021-09-28 17:41:23 -07:00
Tyler Wear
3ec7e6d9fb Fix NetworkOffer Death link does not exist
unregisterNetworkProvider is being called from binderDied()
and handleUnregisterNetworkProvider() at the same time. This results
in NoSuchElementException being thrown.

Check than noi can be removed from network offers before unregistering
death link.

Bug: 196423150
Change-Id: If5bd5f2894fa0509a89340efdc85180c54e72e0e
2021-09-20 10:40:19 -07:00
Chalard Jean
d4ec13a400 Merge "Add a mode for cell radios unable to time share" am: c80a5d56db
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1827923

Change-Id: I5ded48c8498c32977adcfe2363599d6cfa246e1b
2021-09-18 12:50:52 +00:00
Chalard Jean
0702f98edc Add a mode for cell radios unable to time share
Upon changing the default SIM card, the radio will create a
new connection to the new subscription. If that subscription
works correctly, the stack will prefer it to the old one as
the new subscription will be marked with a Primary policy
flag it its score.

Normally, at this point the old network lingers to give apps
an opportunity to gracefully migrate their connections. But
with some radios, this may have a dramatic effect on the
performance of the new connection.

This patch introduces a flag so that devices with such radios
can be marked. In this case the stack will move to a degraded
mode and eschew the grace delay for apps and give them a hard
break instead, so that the new network can reach a good
performance immediately. Apps with existing connections will
suffer a worse experience.

If there is a request that can only be served by the old
connection, still keep it, as arguably the user still
expects their MMS be sent on the old connection, even if the
new connection doesn't work well until it's done.

Test: new test in this patch, and add relevant tests in both modes
      also manually change the value of the flag and run
      FrameworksNetTests and CtsNetTestCasesLatestSdk
Bug: 200226979
Change-Id: I4ace82f90e873bf06298cc689bb1d794ed5124bd
2021-09-18 04:03:13 +00:00
Junyu Lai
6f988d4042 Merge "Include suspended network when getAllNetworkStateSnapshots" am: 48426bb2a4
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1797867

Change-Id: I700e16334e0f8aeea862555e8ecf784cf36fd315
2021-09-09 09:40:15 +00:00
Junyu Lai
48426bb2a4 Merge "Include suspended network when getAllNetworkStateSnapshots" 2021-09-09 09:24:04 +00:00
Junyu Lai
ddecb66246 Include suspended network when getAllNetworkStateSnapshots
Suspended network should be considered as temporary shortage of
connectivity of a connected network. Thus, it should not be
excluded from network state snapshots and causes data usage to
stop accounting or iptables rules to be removed on the interface
of the suspended network.

This change also address the naming confusion of default networks
parameter of expectNotifyNetworkStatus.

Test: atest ConnectivityServiceTest#testGetAllNetworkStateSnapshots
Bug: 196079981
Change-Id: I8096356f9a472fb1c1246fbdf3fd5f981387fb1c
2021-09-08 06:02:28 +00:00
Paul Hu
9477c7b5ca Merge changes Id2ffb056,I2a4e298b am: 420fa2baef
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1772667

Change-Id: I84acbefcaf5cb95cc208d27caf8a89c0717db94e
2021-09-07 06:13:41 +00:00
Paul Hu
420fa2baef Merge changes Id2ffb056,I2a4e298b
* changes:
  Adjust some behaviors on PermissionMonitorTest
  Use common code
2021-09-07 06:01:54 +00:00
Paul Hu
2fe543353b Merge "Correct uid to app id for netd traffic permission methods" am: 9fe8c8fc76
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1767733

Change-Id: I11d1e21c7510c5f2d07198d8930134c6a9976708
2021-09-07 01:26:18 +00:00