В Android Automotive OS (AAOS) используются флаги и конфигурации для включения различных функций, от динамической маршрутизации до более общих флагов, таких как управление громкостью через автомобильный сервис. Текущие флаги конфигурации AAOS для управления аудио описаны здесь.
| Флаг | Цель | 
|---|---|
| audioUseDynamicRouting | В файле конфигурации автомобильного сервиса определено значение « Включить маршрутизацию AAOS» . Необходимо установить значение « true. При значенииfalse» маршрутизация и большая частьCarAudioServiceотключаются, и ОС возвращается к поведению по умолчанию, описанному в разделе «Настройка политик аудио» . | 
| useCoreAudioRouting | Определяется в файле конфигурации автомобильной службы для включения управления маршрутизацией звука AAOS . При значении trueавтомобильная аудиослужба использует определения конфигурации, настроенные с помощью настраиваемого механизма аудиополитик . При значенииfalseуправление маршрутизацией возвращается к использованию определения динамического микширования аудиополитик автомобильной аудиослужбы, настроенного с помощьюaudioUseDynamicRouting. | 
| useCoreAudioVolume | Определяется в файле конфигурации автомобильного сервиса для включения управления громкостью звука на базе ядра AAOS . При значении trueавтомобильный сервис использует определения групп громкости, настроенные с помощью настраиваемого механизма политик звука . При значенииfalseуправление громкостью возвращается к использованию определения группы громкости автомобильного сервиса по умолчанию, настроенного с помощьюaudioUseDynamicRouting. | 
| audioUseCarVolumeGroupMuting | Определяется в файле конфигурации сервиса автомобиля для включения отключения отдельных групп громкости. При значении false(значение по умолчанию) отключение отдельных групп громкости отключено. Вместо этого отключение звука включает общее отключение звука. При значенииtrueвключается отключение звука автомобильных групп громкости, и каждая отдельная группа громкости может быть отключена отдельно. Приtrueотключение звука групп громкости должно быть реализовано на уровне HAL управления аудиосистемой . | 
| audioUseHalDuckingSignals | Определено в файле конфигурации автомобильного сервиса, чтобы API IAudioControl#onDevicesToDuckChangeмог сообщать HAL о необходимости приглушения. Приtrue(значение по умолчанию) API получает сигналы, указывающие, какие устройства вывода следует приглушать и какие приложения находятся в фокусе. ПриfalseAPI не вызывается. API не вызывается, если HAL Audio Control не реализует приглушение. | 
| config_oemCarService | Это имя компонента для службы настройки OEM, указанное в файле конфигурации автомобильного сервиса. OEM-производители могут реализовать этот сервис для настройки действий автомобильного сервиса в соответствии с различными политиками. Если OEM-производители решат реализовать этот компонент, они должны реализовать сервис для расширения OemCarServiceпредоставляемого car-lib, а затем реализовать необходимые службы компонентов. В частности, для службы автомобильной аудиосистемы OEM-производители могут реализовать любую из подслужб аудио для управления действиями, связанными со звуком. Подробнее см. в разделе «Служба подключаемого модуля автомобильной аудиосистемы» . Если имя компонента недействительно,CarServiceне сможет подключиться ни к одной службе OEM. Имя компонента не может быть сторонним пакетом. Он должен быть предустановлен. | 
| audioVolumeAdjustmentContextsVersion | Определено в конфигурационном файле автосервиса, конфигурация для выбора версии списка приоритетов контекста регулировки громкости. Версия 1 включает все аудиоконтексты в следующем порядке: 
 Версия 2 ограничена следующими контекстами (в указанном порядке).  Версия по умолчанию —  
 | 
| audioPersistMasterMuteState | В файле конфигурации автомобильного сервиса определена конфигурация для сохранения глобального состояния отключения звука. Если установлено true(значение по умолчанию), Android восстанавливает глобальное состояние отключения звука при загрузке. Если значениеaudioUseCarVolumeGroupMutingравноtrue, это не влияет на сохранение изменений отключения звука, поскольку изменения основаны на отдельных группах громкости. Значение по умолчанию —true, и его необходимо перезаписать, если для устройства не требуется сохранение общего отключения звука. | 
| audioVolumeKeyEventTimeoutMs | В файле конфигурации сервиса автомобиля определена конфигурация, указывающая время ожидания (в миллисекундах), в течение которого группа громкости автомобиля считается активной для изменения громкости при нажатии клавиш регулировки громкости. Эта конфигурация используется следующим образом: 
  Значение по умолчанию составляет  | 
