1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (C) 2020 The Android Open Source Project
3
4     Licensed under the Apache License, Version 2.0 (the "License");
5     you may not use this file except in compliance with the License.
6     You may obtain a copy of the License at
7
8          http://www.apache.org/licenses/LICENSE-2.0
9
10     Unless required by applicable law or agreed to in writing, software
11     distributed under the License is distributed on an "AS IS" BASIS,
12     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13     See the License for the specific language governing permissions and
14     limitations under the License.
15-->
16<resources>
17    <!--
18    OEMs that wish to change the below settings must do so via a runtime resource overlay package
19    and *NOT* by changing this file. This file is part of the tethering mainline module.
20    TODO: define two resources for each config item: a default_* resource and a config_* resource,
21    config_* is empty by default but may be overridden by RROs.
22    -->
23    <!-- List of regexpressions describing the interface (if any) that represent tetherable
24         USB interfaces.  If the device doesn't want to support tethering over USB this should
25         be empty.  An example would be "usb.*" -->
26    <string-array translatable="false" name="config_tether_usb_regexs">
27        <item>"usb\\d"</item>
28        <item>"rndis\\d"</item>
29    </string-array>
30
31    <!-- List of regexpressions describing the interface (if any) that represent tetherable
32         NCM interfaces.  If the device doesn't want to support tethering over NCM this should
33         be empty. -->
34    <string-array translatable="false" name="config_tether_ncm_regexs">
35    </string-array>
36
37    <!-- List of regexpressions describing the interface (if any) that represent tetherable
38         Wifi interfaces.  If the device doesn't want to support tethering over Wifi this
39         should be empty.  An example would be "softap.*" -->
40    <string-array translatable="false" name="config_tether_wifi_regexs">
41        <item>"wlan\\d"</item>
42        <item>"softap\\d"</item>
43    </string-array>
44
45    <!-- List of regexpressions describing the interface (if any) that represent tetherable
46         WiGig interfaces.  If the device doesn't want to support tethering over WiGig this
47         should be empty.  An example would be "wigig\\d" -->
48    <string-array translatable="false" name="config_tether_wigig_regexs">
49        <item>"wigig\\d"</item>
50    </string-array>
51
52    <!-- List of regexpressions describing the interface (if any) that represent tetherable
53         Wifi P2P interfaces.  If the device doesn't want to support tethering over Wifi P2p this
54         should be empty.  An example would be "p2p-p2p.*" -->
55    <string-array translatable="false" name="config_tether_wifi_p2p_regexs">
56    </string-array>
57
58    <!-- List of regexpressions describing the interface (if any) that represent tetherable
59         bluetooth interfaces.  If the device doesn't want to support tethering over bluetooth this
60         should be empty. -->
61    <string-array translatable="false" name="config_tether_bluetooth_regexs">
62        <item>"bt-pan"</item>
63    </string-array>
64
65    <!-- Use the BPF offload for tethering when the kernel has support. True by default.
66         If the device doesn't want to support tether BPF offload, this should be false.
67         Note that this setting could be overridden by device config.
68    -->
69    <bool translatable="false" name="config_tether_enable_bpf_offload">true</bool>
70
71    <!-- Use the old dnsmasq DHCP server for tethering instead of the framework implementation. -->
72    <bool translatable="false" name="config_tether_enable_legacy_dhcp_server">false</bool>
73
74    <!-- Dhcp range (min, max) to use for tethering purposes -->
75    <string-array translatable="false" name="config_tether_dhcp_range">
76    </string-array>
77
78    <!-- Used to config periodic polls tether offload stats from tethering offload HAL to make the
79     data warnings work. 5000(ms) by default. If the device doesn't want to poll tether
80     offload stats, this should be -1. Note that this setting could be override by
81     runtime resource overlays.
82    -->
83    <integer translatable="false" name="config_tether_offload_poll_interval">5000</integer>
84
85    <!-- Array of ConnectivityManager.TYPE_{BLUETOOTH, ETHERNET, MOBILE, MOBILE_DUN, MOBILE_HIPRI,
86         WIFI} values allowable for tethering.
87
88         Common options are [1, 4] for TYPE_WIFI and TYPE_MOBILE_DUN or
89         [1,7,0] for TYPE_WIFI, TYPE_BLUETOOTH, and TYPE_MOBILE.
90
91         This list is also modified by code within the framework, including:
92
93             - TYPE_ETHERNET (9) is prepended to this list, and
94
95             - the return value of TelephonyManager.isTetheringApnRequired()
96               determines how the array is further modified:
97
98                   * TRUE (DUN REQUIRED).
99                     TYPE_MOBILE is removed (if present).
100                     TYPE_MOBILE_HIPRI is removed (if present).
101                     TYPE_MOBILE_DUN is appended (if not already present).
102
103                   * FALSE (DUN NOT REQUIRED).
104                     TYPE_MOBILE_DUN is removed (if present).
105                     If both of TYPE_MOBILE{,_HIPRI} are not present:
106                        TYPE_MOBILE is appended.
107                        TYPE_MOBILE_HIPRI is appended.
108
109         For other changes applied to this list, now and in the future, see
110         com.android.networkstack.tethering.TetheringConfiguration.
111
112         Note also: the order of this is important. The first upstream type
113         for which a satisfying network exists is used.
114    -->
115    <integer-array translatable="false" name="config_tether_upstream_types">
116    </integer-array>
117
118    <!-- When true, the tethering upstream network follows the current default
119         Internet network (except when the current default network is mobile,
120         in which case a DUN network will be used if required).
121
122         When true, overrides the config_tether_upstream_types setting above.
123    -->
124    <bool translatable="false" name="config_tether_upstream_automatic">true</bool>
125
126
127    <!-- If the mobile hotspot feature requires provisioning, a package name and class name
128         can be provided to launch a supported application that provisions the devices.
129         EntitlementManager will send an intent to Settings with the specified package name and
130         class name in extras to launch provision app.
131         TODO: note what extras here.
132
133         See EntitlementManager#runUiTetherProvisioning and
134         packages/apps/Settings/src/com/android/settings/network/TetherProvisioningActivity.java
135         for more details.
136
137         For ui-less/periodic recheck support see config_mobile_hotspot_provision_app_no_ui
138        -->
139    <!-- The first element is the package name and the second element is the class name
140         of the provisioning app -->
141    <string-array translatable="false" name="config_mobile_hotspot_provision_app">
142    <!--
143        <item>com.example.provisioning</item>
144        <item>com.example.provisioning.Activity</item>
145    -->
146    </string-array>
147
148    <!-- If the mobile hotspot feature requires provisioning, an action can be provided
149         that will be broadcast in non-ui cases for checking the provisioning status.
150         EntitlementManager will pass the specified name to Settings and Settings would
151         launch provisioning app by sending an intent with the package name.
152
153         A second broadcast, action defined by config_mobile_hotspot_provision_response,
154         will be sent back to notify if provisioning succeeded or not.  The response will
155         match that of the activity in config_mobile_hotspot_provision_app, but instead
156         contained within the int extra "EntitlementResult".
157         TODO: provide the system api for "EntitlementResult" extra and note it here.
158
159         See EntitlementManager#runSilentTetherProvisioning and
160         packages/apps/Settings/src/com/android/settings/wifi/tether/TetherService.java for more
161         details.
162        -->
163    <string translatable="false" name="config_mobile_hotspot_provision_app_no_ui"></string>
164
165    <!-- Sent in response to a provisioning check. The caller must hold the
166         permission android.permission.TETHER_PRIVILEGED for Settings to
167         receive this response.
168
169         See config_mobile_hotspot_provision_response
170         -->
171    <string translatable="false" name="config_mobile_hotspot_provision_response"></string>
172
173    <!-- Number of hours between each background provisioning call -->
174    <integer translatable="false" name="config_mobile_hotspot_provision_check_period">24</integer>
175
176    <!-- ComponentName of the service used to run no ui tether provisioning. -->
177    <string translatable="false" name="config_wifi_tether_enable">com.android.settings/.wifi.tether.TetherService</string>
178
179    <!-- No upstream notification is shown when there is a downstream but no upstream that is able
180         to do the tethering. -->
181    <!-- Delay(millisecond) to show no upstream notification after there's no Backhaul. Set delay to
182         "-1" for disable this feature. -->
183    <integer name="delay_to_show_no_upstream_after_no_backhaul">-1</integer>
184
185    <!-- Cellular roaming notification is shown when upstream is cellular network and in roaming
186         state. -->
187    <!-- Config for showing upstream roaming notification. -->
188    <bool name="config_upstream_roaming_notification">false</bool>
189</resources>
190