• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?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">
23
24    <!--  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. -->
27    <bool name="audioUseDynamicRouting">false</bool>
28
29    <!--  Configuration to enable muting of individual volume groups. If this is set to
30          false, muting of individual volume groups is disabled, instead muting will toggle master
31          mute. If this is set to true, car volume group muting is enabled and each individual
32          volume group can be muted separately. -->
33    <bool name="audioUseCarVolumeGroupMuting">false</bool>
34
35    <!--  Configuration to enable IAudioControl#onDevicesToDuckChange API to inform HAL when to
36          duck. If this is set to true, the API will receive signals indicating which output devices
37          to duck as well as what usages are currently holding focus. If set to false, the API will
38          not be called. -->
39    <bool name="audioUseHalDuckingSignals">true</bool>
40
41    <!--  Configuration to select version of volume adjustment context priority list.
42          Version 1 includes all audio contexts arranged in the following order:
43            NAVIGATION, CALL, MUSIC, ANNOUNCEMENT, VOICE_COMMAND, CALL_RING, SYSTEM_SOUND, SAFETY,
44            ALARM, NOTIFICATION, VEHICLE_STATUS, EMERGENCY.
45          Version 2 is limited to the following contexts in order:
46            CALL, MUSIC, ANNOUNCEMENTS, VOICE_COMMAND
47
48          audioVolumeAdjustmentContextsVersion - Integer version number currently limited to
49                                                 numbers listed above. -->
50    <integer name="audioVolumeAdjustmentContextsVersion">2</integer>
51
52    <!--  Configuration to persist global mute state. If this is set to true,
53          Android will restore the global mute state on boot. If audioUseCarVolumeGroupMuting is
54          true, this will have no impact on persisting mute changes as mute changes will be based
55          on individual volume group.-->
56    <bool name="audioPersistMasterMuteState">true</bool>
57
58    <!--  Configuration to indicate the timeout in milliseconds while a car volume group will be
59          considered active for volume control changes during volume key events. The configuration
60          will be used as follows:
61          - The timeout will be used to determine if a playback (audio context associated with the
62            playback's audio usage) can still be considered for automatic volume selection after it
63            has stopped playing.
64          - The timeout will also be used as the pause duration required in between automatic volume
65            adjustments to change what user is adjusting. -->
66    <integer name="audioVolumeKeyEventTimeoutMs">3000</integer>
67
68    <!-- Whether to block other audio while media audio is muted with display off. When set to true,
69         other sounds cannot be played either while display is off. If false, only media is muted
70         and other sounds can be still played. -->
71    <bool name="displayOffMuteLockAllAudio">true</bool>
72
73    <!--  Configuration to enable or disable the default Bluetooth Device Connection Policy. This
74          policy determines when to initiate device connections, but does not control the actual
75          connection process. Disable this default to implement your own policy. -->
76    <bool name="useDefaultBluetoothConnectionPolicy">true</bool>
77
78    <!--  Configuration to enable or disable the default Bluetooth Power Policy. This
79          policy determines when to enable and/or disable the Bluetooth adapter based on
80          CarPowerManager power states. Disable this default to implement your own policy. -->
81    <bool name="useDefaultBluetoothPowerPolicy">true</bool>
82
83    <!--  Service responsible for displaying information on the car instrument cluster. -->
84    <string name="instrumentClusterRendererService" translatable="false">android.car.cluster/.ClusterRenderingService</string>
85
86    <!--  The name of Activity who is in charge of ClusterHome. -->
87    <string name="config_clusterHomeActivity" translatable="false">com.android.car.cluster.home/.ClusterHomeActivity</string>
88
89    <!--  Service responsible for handling the rotary controller input. This service will start
90          on boot or on user switch. Set this string to empty if you don't want to start this
91          service. -->
92    <string name="rotaryService" translatable="false">com.android.car.rotary/com.android.car.rotary.RotaryService</string>
93
94    <!--  Whether to enable Activity blocking for safety. When Activity blocking is enabled,
95          only allowlisted safe Activities will be allowed while car is not parked. -->
96    <bool name="enableActivityBlockingForSafety">true</bool>
97    <!--  Activity to be presented when un-safe activity is launched. Take a look at the javadoc of the
98          default implementation. -->
99    <string name="activityBlockingActivity" translatable="false">
100        com.android.systemui/com.android.systemui.car.activity.ActivityBlockingActivity
101    </string>
102    <string name="continuousBlankActivity" translatable="false">
103        com.android.systemui/com.android.systemui.car.activity.ContinuousBlankActivity
104    </string>
105    <!--  Comma separated list of activities that need to be exempted from getting
106          blocked in a UX restricted state.
107          Format of each entry is either to specify package name to allowlist the whole package or
108          use format of "packagename/activity_classname" for tagging each activities.
109          For general guidelines to design distraction optimized apps, please refer
110          to Android Auto Driver Distraction Guidelines. -->
111    <string name="activityAllowlist" translatable="false"></string>
112    <!--  Comma separated list of activities that need to be exempted from getting
113          blocked in a UX restricted state.
114          Format of each entry is either to specify package name to allowlist the whole package or
115          use format of "packagename/activity_classname" for tagging each activities.
116          The current implementations expects the following system packages/activities to be
117          allowlisted. For general guidelines to design distraction optimized apps, please refer
118          to Android Auto Driver Distraction Guidelines. -->
119    <string name="systemActivityAllowlist" translatable="false">com.android.systemui,com.google.android.permissioncontroller/com.android.permissioncontroller.permission.ui.GrantPermissionsActivity,com.android.permissioncontroller/com.android.permissioncontroller.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>
120    <!--  Comma separated list of activities that will be blocked during restricted state.
121          Format of each entry is either to specify package name to allowlist the whole package
122          or use format of "packagename/activity_classname" for tagging each activities.-->
123    <string name="activityDenylist" translatable="false"></string>
124    <!-- List of play store package names that are allowed sources of app installation-->
125    <string-array translatable="false" name="allowedAppInstallSources">
126    </string-array>
127    <!-- Default home activity -->
128    <string name="defaultHomeActivity" translatable="false"><!--com.your.package/com.your.package.Activity--></string>
129    <!-- The vendor-defined HAL property used to collect VMS client metrics. Disabled by default.-->
130    <integer name="vmsHalClientMetricsProperty">0</integer>
131    <!--  The com.android.car.vms.VmsClientManager will bind to this list of clients running as system user -->
132    <string-array translatable="false" name="vmsPublisherSystemClients">
133    </string-array>
134    <!--  The com.android.car.vms.VmsClientManager will bind to this list of clients running as current user -->
135    <string-array translatable="false" name="vmsPublisherUserClients">
136    </string-array>
137    <!-- Number of milliseconds to wait before trying re-bind to a crashed publisher. -->
138    <integer name="millisecondsBeforeRebindToVmsPublisher">10000</integer>
139
140    <!-- Hours of uptime (excluding sleep) after which a 1% increase in the wear of the flash
141         storage in the head-unit is considered as acceptable level of wear. -->
142    <integer name="acceptableHoursPerOnePercentFlashWear">70</integer>
143
144    <!-- How often (in hours of uptime excluding sleep) CarService will flush to disk information
145         about the total running time of the head-unit. A shutdown or reboot of the head-unit
146          will always cause a flush of the uptime information, regardless of this setting. -->
147    <integer name="uptimeHoursIntervalBetweenUptimeDataWrite">5</integer>
148
149    <!-- The name of an activity to be launched by CarService whenever it detects a change in the
150         level of wear of the flash storage. Value must either be an empty string, which means that
151         no activity shall be launched, or must be in the format of a flattened ComponentName and
152         reference a valid activity. It is strongly recommended that the chosen activity be
153         protected with the android.car.permission.STORAGE_MONITORING permission. -->
154    <string name="activityHandlerForFlashWearChanges" translatable="false">com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity</string>
155
156    <!-- How often (in seconds) CarService will update I/O metrics from the kernel. -->
157    <integer name="ioStatsRefreshRateSeconds">60</integer>
158
159    <!-- The number of I/O metrics samples to keep in memory at one time.
160         The system will keep a sliding window of samples of this size, and allow
161         retrieval of activity this many sample windows back in time. Setting this to
162         0 means no samples will be collected, effectively disabling I/O metric collection. -->
163    <integer name="ioStatsNumSamplesToStore">15</integer>
164
165    <!-- The maximum number of KB (1024 bytes) that can be written to storage in one sample
166         before CarService deems I/O activity excessive. A simple way to set this value
167         is - given the total writable amount (storage size * P/E cycles) - to make
168         reasonable assumptions about the expected lifetime of the vehicle and the average
169         daily driving time, and use that to allocate a per-sample budget. -->
170    <integer name="acceptableWrittenKBytesPerSample">115000</integer>
171    <!-- The maximum number of fsync() system calls that can be made in one sample before
172         CarService deems I/O activity excessive. -->
173    <integer name="acceptableFsyncCallsPerSample">150</integer>
174
175    <!-- The maximum number of samples (within an I/O stats sample window) that CarService
176         should consider exhibiting excessive I/O activity before broadcasting an intent
177         to signal the potential for flash wear. -->
178    <integer name="maxExcessiveIoSamplesInWindow">11</integer>
179
180    <!-- The number of days past until the current day considered by car watchdog to
181         attribute recurring overuse to a package.  -->
182    <integer name="recurringResourceOverusePeriodInDays">14</integer>
183
184    <!-- The number of overuses a package has to exceed for car watchdog to attribute
185         recurring overuse.  -->
186    <integer name="recurringResourceOveruseTimes">2</integer>
187
188    <!-- The number of top UID I/O usage summaries to report on car watchdog I/O usage
189         summary atom pull.  -->
190    <integer name="uidIoUsageSummaryTopCount">10</integer>
191
192    <!-- The minimum number of total bytes written to disk by the system required to
193         report the stats on car watchdog I/O usage summary atom pull. Currently 500 MiB.  -->
194    <integer name="ioUsageSummaryMinSystemTotalWrittenBytes">524288000</integer>
195
196    <!-- The name of an intent to be notified by CarService whenever it detects too many
197         samples with excessive I/O activity. Value must either be an empty string, which
198         means that no notification will take place, or be in the format of a flattened
199         ComponentName and reference a valid BroadcastReceiver. This broadcast receiver
200         must be registered in its containing app's AndroidManifest.xml and it is
201         strongly recommended that it be protected with the
202         android.car.permission.STORAGE_MONITORING permission. -->
203    <string name="intentReceiverForUnacceptableIoMetrics" translatable="false">com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver</string>
204
205     <!-- The path to a file that contains lifetime estimation metrics for the eMMC storage on
206          this system, in the lifetimeA lifetimeB format, as defined by the eMMC extended CSD
207          register specification. -->
208     <string name="eMmcLifetimeFilePath" translatable="false">/sys/bus/mmc/devices/mmc0:0001/life_time</string>
209
210     <!-- The path to a file that contains end of life estimation metrics for the eMMC storage on
211          this system, in the format defined by the eMMC extended CSD register specification. -->
212     <string name="eMmcEolFilePath" translatable="false">/sys/bus/mmc/devices/mmc0:0001/pre_eol_info</string>
213
214    <!-- The Model ID to advertise Bluetooth Fast Pair connections with.  Must be overlayed with
215         device specific model id. A model id of 0 will disable Fast Pair-->
216    <integer name="fastPairModelId">0x000000</integer>
217
218    <!-- The Anti Spoofing Public key associated with the advertised Fast Pair Model ID, base64
219         encoded. -->
220    <string name="fastPairAntiSpoofKey" translatable="false"></string>
221
222    <!-- Enable to allow Fast Pair to automatically accept incoming pairing requests with matching
223         Simple Secure Pairing codes without requiring further user input. -->
224    <bool name="fastPairAutomaticAcceptance">false</bool>
225
226    <!-- Maximum allowed time to run garage mode. Note that 15 min (=900sec) is the minimum required
227         duration and this should not be made shorter. -->
228    <integer name="maxGarageModeRunningDurationInSecs">900</integer>
229
230    <!-- The services that needs to be started earlier in the boot sequence and in particular order.
231         Every item in this array contains a flatten component name of a service that needs to be
232         started and a list of parameters after hashtag symbol. Here's the format:
233
234         <item>com.bar.foo/.Service#bind={bind|start|startForeground},user={all|system|foreground},
235         trigger={asap,userUnlocked}</item>
236
237         bind: bind - start service with Context#bindService
238               start - start service with Context#startService
239               startForeground - start service with Context#startForegroundService
240               If service was bound it will be restarted unless it is constantly crashing.
241               The default value is 'start'
242         user: all - the service will be bound/started for system and all foreground users
243               system - the service will be started/bound only for system user (u0)
244               foreground - the service will be bound/started only for foreground users
245               The default value is 'all'
246         trigger: indicates when the service needs to be started/bound
247               asap - the service might be bound when user is not fully loaded, be careful with
248                      this value, the service also needs to have directBootAware flag set to true
249               userUnlocked - start service when user unlocked the device
250               userPostUnlocked - start service later after user unlocked. This is used when the
251                                  service is not urgent and can wait to start.
252               The default value is 'userUnlocked'
253
254         If the service bound/started for foreground user it will be unbound/stopped when user
255         is no longer foreground.
256     -->
257    <string-array translatable="false" name="config_earlyStartupServices">
258        <item>com.android.car.messenger/.MessengerService#bind=startForeground,user=foreground,trigger=userUnlocked</item>
259    </string-array>
260
261    <!-- The consent activity that must be shown for every unknown mobile device before projection
262         gets started.  The format is: com.your.package/com.your.Activity  -->
263    <string name="config_projectionConsentActivity" translatable="false"/>
264
265    <!-- Display Id where projection rendering activity needs to be shown, Specify -1 to use system
266         defaults -->
267    <integer name="config_projectionActivityDisplayId" translatable="false">-1</integer>
268
269    <!-- Bounds of the projection activity on the screen. It should be in the pixels and screen
270         coordinates in the following order: left, top, right, bottom. -->
271    <integer-array name="config_projectionActivityLaunchBounds" translatable="false"/>
272
273    <!-- UI mode for projection activity. See ProjectionOptions class for possible values. -->
274    <integer name="config_projectionUiMode" translatable="false">0</integer>
275
276    <!-- Configure whether access point created for wireless projection should be in tethered mode.
277         This will allow mobile device to use Internet provided by the vehicle during projection.
278         If this value is true then tethering is enabled. Otherwise, local-only hotspot will be
279         created. -->
280    <bool name="config_projectionAccessPointTethering" translatable="false">false</bool>
281
282    <!-- If projection Access Point is configured to not provide Internet access (not tethered,
283         see config_projectionAccessPointTethering) then this flag will be used to control
284         whether Wi-Fi configuration will persist reboots. By default new Wi-Fi credentials are
285         created for every local-only hotspot (LOHS) instantiation, changing this flag to true
286         will make LOHS credentials persistent. -->
287    <bool name="config_stableLocalOnlyHotspotConfig" translatable="false">true</bool>
288
289    <!-- The package name of a service to be launched by CarService to bind to an active media
290         service on the current  user.
291         TODO(b/139497602): Remove dependency on Media Center, handle in CarMediaService -->
292    <string name="serviceMediaConnection" translatable="false">com.android.car.media</string>
293
294    <!-- The package name of the default bugreport application that can use CarBugreportServiceManager.
295         There is no default bugreporting app.-->
296    <string name="config_car_bugreport_application" translatable="false"></string>
297
298    <!--
299        Lists all occupant (= driver + passenger) zones available in the car.
300        Some examples are:
301        <item>occupantZoneId=0,occupantType=DRIVER,seatRow=1,seatSide=driver</item>
302        <item>occupantZoneId=1,occupantType=FRONT_PASSENGER,seatRow=1,seatSide=oppositeDriver</item>
303        <item>occupantZoneId=2,occupantType=REAR_PASSENGER,seatRow=2,seatSide=left</item>
304        <item>occupantZoneId=3,occupantType=REAR_PASSENGER,seatRow=2,seatSide=right</item>
305
306        occupantZoneId: Unique unsigned integer id to represent each passenger zone. Each zone
307                        should have different id.
308        occupantType: Occupant type for the display. Use * part from
309                       CarOccupantZoneManager.OCCUPANT_TYPE_* like DRIVER, FRONT_PASSENGER,
310                       REAR_PASSENGER and etc.
311        seatRow: Integer telling which row the seat is located. Row 1 is for front seats.
312        seatSide: left/center/right for known side. Or can use driver/center/oppositeDriver to
313                  handle both right-hand driving and left-hand driving in one place.
314                  If car's RHD / LHD is not specified, LHD will be assumed and driver side becomes
315                  left.
316    -->
317    <string-array translatable="false" name="config_occupant_zones">
318        <item>occupantZoneId=0,occupantType=DRIVER,seatRow=1,seatSide=driver</item>
319    </string-array>
320    <!--
321        Specifies configuration of displays in system telling its usage / type and assigned
322        occupant. DEFAULT_DISPLAY, if assigned here, should be always assigned to the DRIVER zone.
323
324        Some examples are:
325        <item>displayPort=0,displayType=MAIN,occupantZoneId=0</item>
326        <item>displayPort=1,displayType=INSTRUMENT_CLUSTER,occupantZoneId=0</item>
327        <item>displayPort=2,displayType=MAIN,occupantZoneId=1</item>
328        <item>displayPort=3,displayType=MAIN,occupantZoneId=2</item>
329        <item>displayUniqueId=virtual:com.example:MainD,displayType=MAIN,occupantZoneId=3</item>
330
331        NOTE: each item should have displayPort or displayUniqueId, if it has both, displayPort
332          will be used.
333        displayPort: Unique Port id for the physical display.
334        displayUniqueId: Unique Id for the display.
335            The unique id of the virtual display will be the form of 'virtual:<PACKAGE>:<ID>'.
336        displayType: Display type for the display. Use * part from
337                       CarOccupantZoneManager.DISPLAY_TYPE_* like MAIN, INSTRUMENT_CLUSTER and
338                       etc.
339        occupantZoneId: occupantZoneId specified from config_occupant_zones.
340
341    -->
342    <string-array translatable="false" name="config_occupant_display_mapping">
343    </string-array>
344
345    <!--
346        Specifies whether CarLaunchParamControl prefers source. If prefer-source is enabled,
347        CarLaunchParamControl tries to launch Activities without any desiganted display to
348        the display where the source is located.
349
350        This can be configured 3 ways:
351        A. No items - don't prefer source for any components.
352        B. 1 items with "*" - prefer source for all components.
353        C. enumerate items of "packageName/activityName" - prefer source for the specified ones.
354    -->
355    <string-array translatable="false" name="config_sourcePreferredComponents">
356        <item>com.google.android.apps.maps/com.google.android.maps.MapsActivity</item>
357    </string-array>
358
359    <!-- Specifies notice UI that will be launched when user starts a car or do user
360         switching. It is recommended to use dialog with at least TYPE_APPLICATION_OVERLAY window
361         type to show the UI regardless of activity launches. Target package will be auto-granted
362         necessary permission for TYPE_APPLICATION_OVERLAY window type. The UI package should
363         resolve permission by itself to use any higher priority window type.
364         Setting this string to empty will disable the feature. -->
365    <string name="config_userNoticeUiService" translatable="false">com.google.android.car.kitchensink/.UserNoticeDemoUiService</string>
366
367    <!-- Configuration to enable media center to autoplay when the media source is changed.
368         There are 3 supported configurations:
369         0 - never play on change
370         1 - always play
371         2 - retain per source, play based on last remembered playback state for the new source
372         3 - retain previous state, play based on previous source's playback state -->
373    <integer name="config_mediaSourceChangedAutoplay">0</integer>
374    <!-- Configuration to enable media center to autoplay on boot -->
375    <integer name="config_mediaBootAutoplay">2</integer>
376    <!-- Setting this flag to true allows for browsing a different source than the
377         one that is currently playing audio. By default, there is only one active
378         source in the car, for both playback and browse. -->
379    <bool name="config_mediaSourceIndependentPlayback">true</bool>
380
381    <!--
382        Specifies optional features that can be enabled by this image. Note that vhal can disable
383        them depending on product variation.
384        Feature name can be either service name defined in Car.*_SERVICE for Car*Manager or any
385        optional feature defined under @OptionalFeature annotation.
386        Note that '/' is used to have subfeature under main feature like "MAIN_FEATURE/SUB_FEATURE".
387
388        Some examples are:
389        <item>storage_monitoring</item>
390        <item>com.android.car.user.CarUserNoticeService</item>
391        <item>com.example.Feature/SubFeature</item>
392
393        The default list defined below will enable all optional features defined.
394    -->
395    <string-array translatable="false" name="config_allowed_optional_car_features">
396        <item>car_navigation_service</item>
397        <item>cluster_service</item>
398        <item>com.android.car.user.CarUserNoticeService</item>
399        <item>diagnostic</item>
400        <item>storage_monitoring</item>
401        <item>vehicle_map_service</item>
402        <item>car_evs_service</item>
403        <item>car_telemetry_service</item>
404    </string-array>
405
406    <!-- Configuration to enable passenger support.
407         If this is set to true and there is a passenger display, a user can login to the passenger
408         display and use it as a normal Android user. -->
409    <bool name="enablePassengerSupport">false</bool>
410
411    <!-- Class name of the custom country detector to be used. Override the default value in the
412         device specific config file.  -->
413    <string name="config_customCountryDetector" translatable="false">com.android.server.location.ComprehensiveCountryDetector</string>
414
415    <!-- Controls the use of bluetooth voice recognition when long pressing the voice assist
416         button. -->
417    <bool name="enableLongPressBluetoothVoiceRecognition" translatable="false">true</bool>
418
419    <!-- Switch guest user into new guest user before going to sleep. If this is false, it will
420         be done after waking up from sleep. This only affects if the current user is a guest user.
421         -->
422    <bool name="config_switchGuestUserBeforeGoingSleep" translate="false">true</bool>
423
424    <!-- Enable profile user assignment per each CarOccupantZone for per display android user
425         assignments. This feature is still experimental. -->
426    <bool name="enableProfileUserAssignmentForMultiDisplay" translatable="false">false</bool>
427
428    <!-- The ComponentName of the media source that will be selected as the default -->
429    <string name="config_defaultMediaSource">com.android.car.radio/.service.RadioAppService</string>
430
431    <!-- A configuration flag to enable ending an ongoing call using the physical Call button. -->
432    <bool name="config_callButtonEndsOngoingCall">false</bool>
433
434    <!-- Number of milliseconds to wait before the system goes into Suspend-to-RAM.
435         The valid range is 0 to 3 * 60 * 1000. The default duration is 3 min (= 3 * 60 * 1000). -->
436    <integer name="config_maxSuspendWaitDuration">180000</integer>
437
438    <!-- Number of milliseconds to wait until all listeners complete when PRE_SHUTDOWN_PREPARE is
439         notified -->
440    <integer name="config_preShutdownPrepareTimeout">5000</integer>
441
442    <!-- Number of milliseconds to wait until all listeners complete when SHUTDOWN_ENTER is
443         notified -->
444    <integer name="config_shutdownEnterTimeout">5000</integer>
445
446    <!-- Number of milliseconds to wait until all listeners complete when POST_SHUTDOWN_ENTER is
447         notified -->
448    <integer name="config_postShutdownEnterTimeout">5000</integer>
449
450    <!-- A name of a camera device that provides the rearview through EVS service -->
451    <string name="config_evsRearviewCameraId" translatable="false">/dev/video10</string>
452
453    <!-- The camera Activity name for EVS, if defined, the Activity will be launched by
454         CarEvsService. -->
455    <string name="config_evsCameraActivity" translatable="false"></string>
456
457    <!-- A configuration flag to adjust Wifi for suspend. -->
458    <bool name="config_wifiAdjustmentForSuspend">false</bool>
459
460    <!-- A configuration flag to adjust enabling and disabling the GNSS Location Provider for Power
461         Management purposes such as Supsend to RAM. -->
462    <bool name="config_enableCarLocationServiceGnssControlsForPowerManagement" translatable="false">true</bool>
463
464    <!-- A configuration flag to prevent the templated apps from showing dialogs. This is done in
465         the view of driver safety as templated apps can potentially show a dialog with custom UI
466         which can be a distraction hazard for the driver. -->
467    <bool name="config_preventTemplatedAppsFromShowingDialog">true</bool>
468
469    <!-- The class name of the templated activities. This is used to detect currently running
470         templated activity.-->
471    <string name="config_template_activity_class_name">
472        androidx.car.app.activity.CarAppActivity
473    </string>
474
475    <!-- A flag to configure whether the ExternalCarTime VHAL property should be used to send
476         ExternalTimeSuggestions to the Android TimeManager service. -->
477    <bool name="config_enableExternalCarTimeToExternalTimeSuggestion">false</bool>
478
479    <!-- Configuration to set when pre-created users should be managed by CarService. Car Service
480         will make sure it has the number of pre-created users defined by the system properties
481         android.car.number_pre_created_users and android.car.number_pre_created_guests.
482         Supported flags:
483         1 - Before suspend
484         2 - After system start
485         Flags can be combined. In this case, 3 means manage pre-created users after system start
486         and before suspend. If pre-created users are managed after system start then
487         config_userPreCreationDelay will be used to wait before managing pre-created users. -->
488    <integer name="config_userPreCreationStage">3</integer>
489
490    <!-- How many milli-seconds CarService should wait before managing pre-created users after
491         system start. This property only applied when config_userPreCreationStage flag is 2. -->
492    <integer name="config_userPreCreationDelay">5000</integer>
493
494    <!-- This is the component name for the OEM customization service. OEM can choose to implement
495         this service to customize car service behavior for different policies. If OEMs choose to
496         implement it, they have to implement a service extending OemCarService exposed by car-lib,
497         and implement the needed component services.
498         If the component name is invalid, CarService would not connect to any OEM service.
499         Component name can not be a third party package. It should be pre-installed -->
500   <string name="config_oemCarService" translatable="false"></string>
501
502    <!-- Related to OEM customization service. How many milliseconds CarService should wait for
503         OEM service to connect. If `config_oemCarService` is set and oem service package exists,
504         then CarService would wait for this much time for OEM service to connect. If OEM service
505         doesn't connect within this time, CarService would crash itself. -->
506    <integer name="config_oemCarService_connection_timeout_ms">5000</integer>
507
508    <!-- Related to OEM customization service. How many milliseconds CarService should wait for
509         OEM service to be ready. This is the wait time after OEM service is connected to
510         CarService. CarService would poll OEM service for being ready, if OEM service not ready
511         within timeout, CarService would crash. -->
512    <integer name="config_oemCarService_serviceReady_timeout_ms">5000</integer>
513
514    <!-- Related to OEM customization service. Default timeout for calls made by CarService to
515         OEM service. After this, CarService would timeout the call. If OEM service returns the
516         results after timeout, it would be ignored. -->
517    <integer name="config_oemCarService_regularCall_timeout_ms">5000</integer>
518
519    <!-- Related to OEM customization service. Default timeout for critical calls made by CarService
520         to OEM service. After this timeout, CarService would itself and OEM Service. -->
521    <integer name="config_oemCarService_crashCall_timeout_ms">10000</integer>
522
523    <!-- Related to OEM customization service. Default thread pool size for communicating with the
524         OEM Service. The value can only be between 8 and 16. If value is higher than 16, thread
525         pool size will be 16. If value is lower than 8, thread pool size will be 8.-->
526    <integer name="config_oemCarService_thread_pool_size">8</integer>
527</resources>
528