| <?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> |
| |
| <!-- An array of priorities of service types for services to be offloaded via |
| NsdManager#registerOffloadEngine. |
| Format is [priority int]:[service type], for example: "0:_testservice._tcp" |
| --> |
| <string-array translatable="false" name="config_nsdOffloadServicesPriority"> |
| </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. Network interfaces that match this regex will be tracked |
| by ethernet service. |
| If set to "*", ethernet service uses "(eth|usb)\\d+" on Android V+ and eth\\d+ on |
| Android T and U. --> |
| <string translatable="false" name="config_ethernet_iface_regex">*</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> |