Merge "Disable non-thread local network matching" into main

This commit is contained in:
Treehugger Robot 2025-03-21 08:08:56 -07:00 • committed by Gerrit Code Review
commit e0051cdeb9

View file

@ -121,6 +121,7 @@ import static android.net.NetworkScore.POLICY_TRANSPORT_PRIMARY;
import static android.net.OemNetworkPreferences.OEM_NETWORK_PREFERENCE_TEST;
import static android.net.OemNetworkPreferences.OEM_NETWORK_PREFERENCE_TEST_ONLY;
import static android.net.connectivity.ConnectivityCompatChanges.ENABLE_MATCH_LOCAL_NETWORK;
import static android.net.connectivity.ConnectivityCompatChanges.ENABLE_MATCH_NON_THREAD_LOCAL_NETWORKS;
import static android.net.connectivity.ConnectivityCompatChanges.ENABLE_SELF_CERTIFIED_CAPABILITIES_DECLARATION;
import static android.net.connectivity.ConnectivityCompatChanges.NETWORK_BLOCKED_WITHOUT_INTERNET_PERMISSION;
import static android.os.Process.INVALID_UID;
@ -1473,6 +1474,10 @@ public class ConnectivityService extends IConnectivityManager.Stub {
return SdkLevel.isAtLeastV();
}
public boolean isAtLeastB() {
return SdkLevel.isAtLeastB();
}
/**
* Get system properties to use in ConnectivityService.
*/
@ -3186,6 +3191,11 @@ public class ConnectivityService extends IConnectivityManager.Stub {
}
private void maybeDisableLocalNetworkMatching(NetworkCapabilities nc, int callingUid) {
// If disabled, NetworkRequest cannot match non-thread local networks even if
// specified explicitly. Compat change is enabled by default on apps targeting B+.
// Agent should not be visible on U- even if it's rolled out.
nc.setMatchNonThreadLocalNetworks(mDeps.isAtLeastV() && mDeps.isChangeEnabled(
ENABLE_MATCH_NON_THREAD_LOCAL_NETWORKS, callingUid));
if (mDeps.isChangeEnabled(ENABLE_MATCH_LOCAL_NETWORK, callingUid)) {
return;
}