| audioUseCarVolumeGroupEvent | В файле конфигурации автосервиса определена конфигурация, разрешающая события обратного вызова для групп томов. При trueклиенты получают обратные вызовы черезICarVolumeGroupEventдля событий, влияющих на группы томов. Если включено:
  Значение по умолчанию —  | 
| config_useFixedVolume | Определено в frameworks/base/core/res/res/values/config.xml. Необходимо установитьtrue, чтобы разрешить службе автомобильной аудиосистемы управлять громкостью. Если флагconfig_useFixedVolumeне установлен или установлен вfalse(значение по умолчанию), приложения могут вызывать API управления громкостьюAudioManagerи изменять громкость в зависимости от типа потока в программном микшере. Это может быть нежелательно из-за потенциального влияния на другие приложения и того факта, что ослабление громкости в программном микшере может привести к уменьшению количества значимых битов в сигнале при приеме на аппаратный усилитель. Новые устройства, не настроенные и установленные вtrueполучают изменения громкости через API управления громкостью и отключения звукаAudioManager. | 
| config_handleVolumeKeysInWindowManager | Определено в frameworks/base/core/res/res/values/config.xmlи должно быть установленоtrue, чтобы разрешить службе автомобильной аудиосистемы перехватывать события нажатия клавиш громкости. Если установлено значениеfalse(значение по умолчанию), события нажатия клавиш громкости могут быть перенаправлены в активное приложение, что может привести к негативным последствиям при управлении событиями нажатия клавиш громкости вне службы автомобильной аудиосистемы. | 
| audioUseMinMaxActivationVolume | В файле конфигурации автосервиса определено включение минимальной и максимальной громкости активации . При trueиндекс усиления громкости может быть скорректирован благодаря управлению минимальной и максимальной громкостью активации. При значенииfalse(значение по умолчанию) минимальная и максимальная громкость активации не действуют. | 
| audioUseFadeManagerConfiguration | Определяется в файле конфигурации автомобильного сервиса для включения системного поведения при потере фокуса звука . При trueфреймворк автомобильной аудиосистемы анализирует определения конфигурации затухания звука и применяет соответствующийFadeManagerConfigurationпри диспетчеризации потери фокуса звука. При значенииfalse(значение по умолчанию) система не применяет принудительное поведение при потере фокуса звука приложением. | 
Конфигурации сервиса автоаудио
 До Android 13 конфигурации автомобильных сервисов перезаписывались наложением конфигурации продукта (для получения дополнительной информации см. раздел Настройка сборки с помощью наложений ресурсов ) для файла packages/services/Car/service/res/values/config.xml .
PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>
 Расположение файла конфигурации от <path_to_overlay> до фактического расположения должно включать packages/services/Car/service/res/values/ .
Автосервисы RRO
 Начиная с Android 13, AAOS поддерживает оверлеи ресурсов среды выполнения (Runtime resource overlays) . Используйте RRO для изменения значения конфигурации автомобильной аудиосистемы. Например, см. RRO для справочника по автомобильной cuttlefish в device/google/cuttlefish/shared/auto/rro_overlay/ . Конфигурация audioUseDynamicRouting переопределяется в device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml .
<resources>
    <bool name="audioUseDynamicRouting">true</bool>
...
 Карта наложения ресурсов содержится в device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml :
<overlay>
...
  <item target="bool/audioUseDynamicRouting"
value="@bool/audioUseDynamicRouting" />
...
</overlay>
 Манифест наложения ресурсов, определенный в device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml содержит targetPackage установленный как com.android.car.updatable .
Более подробную информацию можно найти в следующих ресурсах:
- Наложения ресурсов времени выполнения
- Устранение неполадок с наложениями ресурсов во время выполнения
API с поддержкой функций
 Метод возвращает true если функция включена на устройстве, в противном случае false . В API CarAudioManager#isAudioFeatureEnabled передаваемый параметр должен быть одним из следующих:
-  AUDIO_FEATURE_DYNAMIC_ROUTING
-  AUDIO_FEATURE_VOLUME_GROUP_MUTING
-  AUDIO_FEATURE_OEM_AUDIO_SERVICE
-  AUDIO_FEATURE_VOLUME_GROUP_EVENTS
-  AUDIO_FEATURE_AUDIO_MIRRORING