Commit graph android_packages_modules_Co.../tests/unit/java/com/android
Message SHA1
Merge "Log improvement when the meta-data format is unexpected" into main
Junyu Lai   authored and   Android (Google) Code Review   commited 2025-05-08 19:59:45 -07:00
27aa3082b6
Log improvement when the meta-data format is unexpected
Currently, if the value of opt-in meta-data is not a String,
calling Bundle#getString would result in flooding the system
log with Bundle warning log and callstacks, but without
useful information like the package name.

Thus, a manual type check is performed, and the package name
is logged if a mismatch occurs.

Flag: EXEMPT flagged with a kill switch
Test: atest CtsHostsideNetworkTests:com.android.cts.net.HostsideSatelliteDataOptInTest \
      ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.SatelliteAccessControllerTest \
      --update-device
Bug: 416351099
Change-Id: Iae8e26f657e009edb8630dbbe64c7e3e958abc43

Junyu Lai   commited 2025-05-09 09:15:12 +08:00
4943a17fb6
Merge "Implement network avoid bad wifi from carrier config" into main
Jimi Chen   authored and   Android (Google) Code Review   commited 2025-05-08 17:46:53 -07:00
ae13aeb0fd
Add Kill Switch for PermissionMonitor Refactoring
As a follow-up to ag/33089478 and ag/33101784, the intent
receiving and dispatching logic was refactored and centralized
within the newly introduced BroadcastReceiveHelper.

However, due to the potential risks associated with this
refactoring, a kill switch is being added specifically for the
PermissionMonitor refactoring. This will allow for reverting
to the previous implementation (potentially involving code
duplication) to mitigate risks if issues arise.

Flag: EXEMPT flagged with a kill switch
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.PermissionMonitorTest \
      ConnectivityCoverageTests:android.net.connectivity.com.android.server.ConnectivityServiceTest \
      --update-device
Bug: 410731080
Change-Id: I7889ef457d841c750da60a80e50ed6208c45448f

Junyu Lai   commited 2025-05-08 19:01:25 +08:00
638c43f201
Implement network avoid bad wifi from carrier config
Flag: android.net.platform.flags.avoid_bad_wifi_from_carrier_config
Bug: 410976315
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.MultinetworkPolicyTrackerTest
Change-Id: I89c579a8d5c7299303278280c463aa4c7c5bea99

Jimi Chen   commited 2025-05-08 07:25:36 +00:00
0881fc0a7d
Merge "Update link properties early for VPN networks" into main
Paul Hu   authored and   Android (Google) Code Review   commited 2025-05-07 22:28:58 -07:00
c360088112
Merge "Ensure Thread network is never mDNS capable" into main
Handa Wang   authored and   Android (Google) Code Review   commited 2025-05-06 19:48:34 -07:00
0c23270fbc
Ensure Thread network is never mDNS capable
Thread doesn't use mDNS and we should prevent NsdService from sending any mDNS traffic to Thread.

Bug: 414258735
Test: CI
Flag: EXEMPT bugfix
Change-Id: I62299769cd44d2984b81b273adea7ce459d3d773

Handa Wang   commited 2025-05-06 19:34:34 -07:00
b59c829ff1
Merge "Use the corresponding PackageManager for different users" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-05-05 21:58:40 -07:00
8c31a84f9f
Use the corresponding PackageManager for different users
Currently, isSatelliteDataOptimizedApp utilizes the PackageManager
from the primary user's context. However, if the added package is
not visible to the primary user, the satellite controller will
fail to parse the required information from the AndroidManifest.

Therefore, the corresponding PackageManager should be used when
a package is being checked.

Flag: EXEMPT flagged with a kill switch
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.SatelliteAccessControllerTest \
      --update-device
Test: Manual:
      1. Create and setup 2nd user.
      2. adb install --user 10 CtsHostsideSatelliteDataOptimizedWithMetaData.apk
      3. adb shell dumpsys connectivity
      4. adb uninstall com.android.cts.net.hostside.satellitedataoptin.testapp
Bug: 410731080

Change-Id: I7adadb3449ec2ff984e6672ffb97919a2418e9b7

