blob: 6094848faded9a6fd3e8ea9bf0409c8273ce432f [file] [log] [blame]
keunyoung5c7cb262015-10-19 10:47:45 -07001<?xml version="1.0" encoding="utf-8"?>
2<!--
3/*
4** Copyright 2015, The Android Open Source Project
5**
6** Licensed under the Apache License, Version 2.0 (the "License");
7** you may not use this file except in compliance with the License.
8** You may obtain a copy of the License at
9**
10** http://www.apache.org/licenses/LICENSE-2.0
11**
12** Unless required by applicable law or agreed to in writing, software
13** distributed under the License is distributed on an "AS IS" BASIS,
14** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15** See the License for the specific language governing permissions and
16** limitations under the License.
17*/
18-->
19
20<!-- Resources to configure car service based on each OEM's preference. -->
21
22<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
Peter Li6e2fb4a2019-08-14 18:57:15 -070023
Keun-young Park6eab4de2016-03-31 19:53:02 -070024 <!-- Configuration to enable usage of dynamic audio routing. If this is set to false,
25 dynamic audio routing is disabled and audio works in legacy mode. It may be useful
26 during initial development where audio hal does not support bus based addressing yet. -->
Hongwei Wangf2219ff2018-02-21 10:21:25 -080027 <bool name="audioUseDynamicRouting">false</bool>
Hongwei Wang56a51632018-12-03 14:38:50 -080028
Hongwei Wang3a578002018-05-31 13:11:03 -070029 <!-- Configuration to persist master mute state. If this is set to true,
30 Android will restore the master mute state on boot. -->
31 <bool name="audioPersistMasterMuteState">true</bool>
Keun-young Park3cb89102016-05-05 13:16:03 -070032 <!-- Whether to block other audio while media audio is muted with display off. When set to true,
33 other sounds cannot be played either while display is off. If false, only media is muted
34 and other sounds can be still played. -->
35 <bool name="displayOffMuteLockAllAudio">true</bool>
Vitalii Tomkive836ac32016-04-05 17:26:41 -070036
Sal Savage703c46f2019-04-15 08:39:25 -070037 <!-- Configuration to enable or disable the default Bluetooth Device Connection Policy. This
38 policy determines when to initiate device connections, but does not control the actual
39 connection process. Disable this default to implement your own policy. -->
40 <bool name="useDefaultBluetoothConnectionPolicy">true</bool>
41
Yao, Yuxingdade0d22019-05-22 14:30:11 -070042 <string name="inputService" translatable="false">android.car.input.service/.DefaultInputService</string>
Keun-young Parka28d7b22016-02-29 16:54:29 -080043
Peter Lib64f88d2019-05-22 18:13:05 -070044 <!-- Service responsible for displaying information on the car instrument cluster. -->
45 <string name="instrumentClusterRendererService" translatable="false">android.car.cluster/.ClusterRenderingService</string>
Keun-young Park4727da32016-05-31 10:00:51 -070046
Enrico Granata9a916d72017-09-19 14:33:08 -070047 <!-- Whether to enable Activity blocking for safety. When Activity blocking is enabled,
Keun-young Park4727da32016-05-31 10:00:51 -070048 only whitelisted safe Activities will be allowed while car is not parked. -->
49 <bool name="enableActivityBlockingForSafety">true</bool>
50 <!-- Activity to be presented when un-safe activity is launched. Take a look at the javadoc of the
51 default implementation. -->
Yao, Yuxingdade0d22019-05-22 14:30:11 -070052 <string name="activityBlockingActivity" translatable="false">com.android.car/com.android.car.pm.ActivityBlockingActivity</string>
Ram Periathiruvadi2d536c32018-05-23 12:22:11 -070053 <!-- Comma separated list of activities that need to be exempted from getting
54 blocked in a UX restricted state.
55 Format of each entry is either to specify package name to whitelist the whole package or
56 use format of "packagename/activity_classname" for tagging each activities.
Yao, Yuxing4c3b93c2019-02-20 09:00:01 -080057 For general guidelines to design distraction optimized apps, please refer
58 to Android Auto Driver Distraction Guidelines. -->
Yao, Yuxingdade0d22019-05-22 14:30:11 -070059 <string name="activityWhitelist" translatable="false"></string>
Yao, Yuxing4c3b93c2019-02-20 09:00:01 -080060 <!-- Comma separated list of activities that need to be exempted from getting
61 blocked in a UX restricted state.
62 Format of each entry is either to specify package name to whitelist the whole package or
63 use format of "packagename/activity_classname" for tagging each activities.
Ram Periathiruvadi2d536c32018-05-23 12:22:11 -070064 The current implementations expects the following system packages/activities to be
65 whitelisted. For general guidelines to design distraction optimized apps, please refer
66 to Android Auto Driver Distraction Guidelines. -->
Jordan Jozwiak5e76edf2020-01-06 17:13:13 -080067 <string name="systemActivityWhitelist" translatable="false">com.android.systemui,com.google.android.permissioncontroller/com.android.packageinstaller.permission.ui.GrantPermissionsActivity,com.android.permissioncontroller/com.android.packageinstaller.permission.ui.GrantPermissionsActivity,android/com.android.internal.app.ResolverActivity,com.android.mtp/com.android.mtp.ReceiverActivity,com.android.server.telecom/com.android.server.telecom.components.UserCallActivity</string>
Ram Periathiruvadi46a3a3d2018-03-23 16:58:32 -070068 <!-- Comma separated list of activities that will be blocked during restricted state.
69 Format of each entry is either to specify package name to whitelist the whole package
70 or use format of "packagename/activity_classname" for tagging each activities.-->
Yao, Yuxingdade0d22019-05-22 14:30:11 -070071 <string name="activityBlacklist" translatable="false"></string>
Ram Periathiruvadid937c322018-06-13 12:28:12 -070072 <!-- List of play store package names that are allowed sources of app installation-->
Yao, Yuxingdade0d22019-05-22 14:30:11 -070073 <string-array translatable="false" name="allowedAppInstallSources">
Ram Periathiruvadid937c322018-06-13 12:28:12 -070074 </string-array>
Yao Chenb982e642016-10-13 14:22:56 -070075 <!-- Default home activity -->
Yao, Yuxingdade0d22019-05-22 14:30:11 -070076 <string name="defaultHomeActivity" translatable="false"><!--com.your.package/com.your.package.Activity--></string>
Mark Tabryb588d2e2019-09-12 10:50:11 -070077 <!-- The vendor-defined HAL property used to collect VMS client metrics. Disabled by default.-->
78 <integer name="vmsHalClientMetricsProperty">0</integer>
Mark Tabrya8fce562019-01-16 16:24:01 -080079 <!-- The com.android.car.vms.VmsClientManager will bind to this list of clients running as system user -->
80 <string-array translatable="false" name="vmsPublisherSystemClients">
81 </string-array>
82 <!-- The com.android.car.vms.VmsClientManager will bind to this list of clients running as current user -->
83 <string-array translatable="false" name="vmsPublisherUserClients">
Antonio Cortes6b3544c2017-02-06 16:54:58 -080084 </string-array>
Asaf Rosenfeldf12116d2018-04-20 14:57:25 -070085 <!-- Number of milliseconds to wait before trying re-bind to a crashed publisher. -->
86 <integer name="millisecondsBeforeRebindToVmsPublisher">10000</integer>
87
Enrico Granata9c1f2722017-09-21 17:19:04 -070088 <!-- Hours of uptime (excluding sleep) after which a 1% increase in the wear of the flash
89 storage in the head-unit is considered as acceptable level of wear. -->
90 <integer name="acceptableHoursPerOnePercentFlashWear">70</integer>
91
92 <!-- How often (in hours of uptime excluding sleep) CarService will flush to disk information
93 about the total running time of the head-unit. A shutdown or reboot of the head-unit
94 will always cause a flush of the uptime information, regardless of this setting. -->
95 <integer name="uptimeHoursIntervalBetweenUptimeDataWrite">5</integer>
Enrico Granata3a1e6262017-09-29 12:07:44 -070096
97 <!-- The name of an activity to be launched by CarService whenever it detects a change in the
98 level of wear of the flash storage. Value must either be an empty string, which means that
99 no activity shall be launched, or must be in the format of a flattened ComponentName and
100 reference a valid activity. It is strongly recommended that the chosen activity be
101 protected with the android.car.permission.STORAGE_MONITORING permission. -->
Yao, Yuxingdade0d22019-05-22 14:30:11 -0700102 <string name="activityHandlerForFlashWearChanges" translatable="false">com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity</string>
Enrico Granata3346ed82017-11-02 13:40:45 -0700103
104 <!-- How often (in seconds) CarService will update I/O metrics from the kernel. -->
105 <integer name="ioStatsRefreshRateSeconds">60</integer>
Enrico Granata0f72b742017-11-02 18:26:41 -0700106
107 <!-- The number of I/O metrics samples to keep in memory at one time.
108 The system will keep a sliding window of samples of this size, and allow
Enrico Granata88d92c82017-11-30 16:47:15 -0800109 retrieval of activity this many sample windows back in time. Setting this to
110 0 means no samples will be collected, effectively disabling I/O metric collection. -->
Pavel Maltsevf4b375e2018-04-30 10:16:26 -0700111 <integer name="ioStatsNumSamplesToStore">15</integer>
Enrico Granata43024de2017-11-16 17:09:37 -0800112
113 <!-- The maximum number of KB (1024 bytes) that can be written to storage in one sample
Enrico Granataafe7f302017-11-28 14:18:37 -0800114 before CarService deems I/O activity excessive. A simple way to set this value
115 is - given the total writable amount (storage size * P/E cycles) - to make
116 reasonable assumptions about the expected lifetime of the vehicle and the average
117 daily driving time, and use that to allocate a per-sample budget. -->
Pavel Maltsevf4b375e2018-04-30 10:16:26 -0700118 <integer name="acceptableWrittenKBytesPerSample">115000</integer>
Enrico Granata43024de2017-11-16 17:09:37 -0800119 <!-- The maximum number of fsync() system calls that can be made in one sample before
120 CarService deems I/O activity excessive. -->
Pavel Maltsevf4b375e2018-04-30 10:16:26 -0700121 <integer name="acceptableFsyncCallsPerSample">150</integer>
Enrico Granata43024de2017-11-16 17:09:37 -0800122
123 <!-- The maximum number of samples (within an I/O stats sample window) that CarService
124 should consider exhibiting excessive I/O activity before broadcasting an intent
125 to signal the potential for flash wear. -->
Pavel Maltsevf4b375e2018-04-30 10:16:26 -0700126 <integer name="maxExcessiveIoSamplesInWindow">11</integer>
Enrico Granata43024de2017-11-16 17:09:37 -0800127
128 <!-- The name of an intent to be notified by CarService whenever it detects too many
129 samples with excessive I/O activity. Value must either be an empty string, which
130 means that no notification will take place, or be in the format of a flattened
Enrico Granataafe7f302017-11-28 14:18:37 -0800131 ComponentName and reference a valid BroadcastReceiver. This broadcast receiver
132 must be registered in its containing app's AndroidManifest.xml and it is
133 strongly recommended that it be protected with the
134 android.car.permission.STORAGE_MONITORING permission. -->
Yao, Yuxingdade0d22019-05-22 14:30:11 -0700135 <string name="intentReceiverForUnacceptableIoMetrics" translatable="false">com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver</string>
Joseph Pirozzoe5ac56c2018-01-10 15:05:57 -0800136
137 <!-- The Model ID to advertise Bluetooth Fast Pair connections with. Must be overlayed with
138 device specific model id. -->
139 <integer name="fastPairModelId">0x000000</integer>
140
Keun young Park4b4ddda2019-03-26 18:47:37 -0700141 <!-- Maximum allowed time to run garage mode. Note that 15 min (=900sec) is the minimum required
142 duration and this should not be made shorter. -->
143 <integer name="maxGarageModeRunningDurationInSecs">900</integer>
144
Bryan Eylerfe99dde2018-03-28 13:51:55 -0700145 <!-- The garage mode configuration, specifying the time after shutdown to reboot into garage
146 mode and the number of attempts at that time to try before moving to the next wake up
147 time. This is intended to be a back-off pattern. -->
148 <string-array translatable="false" name="config_garageModeCadence">
149 <!-- <wake up after X min/hour/days>,<how many times> -->
150 <item>15m,1</item>
151 <item>6h,8</item>
152 <item>1d,5</item>
153 <item>3d,2</item>
154 <item>7d,3</item>
155 </string-array>
156
Pavel Maltsev38da4312019-04-08 10:38:38 -0700157 <!-- The services that needs to be started earlier in the boot sequence and in particular order.
158 Every item in this array contains a flatten component name of a service that needs to be
159 started and a list of parameters after hashtag symbol. Here's the format:
160
Ritwika Mitra8e45f862019-06-10 14:50:38 -0700161 <item>com.bar.foo/.Service#bind={bind|start|startForeground},user={all|system|foreground},
162 trigger={asap,userUnlocked}</item>
Pavel Maltsev38da4312019-04-08 10:38:38 -0700163
Ritwika Mitra8e45f862019-06-10 14:50:38 -0700164 bind: bind - start service with Context#bindService
165 start - start service with Context#startService
166 startForeground - start service with Context#startForegroundService
167 If service was bound it will be restarted unless it is constantly crashing.
168 The default value is 'start'
Pavel Maltsev38da4312019-04-08 10:38:38 -0700169 user: all - the service will be bound/started for system and all foreground users
170 system - the service will be started/bound only for system user (u0)
171 foreground - the service will be bound/started only for foreground users
172 The default value is 'all'
173 trigger: indicates when the service needs to be started/bound
174 asap - the service might be bound when user is not fully loaded, be careful with
175 this value, the service also needs to have directBootAware flag set to true
176 userUnlocked - start service when user unlocked the device
177 The default value is 'userUnlocked'
178
179 If the service bound/started for foreground user it will be unbound/stopped when user
180 is no longer foreground.
181 -->
182 <string-array translatable="false" name="config_earlyStartupServices">
Ritwika Mitra8e45f862019-06-10 14:50:38 -0700183 <item>com.android.car.messenger/.MessengerService#bind=startForeground,user=foreground,trigger=userUnlocked</item>
Pavel Maltsev38da4312019-04-08 10:38:38 -0700184 </string-array>
185
Pavel Maltsev48a31942019-03-03 22:08:28 -0800186 <!-- The consent activity that must be shown for every unknown mobile device before projection
187 gets started. The format is: com.your.package/com.your.Activity -->
188 <string name="config_projectionConsentActivity" translatable="false"/>
189
190 <!-- Display Id where projection rendering activity needs to be shown, Specify -1 to use system
191 defaults -->
192 <integer name="config_projectionActivityDisplayId" translatable="false">-1</integer>
193
194 <!-- Bounds of the projection activity on the screen. It should be in the pixels and screen
195 coordinates in the following order: left, top, right, bottom. -->
196 <integer-array name="config_projectionActivityLaunchBounds" translatable="false"/>
197
198 <!-- UI mode for projection activity. See ProjectionOptions class for possible values. -->
199 <integer name="config_projectionUiMode" translatable="false">0</integer>
200
Pavel Maltsev371d97f2019-05-20 14:51:31 -0700201 <!-- Configure whether access point created for wireless projection should be in tethered mode.
202 This will allow mobile device to use Internet provided by the vehicle during projection.
203 If this value is true then tethering is enabled. Otherwise, local-only hotspot will be
204 created. -->
205 <bool name="config_projectionAccessPointTethering" translatable="false">false</bool>
206
Simon Dai92aa43a2019-08-14 16:10:03 -0700207 <!-- The package name of a service to be launched by CarService to bind to an active media
208 service on the current user.
209 TODO(b/139497602): Remove dependency on Media Center, handle in CarMediaService -->
210 <string name="serviceMediaConnection" translatable="false">com.android.car.media</string>
211
Ram Periathiruvadide0ca082019-03-20 11:16:44 -0700212 <!-- service/characteristics uuid for adding new escrow token -->
213 <string name="enrollment_service_uuid" translatable="false">5e2a68a4-27be-43f9-8d1e-4546976fabd7</string>
Dan Harmsd80ff052019-04-29 14:46:09 -0700214 <string name="enrollment_server_write_uuid" translatable="false">5e2a68a5-27be-43f9-8d1e-4546976fabd7</string>
215 <string name="enrollment_client_write_uuid" translatable="false">5e2a68a6-27be-43f9-8d1e-4546976fabd7</string>
Ram Periathiruvadide0ca082019-03-20 11:16:44 -0700216
217 <!-- service/characteristics uuid for unlocking a device -->
Dan Harmsd80ff052019-04-29 14:46:09 -0700218 <string name="unlock_service_uuid" translatable="false">00003ac5-0000-1000-8000-00805f9b34fb</string>
Ram Periathiruvadi805faeb2019-05-17 15:08:21 -0700219 <string name="unlock_client_write_uuid" translatable="false">5e2a68a2-27be-43f9-8d1e-4546976fabd7</string>
220 <string name="unlock_server_write_uuid" translatable="false">5e2a68a3-27be-43f9-8d1e-4546976fabd7</string>
Ram Periathiruvadide0ca082019-03-20 11:16:44 -0700221
222 <string name="token_handle_shared_preferences" translatable="false">com.android.car.trust.TOKEN_HANDLE</string>
223
Zhomart Mukhamejanov30862412019-06-10 16:59:15 -0700224 <!-- The package name of the default bugreport application that can use CarBugreportServiceManager.
225 There is no default bugreporting app.-->
226 <string name="config_car_bugreport_application" translatable="false"></string>
227
Keun young Parkbb877e22019-08-02 10:38:01 -0700228 <!--
229 Lists all occupant (= driver + passenger) zones available in the car.
230 Some examples are:
231 <item>occupantZoneId=0,occupantType=DRIVER,seatRow=1,seatSide=driver</item>
232 <item>occupantZoneId=1,occupantType=FRONT_PASSENGER,seatRow=1,seatSide=oppositeDriver</item>
233 <item>occupantZoneId=2,occupantType=REAR_PASSENGER,seatRow=2,seatSide=left</item>
234 <item>occupantZoneId=3,occupantType=REAR_PASSENGER,seatRow=2,seatSide=right</item>
235
236 occupantZoneId: Unique unsigned integer id to represent each passenger zone. Each zone
237 should have different id.
238 occupantType: Occupant type for the display. Use * part from
239 CarOccupantZoneManager.OCCUPANT_TYPE_* like DRIVER, FRONT_PASSENGER,
240 REAR_PASSENGER and etc.
241 seatRow: Integer telling which row the seat is located. Row 1 is for front seats.
242 seatSide: left/center/right for known side. Or can use driver/center/oppositeDriver to
243 handle both right-hand driving and left-hand driving in one place.
244 If car's RHD / LHD is not specified, LHD will be assumed and driver side becomes
245 left.
246 -->
247 <string-array translatable="false" name="config_occupant_zones">
248 <item>occupantZoneId=0,occupantType=DRIVER,seatRow=1,seatSide=driver</item>
249 </string-array>
250 <!--
251 Specifies configuration of displays in system telling its usage / type and assigned
252 occupant.
253
254 Some examples are:
255 <item>displayPort=0,displayType=MAIN,occupantZoneId=0</item>
256 <item>displayPort=1,displayType=INSTRUMENT_CLUSTER,occupantZoneId=0</item>
257 <item>displayPort=2,displayType=MAIN,occupantZoneId=1</item>
258 <item>displayPort=3,displayType=MAIN,occupantZoneId=2</item>
259 <item>displayPort=4,displayType=MAIN,occupantZoneId=3</item>
260
261 displayPort: Unique port id for the display.
262 displayType: Display type for the display. Use * part from
263 CarOccupantZoneManager.DISPLAY_TYPE_* like MAIN, INSTRUMENT_CLUSTER and
264 etc.
265 occupantZoneId: occupantZoneId specified from config_occupant_zones.
266
267 -->
268 <string-array translatable="false" name="config_occupant_display_mapping">
269 </string-array>
270
Keun young Park7af7d6c2019-09-12 10:31:48 -0700271 <!-- Specifies notice UI that will be launched when user starts a car or do user
272 switching. It is recommended to use dialog with at least TYPE_APPLICATION_OVERLAY window
273 type to show the UI regardless of activity launches. Target package will be auto-granted
274 necessary permission for TYPE_APPLICATION_OVERLAY window type. The UI package should
275 resolve permission by itself to use any higher priority window type.
276 Setting this string to empty will disable the feature. -->
277 <string name="config_userNoticeUiService" translatable="false">com.google.android.car.kitchensink/.UserNoiticeDemoUiService</string>
Simon Daidefa50b2019-10-17 18:49:51 -0700278
279 <!-- Configuration to enable media center to autoplay when the media source is changed.
280 There are 3 supported configurations:
281 0 - never play on change
282 1 - always play
Simon Dai8c467ec2020-01-22 12:30:54 -0800283 2 - retain per source, play based on last remembered playback state for the new source
284 3 - retain previous state, play based on previous source's playback state -->
Simon Daidefa50b2019-10-17 18:49:51 -0700285 <integer name="config_mediaSourceChangedAutoplay">2</integer>
286 <!-- Configuration to enable media center to autoplay on boot -->
287 <integer name="config_mediaBootAutoplay">2</integer>
Simon Dai98cb6a72020-02-18 18:09:52 -0800288 <!-- Setting this flag to true allows for browsing a different source than the
289 one that is currently playing audio. By default, there is only one active
290 source in the car, for both playback and browse. -->
291 <bool name="config_mediaSourceIndependentPlayback">false</bool>
292
Keun young Park9a91efb2019-11-15 18:10:47 -0800293
Jim Kaye32ea4ce2019-12-03 15:00:51 -0800294 <!-- Disable switching the user while the system is resuming from Suspend to RAM.
295 This default says to prevent changing the user during Resume. -->
296 <bool name="config_disableUserSwitchDuringResume" translatable="false">true</bool>
297
Keun young Park9a91efb2019-11-15 18:10:47 -0800298 <!--
299 Specifies optional features that can be enabled by this image. Note that vhal can disable
300 them depending on product variation.
301 Feature name can be either service name defined in Car.*_SERVICE for Car*Manager or any
302 optional feature defined under @OptionalFeature annotation.
303 Note that '/' is used to have subfeature under main feature like "MAIN_FEATURE/SUB_FEATURE".
304
305 Some examples are:
306 <item>storage_monitoring</item>
307 <item>com.android.car.user.CarUserNoticeService</item>
308 <item>com.example.Feature/SubFeature</item>
309
310 The default list defined below will enable all optional features defined.
311 -->
312 <string-array translatable="false" name="config_allowed_optional_car_features">
313 <item>com.android.car.user.CarUserNoticeService</item>
Keun young Parkc6d80af2020-01-17 18:14:28 -0800314 <item>diagnostic</item>
Keun young Park9a91efb2019-11-15 18:10:47 -0800315 <item>storage_monitoring</item>
Mark Tabry6fa123d2020-01-10 19:52:59 -0800316 <item>vehicle_map_service</item>
Keun young Parkc6d80af2020-01-17 18:14:28 -0800317 <item>vehicle_map_subscriber_service</item>
Keun young Park9a91efb2019-11-15 18:10:47 -0800318 </string-array>
Eric Jeongc91f9452019-08-30 15:04:21 -0700319
320 <!-- Configuration to enable passenger support.
321 If this is set to true and there is a passenger display, a user can login to the passenger
322 display and use it as a normal Android user. -->
323 <bool name="enablePassengerSupport">false</bool>
Christophe Koessler2256e882019-12-20 14:41:47 -0800324
325 <!-- Class name of the custom country detector to be used. Override the default value in the
326 device specific config file. -->
327 <string name="config_customCountryDetector" translatable="false">com.android.server.location.ComprehensiveCountryDetector</string>
Babak Bostana2fc9112020-02-12 11:44:47 -0800328
329 <!-- Controls the use of bluetooth voice recognition when long pressing the voice assist
330 button. -->
331 <bool name="enableLongPressBluetoothVoiceRecognition" translatable="false">true</bool>
keunyoung5c7cb262015-10-19 10:47:45 -0700332</resources>