blob: f30abc6b0b343490fe3e5f57fafc89af0434670d [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2021 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<!-- Configuration values for ConnectivityService
DO NOT EDIT THIS FILE for specific device configuration; instead, use a Runtime Resources
Overlay package following the overlayable.xml configuration in the same directory:
https://source.android.com/devices/architecture/rros -->
<resources>
<!-- Configuration hook for the URL returned by ConnectivityManager#getCaptivePortalServerUrl.
If empty, the returned value is controlled by Settings.Global.CAPTIVE_PORTAL_HTTP_URL,
and if that value is empty, the framework will use a hard-coded default.
This is *NOT* a URL that will always be used by the system network validation to detect
captive portals: NetworkMonitor may use different strategies and will not necessarily use
this URL. NetworkMonitor behaviour should be configured with NetworkStack resource overlays
instead. -->
<!--suppress CheckTagEmptyBody -->
<string translatable="false" name="config_networkCaptivePortalServerUrl"></string>
<!-- The maximum duration (in milliseconds) we expect a network transition to take -->
<integer name="config_networkTransitionTimeout">60000</integer>
<!-- Configuration of network interfaces that support WakeOnLAN -->
<string-array translatable="false" name="config_wakeonlan_supported_interfaces">
<!--
<item>wlan0</item>
<item>eth0</item>
-->
</string-array>
<string-array translatable="false" name="config_legacy_networktype_restore_timers">
<item>2,60000</item><!-- mobile_mms -->
<item>3,60000</item><!-- mobile_supl -->
<item>4,60000</item><!-- mobile_dun -->
<item>5,60000</item><!-- mobile_hipri -->
<item>10,60000</item><!-- mobile_fota -->
<item>11,60000</item><!-- mobile_ims -->
<item>12,60000</item><!-- mobile_cbs -->
</string-array>
<!-- Default supported concurrent socket keepalive slots per transport type, used by
ConnectivityManager.createSocketKeepalive() for calculating the number of keepalive
offload slots that should be reserved for privileged access. This string array should be
overridden by the device to present the capability of creating socket keepalives. -->
<!-- An Array of "[NetworkCapabilities.TRANSPORT_*],[supported keepalives] -->
<string-array translatable="false" name="config_networkSupportedKeepaliveCount">
<item>0,1</item>
<item>1,3</item>
</string-array>
<!-- Reserved privileged keepalive slots per transport. -->
<integer translatable="false" name="config_reservedPrivilegedKeepaliveSlots">2</integer>
<!-- Allowed unprivileged keepalive slots per uid. -->
<integer translatable="false" name="config_allowedUnprivilegedKeepalivePerUid">2</integer>
<!-- Default value for ConnectivityManager.getMultipathPreference() on metered networks. Actual
device behaviour is controlled by the metered multipath preference in
ConnectivitySettingsManager. This is the default value of that setting. -->
<integer translatable="false" name="config_networkMeteredMultipathPreference">0</integer>
<!-- Whether the device should automatically switch away from Wi-Fi networks that lose
Internet access. Actual device behaviour is controlled by
Settings.Global.NETWORK_AVOID_BAD_WIFI. This is the default value of that setting. -->
<integer translatable="false" name="config_networkAvoidBadWifi">1</integer>
<!-- Whether the device should actively prefer bad wifi to good cell on Android 12/13.
This setting only makes sense if the system is configured not to avoid bad wifis
(config_networkAvoidBadWifi=0 and Settings.Global.NETWORK_AVOID_BAD_WIFI=IGNORE
or PROMPT), otherwise it's not used.
On Android 12 and 13, if this is 0, when ranking a bad wifi that never validated against
validated mobile data, the system will prefer mobile data. It will prefer wifi if wifi
loses validation later. This is the default behavior up to Android 13.
This behavior avoids the device losing internet access when walking past a wifi network
with no internet access.
If this is 1, then in the same scenario, the system will prefer mobile data until the wifi
completes its first validation attempt (or the attempt times out), and after that it
will prefer the wifi even if it doesn't provide internet access, unless there is a captive
portal on that wifi.
On Android 14 and above, the behavior is always like 1, regardless of the value of this
setting. -->
<integer translatable="false" name="config_activelyPreferBadWifi">0</integer>
<!-- Array of ConnectivityManager.TYPE_xxxx constants for networks that may only
be controlled by systemOrSignature apps. -->
<integer-array translatable="false" name="config_protectedNetworks">
<item>10</item>
<item>11</item>
<item>12</item>
<item>14</item>
<item>15</item>
</integer-array>
<!-- Whether the internal vehicle network should remain active even when no
apps requested it. -->
<bool name="config_vehicleInternalNetworkAlwaysRequested">false</bool>
<!-- If the hardware supports specially marking packets that caused a wakeup of the
main CPU, set this value to the mark used. -->
<integer name="config_networkWakeupPacketMark">0</integer>
<!-- Mask to use when checking skb mark defined in config_networkWakeupPacketMark above. -->
<integer name="config_networkWakeupPacketMask">0</integer>
<!-- Whether/how to notify the user on network switches. See LingerMonitor.java. -->
<integer translatable="false" name="config_networkNotifySwitchType">0</integer>
<!-- What types of network switches to notify. See LingerMonitor.java. -->
<string-array translatable="false" name="config_networkNotifySwitches">
</string-array>
<!-- Whether to use an ongoing notification for signing in to captive portals, instead of a
notification that can be dismissed. -->
<bool name="config_ongoingSignInNotification">false</bool>
<!-- Whether to cancel network notifications automatically when tapped -->
<bool name="config_autoCancelNetworkNotifications">true</bool>
<!-- Configuration to let OEMs customize what to do when :
• Partial connectivity is detected on the network
• No internet is detected on the network, and
- the network was explicitly selected
- the system is configured to actively prefer bad wifi (see config_activelyPreferBadWifi)
The default behavior (false) is to post a notification with a PendingIntent so
the user is informed and can act if they wish.
Making this true instead will have the system fire the intent immediately instead
of showing a notification. OEMs who do this should have some intent receiver
listening to the intent and take the action they prefer (e.g. show a dialog,
show a customized notification etc). -->
<bool name="config_notifyNoInternetAsDialogWhenHighPriority">false</bool>
<!-- When showing notifications indicating partial connectivity, display the same notifications
as no connectivity instead. This may be easier to understand for users but offers less
details on what is happening. -->
<bool name="config_partialConnectivityNotifiedAsNoInternet">false</bool>
<!-- Whether the cell radio of the device is capable of timesharing.
Whether the cell radio is capable of timesharing between two different networks
even for a few seconds. When this is false, the networking stack will ask telephony
networks to disconnect immediately, instead of lingering, when outscored by some
other telephony network (typically on another subscription). This deprives apps
of a chance to gracefully migrate to the new network and degrades the experience
for apps, so it should only be set to false when timesharing on the cell radio has
extreme adverse effects on performance of the new network.
-->
<bool translatable="false" name="config_cellular_radio_timesharing_capable">true</bool>
<!-- Configure ethernet tcp buffersizes in the form:
rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max -->
<string translatable="false" name="config_ethernet_tcp_buffers">524288,1048576,3145728,524288,1048576,2097152</string>
<!-- Configuration of Ethernet interfaces in the following format:
<interface name|mac address>;[Network Capabilities];[IP config];[Override Transport]
Where
[Network Capabilities] Optional. A comma separated list of network capabilities.
Values must be from NetworkCapabilities#NET_CAPABILITY_* constants.
The NOT_ROAMING, NOT_CONGESTED and NOT_SUSPENDED capabilities are always
added automatically because this configuration provides no way to update
them dynamically.
[IP config] Optional. If empty or not specified - DHCP will be used, otherwise
use the following format to specify static IP configuration:
ip=<ip-address/mask> gateway=<ip-address> dns=<comma-sep-ip-addresses>
domains=<comma-sep-domains>
[Override Transport] Optional. An override network transport type to allow
the propagation of an interface type on the other end of a local Ethernet
interface. Value must be from NetworkCapabilities#TRANSPORT_* constants. If
left out, this will default to TRANSPORT_ETHERNET.
-->
<string-array translatable="false" name="config_ethernet_interfaces">
<!--
<item>eth1;12,13,14,15;ip=192.168.0.10/24 gateway=192.168.0.1 dns=4.4.4.4,8.8.8.8</item>
<item>eth2;;ip=192.168.0.11/24</item>
<item>eth3;12,13,14,15;ip=192.168.0.12/24;1</item>
-->
</string-array>
<!-- Regex of wired ethernet ifaces -->
<string translatable="false" name="config_ethernet_iface_regex">eth\\d</string>
<!-- Ignores Wi-Fi validation failures after roam.
If validation fails on a Wi-Fi network after a roam to a new BSSID,
assume that the roam temporarily disrupted network connectivity, and
ignore all failures until this time has passed.
NetworkMonitor will continue to attempt validation, and if it fails after this time has passed,
the network will be marked unvalidated.
Only supported up to S. On T+, the Wi-Fi code should use unregisterAfterReplacement in order
to ensure that apps see the network disconnect and reconnect. -->
<integer translatable="false" name="config_validationFailureAfterRoamIgnoreTimeMillis">-1</integer>
<!-- Whether the network stats service should run compare on the result of
{@link NetworkStatsDataMigrationUtils#readPlatformCollection} and the result
of reading from legacy recorders. Possible values are:
0 = never compare,
1 = always compare,
2 = compare on debuggable builds (default value)
-->
<integer translatable="false" name="config_netstats_validate_import">2</integer>
</resources>