Junyu Lai   commited 2025-05-06 10:59:50 +08:00
988d00e57b
Format MdnsInterfaceAdvertiserTest with ktlint
Test: TH
Flag: EXEMPT test only change
Change-Id: I1f278dfebb17836ff0a928c08b68a7266ac4d90a

Yuyang Huang   commited 2025-05-04 14:39:36 +09:00
21a4193c7b
Merge "Read meta-data instead of property" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-05-01 22:47:52 -07:00
3305741269
Read meta-data instead of property
Currently, the SatelliteAccessController checks if apps are
opt-in via a property tag under the application. This is
incorrect because PROPERTY_SATELLITE_DATA_OPTIMIZED is an
existing, released meta-data usage for Android B and needs
to be preserved.

Flag: EXEMPT flagged with a kill switch
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.SatelliteAccessControllerTest \
  --update-device
Bug: 410731080
Change-Id: If09890faf5d208d007179ecc29b7cf16f6fe6ebb

Junyu Lai   commited 2025-05-02 12:08:38 +08:00
0beea1e992
Merge "Enforce run on handler thread for SatelliteAccessController" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-05-01 20:30:51 -07:00
be4ecf0ac4
Enforce run on handler thread for SatelliteAccessController
This is a no-op refactoring that ensures events are handled
on the handler thread. While this is already the case in
production code, it's not consistently true in the tests.

This change adds the necessary methods for faking events
on the handler thread while maintaining readability in the
tests.

Flag: EXEMPT refactor
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.SatelliteAccessControllerTest \
      --update-device
Bug: 410731080
Change-Id: I816233a823314c4c276138438bbaf33f781eccfe

Junyu Lai   commited 2025-05-02 09:50:40 +08:00
00625abeda
Merge changes Id3eaa838,If07fb6c1 into main
* changes:
  Move failWithErrorReason to a common place
  Enable the last preference tests

Jean Chalard   authored and   Android (Google) Code Review   commited 2025-04-30 20:05:50 -07:00
175e8aeebf
Deduplicate fallback UID callbacks
Currently, onUserAdded calls onRoleSmsChanged, which triggers a
fallback UIDs callback.  Updating opt-in UIDs also triggers a
callback. The callback triggered by onRoleSmsChanged actually
not necessary and should be removed.

Flag: EXEMPT flagged with a kill switch
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.SatelliteAccessControllerTest \
      --update-device
Bug: 410731080

Change-Id: Ifc6aa8d6b798cca2bfc575f986a012c52ea75667

Junyu Lai   commited 2025-04-30 16:12:06 +08:00
f0e3d9b1d7
Improve naming for SatelliteAccessController
This is a no-op refactoring, which renames several methods and
variables to more accurately reflect their functionality and
follow the naming style.

Flag: EXEMPT flagged with a kill switch
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.SatelliteAccessControllerTest \
--update-device
Bug: 410731080

Change-Id: I84b9eca60f2b8543b8bdb7cf972103b79105e670

Junyu Lai   commited 2025-04-30 11:58:49 +08:00
b0b5dcf96e
Merge "Listen to onExternalApplicationsAvailable in SatelliteAccessController" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-04-28 06:37:49 -07:00
bc08a1ffcb
Listen to onExternalApplicationsAvailable in SatelliteAccessController
For maintaining constrained data satellite opt-in apps, this is
needed for tracking apps installed on the storage.

Flag: EXEMPT flagged with a kill switch
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.SatelliteAccessControllerTest \
  --update-device
Bug: 410731080
Change-Id: I2a686a5a37747de97dcee6b78f66965cb4fd9942

Junyu Lai   commited 2025-04-28 16:35:36 +08:00
63dbd3ec93
Update link properties early for VPN networks
When LinkProperties are updated after a private DNS configuration
is set in updateNetworkInfo(), particularly when private DNS mode
is set to opportunistic and the VPN server uses its own DNS
servers, this can cause the private DNS to use the underlying
network for TLS handshaking, potentially leading to a leak.
To fix this, adjusting the order of operations—setting the private
DNS configuration before updating LinkProperties should resolve
the issue. This ensures that private DNS validation occurs after
the VPN's network configuration is fully applied.

Bug: 274867806
Test: atest ConnectivityCoverageTests
Flag: EXEMPT legacy flag early_link_properties_update_for_vpn
Change-Id: If684b51e6522a8284d5baee8db0d2f767405d359

