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 persist global mute state. If this is set to true, 30 Android will restore the global mute state on boot. --> 31 <bool name="audioPersistMasterMuteState">true</bool> 32 <!-- 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> 36 37 <!-- 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 42 <string name="inputService" translatable="false">android.car.input.service/.DefaultInputService</string> 43 44 <!-- Service responsible for displaying information on the car instrument cluster. --> 45 <string name="instrumentClusterRendererService" translatable="false">android.car.cluster/.ClusterRenderingService</string> 46 47 <!-- Whether to enable Activity blocking for safety. When Activity blocking is enabled, 48 only allowlisted 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. --> 52 <string name="activityBlockingActivity" translatable="false">com.android.car/com.android.car.pm.ActivityBlockingActivity</string> 53 <!-- 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 allowlist the whole package or 56 use format of "packagename/activity_classname" for tagging each activities. 57 For general guidelines to design distraction optimized apps, please refer 58 to Android Auto Driver Distraction Guidelines. --> 59 <string name="activityWhitelist" translatable="false"></string> 60 <!-- 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 allowlist the whole package or 63 use format of "packagename/activity_classname" for tagging each activities. 64 The current implementations expects the following system packages/activities to be 65 allowlisted. For general guidelines to design distraction optimized apps, please refer 66 to Android Auto Driver Distraction Guidelines. --> 67 <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> 68 <!-- Comma separated list of activities that will be blocked during restricted state. 69 Format of each entry is either to specify package name to allowlist the whole package 70 or use format of "packagename/activity_classname" for tagging each activities.--> 71 <string name="activityBlacklist" translatable="false"></string> 72 <!-- List of play store package names that are allowed sources of app installation--> 73 <string-array translatable="false" name="allowedAppInstallSources"> 74 </string-array> 75 <!-- Default home activity --> 76 <string name="defaultHomeActivity" translatable="false"><!--com.your.package/com.your.package.Activity--></string> 77 <!-- The vendor-defined HAL property used to collect VMS client metrics. Disabled by default.--> 78 <integer name="vmsHalClientMetricsProperty">0</integer> 79 <!-- 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"> 84 </string-array> 85 <!-- Number of milliseconds to wait before trying re-bind to a crashed publisher. --> 86 <integer name="millisecondsBeforeRebindToVmsPublisher">10000</integer> 87 88 <!-- 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> 96 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. --> 102 <string name="activityHandlerForFlashWearChanges" translatable="false">com.google.android.car.defaultstoragemonitoringcompanionapp/.MainActivity</string> 103 104 <!-- How often (in seconds) CarService will update I/O metrics from the kernel. --> 105 <integer name="ioStatsRefreshRateSeconds">60</integer> 106 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 109 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. --> 111 <integer name="ioStatsNumSamplesToStore">15</integer> 112 113 <!-- The maximum number of KB (1024 bytes) that can be written to storage in one sample 114 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. --> 118 <integer name="acceptableWrittenKBytesPerSample">115000</integer> 119 <!-- The maximum number of fsync() system calls that can be made in one sample before 120 CarService deems I/O activity excessive. --> 121 <integer name="acceptableFsyncCallsPerSample">150</integer> 122 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. --> 126 <integer name="maxExcessiveIoSamplesInWindow">11</integer> 127 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 131 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. --> 135 <string name="intentReceiverForUnacceptableIoMetrics" translatable="false">com.google.android.car.defaultstoragemonitoringcompanionapp/.ExcessiveIoIntentReceiver</string> 136 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 141 <!-- 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 145 <!-- 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 157 <!-- 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 161 <item>com.bar.foo/.Service#bind={bind|start|startForeground},user={all|system|foreground}, 162 trigger={asap,userUnlocked}</item> 163 164 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' 169 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"> 183 <item>com.android.car.messenger/.MessengerService#bind=startForeground,user=foreground,trigger=userUnlocked</item> 184 </string-array> 185 186 <!-- 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 201 <!-- 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 207 <!-- 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 212 <!-- service/characteristics uuid for adding new escrow token --> 213 <string name="enrollment_service_uuid" translatable="false">5e2a68a4-27be-43f9-8d1e-4546976fabd7</string> 214 <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> 216 217 <!-- service/characteristics uuid for unlocking a device --> 218 <string name="unlock_service_uuid" translatable="false">00003ac5-0000-1000-8000-00805f9b34fb</string> 219 <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> 221 222 <string name="token_handle_shared_preferences" translatable="false">com.android.car.trust.TOKEN_HANDLE</string> 223 224 <!-- 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 228 <!-- Specifies notice UI that will be launched when user starts a car or do user 229 switching. It is recommended to use dialog with at least TYPE_APPLICATION_OVERLAY window 230 type to show the UI regardless of activity launches. Target package will be auto-granted 231 necessary permission for TYPE_APPLICATION_OVERLAY window type. The UI package should 232 resolve permission by itself to use any higher priority window type. 233 Setting this string to empty will disable the feature. --> 234 <string name="config_userNoticeUiService" translatable="false">com.google.android.car.kitchensink/.UserNoiticeDemoUiService</string> 235 236 <!-- Configuration to enable media center to autoplay when the media source is changed. 237 There are 3 supported configurations: 238 0 - never play on change 239 1 - always play 240 2 - retain per source, play based on last remembered playback state for the new source 241 3 - retain previous state, play based on previous source's playback state --> 242 <integer name="config_mediaSourceChangedAutoplay">2</integer> 243 <!-- Configuration to enable media center to autoplay on boot --> 244 <integer name="config_mediaBootAutoplay">2</integer> 245 246 <!-- Disable switching the user while the system is resuming from Suspend to RAM. 247 This default says to prevent changing the user during Resume. --> 248 <bool name="config_disableUserSwitchDuringResume" translatable="false">true</bool> 249 250 <!-- Class name of the custom country detector to be used. Override the default value in the 251 device specific config file. --> 252 <string name="config_customCountryDetector" translatable="false">com.android.server.location.ComprehensiveCountryDetector</string> 253 254 <!-- Controls the use of bluetooth voice recognition when long pressing the voice assist 255 button. --> 256 <bool name="enableLongPressBluetoothVoiceRecognition" translatable="false">true</bool> 257</resources> 258