Paul Hu   commited 2025-04-28 01:16:25 -07:00
515efcf47d
Merge changes Iabc2fad0,I2078330b into main
* changes:
  Improve TestableNetworkOfferCallback
  Add a way to poll with a position for ReadHead

Jean Chalard   authored and   Android (Google) Code Review   commited 2025-04-27 23:25:04 -07:00
74dcb4637c
Merge "Add EthernetPort class" into main
Chuwei He   authored and   Android (Google) Code Review   commited 2025-04-27 22:56:01 -07:00
8e31d9d8e9
Merge changes I579b3cd9,Ib008e63c into main
* changes:
  Allow QuicConnectionCloser to close loopback QUIC connection
  Enable QUIC connection close by default in ConnectivityService

Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-04-27 22:20:38 -07:00
5ae058b9d4
Enable QUIC connection close by default in ConnectivityService
This feature will be controlled by the caller.
Cronet calls the register/unregisterQuicConnectionClosePayload APIs only
when the Chromium experiment flag is enabled
(http://crrev.com/c/6421621/).

This CL also updates testRegisterQuicConnectionClosePayload
to be skipped on U or older releases since FIREWALL_CHAIN_BACKGROUND is
supported on V or higher releases.

Flag: EXEMPT guarded by chromium flag
Bug: 311792075
Test: TH
Change-Id: Ib008e63c585cfe8775b25783cd55b0873bb5e2f0

Motomu Utsumi   commited 2025-04-28 12:52:58 +09:00
2ea5939672
Add EthernetPort class
This patch adds EthernetPort class which is used to track configuration
of ethernet networks internally.

Bug: 397536853
Test: atest ConnectivityCoverageTests:android.net.connectivity.
      com.android.server.ethernet.EthernetPortTest
Flag: EXEMPT mainline

Change-Id: Iba1c4461ae7d666aa31c076baa33c32c2c1f7603

Chuwei He   commited 2025-04-27 20:52:26 -07:00
8092ae7d29
Pipe the satellite network opt-in UIDs down to ConnectivityService
Flag: EXEMPT flagged with a kill switch
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.SatelliteAccessControllerTest \
  --update-device
Bug: 410731080
Change-Id: I76a57a3c42659b594cd541c55e0e179062461085

Junyu Lai   commited 2025-04-28 10:21:57 +08:00
2fd0d11db3
Improve TestableNetworkOfferCallback
Update it to follow the latest conventions and add support for
eventuallyExpect.

Test: ConnectivityCoverageTest
Flag: EXEMPT test-only change
Change-Id: Iabc2fad051b874e3e18a0645361409f0427891fb

Chalard Jean   commited 2025-04-27 15:54:34 +09:00
5f3997b6af
Enable the last preference tests
Now that it's easy to expect events out of order, these
tests can be implemented.

Test: CSPreferenceTest
Flag: EXEMPT test-only change
Change-Id: If07fb6c11345be09c0942fd1c4371e8e22a4c6ec

Chalard Jean   commited 2025-04-27 15:54:34 +09:00
d52096e1bb
Add a basic test for network preferences
Test: this
Flag: EXEMPT test-only code
Change-Id: Ibd2e5adf2a18821a05b6b3a7baa22d4d750ec14f

Chalard Jean   commited 2025-04-27 10:27:28 +09:00
957799c672
File the per-app request for opted-in satellite-optimized apps
Test: ConnectivityCoverageTest
Bug: 410731080
Flag: EXEMPT controlled in counter-part change ag/33220291
Change-Id: I0307f697a441c2810cafd4643d381e66a0ac9243

Chalard Jean   commited 2025-04-27 02:12:44 +09:00
76a60c1654
Merge "Maintain a set self-certified apps in SatelliteAccessController" into main
Junyu Lai   authored and   Android (Google) Code Review   commited 2025-04-24 22:48:53 -07:00
2f92579f8a
Maintain a set self-certified apps in SatelliteAccessController
This is needed for tracking the applications which opted-in to
use the constrained data satellite network as its default by
adding the following property to the <application> tag of its
manifest:
  <property
   android:name="android.telephony.PROPERTY_SATELLITE_DATA_OPTIMIZED"
   android:value="<package name>" />

Flag: EXEMPT flagged with a kill switch
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.SatelliteAccessControllerTest \
      --update-device
Bug: 410731080

Change-Id: I00c0ce5e0d7aac1192272e79a19fbab4e3a5e6f1

Junyu Lai   commited 2025-04-25 10:35:31 +08:00
fbe94c3b00
Merge "Add tests to verify OffloadEngine behaviors" into main
Paul Hu   authored and   Android (Google) Code Review   commited 2025-04-24 19:23:46 -07:00
66d60e5a90
Merge "Replace Message with related arguments in RealtimeScheduler" into main
Paul Hu   authored and   Android (Google) Code Review   commited 2025-04-24 19:06:40 -07:00
02af3afeee
Merge "Move package enumeration out of PermissionMonitor" into main
Junyu Lai   authored and   Android (Google) Code Review   commited 2025-04-23 22:43:39 -07:00
4aa806dc20
Merge changes Id6191d5a,I9ace3ed0,Ic79afc18 into main
* changes:
  Add light-weight DefferedBroadcastReceiver for handling broadcast events
  Move user intent reception out of SatelliteAccessController
  Move user/package intent reception out of PermissionMonitor

Jean Chalard   authored and   Android (Google) Code Review   commited 2025-04-23 21:50:19 -07:00
0d578113f7
Move package enumeration out of PermissionMonitor
The PackageManager#getInstallPackagesAsUser method is time
consuming (30~200ms) and blocks boot time while it executes.
This change moves the getInstallPackagesAsUser
method from PermissionMonitor. This is a performance-focused
refactoring to allow for efficient sharing of package enumeration
results in subsequent changes, avoiding redundant time-consuming
operations.

Flag: EXEMPT refactor
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.SatelliteAccessControllerTest \
      ConnectivityCoverageTests: android.net.connectivity.com.android.server.ConnectivityServiceTest
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.PermissionMonitorTest \
      ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.BroadcastReceiveHelperTest \
      --update-device
Bug: 410731080
Change-Id: I3929fa28ff9419329622f3abdf10336289730607

Junyu Lai   commited 2025-04-24 11:43:11 +08:00
830b579081
Add light-weight DefferedBroadcastReceiver for handling broadcast events
This commit introduces the DeferredBroadcastReceiver class, which
defers received Intent handling using a Handler. It prevents
Application Not Responding (ANR) errors by offloading potentially
time-consuming or blocking operations triggered by broadcast
event handling, even if `onReceive` takes a long time on the
handler thread.

Flag: EXEMPT refactor
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.PermissionMonitorTest \
      ConnectivityCoverageTests:android.net.connectivity.com.android.server.ConnectivityServiceTest \
      ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.BroadcastReceiveHelperTest \
      --update-device
Bug: 410731080
Change-Id: Id6191d5ad9ae9f17fca3236110573340aa713048

Junyu Lai   commited 2025-04-24 10:50:44 +08:00
244f3e3df2
Move user intent reception out of SatelliteAccessController
This is a no-op refactoring that moves the reception of
user-related intents in SatelliteAccessController to
ConnectivityService.
It then dispatches these events to the SatelliteAccessController.

Flag: EXEMPT refactor
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.SatelliteAccessControllerTest \
  ConnectivityCoverageTests:android.net.connectivity.com.android.server.ConnectivityServiceTest
Bug: 410731080
Change-Id: I9ace3ed09a161446dc92d40bc0d400e32051de32

Junyu Lai   commited 2025-04-24 10:50:44 +08:00
b14633ea2f
Move user/package intent reception out of PermissionMonitor
This is a no-op refactoring that moves the reception of
package and user-related intents in PermissionMonitor to
BroadcastReceiveHelper.
It then dispatches these events to the PermissionMonitor.
This change is necessary to centralize intent receivers
from other subclasses to ConnectivityService in
subsequent modifications.

This reverts the design change introduced in aosp/2183343, which
had PermissionMonitor listening to user change events instead
of ConnectivityService.

Flag: EXEMPT refactor
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.PermissionMonitorTest \
      ConnectivityCoverageTests:android.net.connectivity.com.android.server.ConnectivityServiceTest \
      ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.BroadcastReceiveHelperTest \
      --update-device
Bug: 410731080
Change-Id: Ic79afc18a6e8603ddf8d48a1f78cf8d98f2447ae

Junyu Lai   commited 2025-04-24 10:50:44 +08:00
8b1fe1976b
Add tests to verify OffloadEngine behaviors
Bug: 410734687
Test: atest ConnectivityCoverageTests
Flag: EXEMPT test only update
Change-Id: If7a15e181a185e4c1a55b252d57d7f464aa6baac

Paul Hu   commited 2025-04-24 02:44:15 +00:00
7a8f4b9da5
Improve the tests for the fallback network shell command.
- Also verify the netd operations that add and remove UID ranges.
- Don't set the network to keep connected, since that is not
  representative of what happens on a real device.

Test: test-only change
Bug: 410731080
Flag: TEST_ONLY
Change-Id: Ib4305748b5f1627546b7a63fb9596308b14155e0

Lorenzo Colitti   commited 2025-04-23 12:03:57 +09:00
c9baec4101
Add a shell command to set an app's fallback default network.
This adds two new shell commands to ConnectivityService that sets
a given UID to fall back to a given transport type if there is no
system default network. The syntax is:

  cmd connectivity set-debug-fallback-network-for-uid <uid> <transport>
  cmd connectivity clear-debug-fallback-network-for-uid <uid>

This works only on debug builds and should be used only for
manual testing.

Test: none yet
Bug: 410731080
Flag: TEST_ONLY
Change-Id: I9e0ac0713dbb95e59b22faa7cd45bdc8c1070f08

Lorenzo Colitti   commited 2025-04-22 22:46:34 +09:00
4a8e41d2ae
Simplify and correct isNetworkPotentialSatisfier.
This makes the code clearer, and also fixes a bug: currently, a
TRACK_DEFAULT request in a multilayer request can cause a network
to remain needed. This is incorrect: only requests should be able
to keep a network up.

This prevents satellite networking from disconnecting when the
default network reappears (see changes in unit test).

This CL removes the code before the loop that special-cases
non-multilayer listens because it is not very useful. Any
non-multilayer listen will either:
- Immediately return false, if it's the active request, or:
- Cause the code to continue (because it's not the active
  request), and because mRequests only has one element, will
  hit the "return false" statement after the loop.

Flag: EXEMPT bug fix
Test: covered by existing tests
Change-Id: I7295ce469335af924aa20b7976cc4a9136ef5d61

Lorenzo Colitti   commited 2025-04-22 22:02:40 +09:00
dd577efdde
Add a test for NetworkCallbacks for fallback satellite networks.
Bug: 410731080
Flag: TEST_ONLY
Test: test-only change
Change-Id: If74f461bca2bc34b1defa841e05237849f4c1c4a

Lorenzo Colitti   commited 2025-04-22 22:01:59 +09:00
eda7af89fe
Replace Message with related arguments in RealtimeScheduler
This change ensures that the Message object is created and
obtained within RealtimeScheduler, preventing modification
by the caller.

Fix: 386274963
Test: atest ConnectivityCoverageTests NetworkStaticLibTests
Flag: EXEMPT bug fix
Change-Id: I4c919857bcaa2d49717859dca9c88a243cbb7a41

Paul Hu   commited 2025-04-22 01:45:13 -07:00
1dea0d630e
Merge "Ignore IPv6 temporary addresses in mDNS advertising." into main
Yuyang Huang   authored and   Android (Google) Code Review   commited 2025-04-21 00:48:54 -07:00
6df77e382d
Ignore IPv6 temporary addresses in mDNS advertising.
This commit modifies the mDNS advertising process to ignore IPv6
temporary addresses. These addresses are ephemeral and can lead to large
advertising packets and negatively impact mDNS offload(as RAM for doing
mDNS offload is limited), especially on devices with long internet
connections and multiple temporary addresses.  Ignoring them provides a
more stable and efficient mDNS advertising
experience.

Flag: EXEMPT mainline
Test: TH
Change-Id: I79c7f331eb29ecdd7ade4ccde1d1a22d0dbf1400

Yuyang Huang   commited 2025-04-21 14:57:12 +09:00
2184846d35
Merge "Update enforceMeteredApnPolicy to follow the compat flag" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-04-20 22:15:06 -07:00
2c8f7b5608