Метаданные пакета услуг

На этой странице объясняется, как использовать обязательные и необязательные поля метаданных пакета услуг.

Обязательные метаданные

Модель выполнения пакетов услуг требует, чтобы каждый пакет услуг определял следующие метаданные:

sdv_service_bundle_metadata {
  # Name of the service bundle.
  #
  # Must follow SDV service naming convention rules.
  # Ref: https:/automotive/sdv/core-areas/naming-conventions
  #
  # When using VSIDL catalog and middleware generation, this name must be
  # equal to the service bundle name defined in the catalog.
  name: "TheNameOfTheServiceBundle"

  # Service Bundle Version Number.
  # Must be non-negative number.
  version_number: 1

  # Service Bundle Version Name.
  # Must be non-empty string.
  version_name: "1.0 alpha"

  # Path to the native library to be loaded as service bundle.
  # Must be the relative path from the APEX root directory
  native_library_path: "lib64/libservice_bundle.so"
}
# Service bundle one.
sdv_service_bundle_metadata {
  name: "ServiceBundleOne"
  ...
}
# Service bundle two.
sdv_service_bundle_metadata {
  name: "ServiceBundleTwo"
  ...
}

Дополнительные метаданные

Дополнительные метаданные поддерживают определенные возможности SDV.

Метаданные оркестровки

Конфигурация оркестрации SDV предоставляет механизм для управления поведением запуска и завершения работы пакетов сервисов. Конфигурация оркестрации SDV определяет набор правил, которые определяют, когда и как выполняются действия с экземплярами пакетов сервисов. Эти правила основаны на режимах транспортного средства, питания и пользовательских режимах.

Чтобы связать конфигурацию оркестрации с пакетом служб, укажите путь к модулю prebuilt_etc в необязательном поле orchestration_config_path :

sdv_service_bundle_metadata {
  ...
  # Path to the orchestration config file.
  # Warning: Shall be relative path to the APEX root directory.
  orchestration_config_path: "etc/configuration/orchestration/configuration.textproto"
}

Путь политики авторизации

Политика авторизации SDV предоставляет механизм для объявления разрешений для пакета служб. Политика авторизации определяет, какие действия может выполнять пакет служб (например, публикация, подписка, предоставление услуг или вызов).

Чтобы связать политику авторизации с пакетом сервисов, укажите путь к модулю prebuilt_etc в необязательном поле authorization_policy_path :

sdv_service_bundle_metadata {
  ...
  # Path to the authorization policy file.
  # Warning: Shall be relative path to the APEX root directory.
  authorization_policy_path: "etc/authz/permissions.textproto"
}

метаданные поставщика VSIDL

Метаданные поставщика VSIDL являются частью механизма интеграции пакетов услуг с агентами платформ диагностики и SOME/IP.

Чтобы связать метаданные поставщика VSIDL с пакетом служб, укажите путь к файлам prebuilt_etc , содержащим сгенерированные файлы метаданных, в необязательном поле vsidl_schemas_path / diagnostics_config_path / (только для конфигурации SOME/IP в APEX) external_service_bundle_metadata_path :

sdv_service_bundle_metadata {
  ...
  # Path to the file with protobuf schemas extracted from bundle's VSIDL definition.
  # Warning: Must be relative path to the APEX root directory.
  vsidl_schemas_path: "etc/vsidl_provider/TheNameOfTheServiceBundle-vsidl-config.binpb"

  # Path to the diagnostics config file.
  # Warning: Shall be relative path to the APEX root directory.
  diagnostics_config_path: "etc/vsidl_provider/TheNameOfTheServiceBundle-diag-config.binpb"

  # Path to the SOME/IP config file. To be used in SOME/IP configuration apex only.
  # Warning: Must be relative path to the APEX root directory.
  external_protocol_mapping_path: "etc/vsidl_provider/someip-config.binpb"
}

Для получения более подробной информации см. раздел «Обзор поставщика услуг VSIDL» .

Метаданные тегов журнала

Атрибут log tag задает уникальный идентификатор для журналов, генерируемых пакетом служб. Если этот атрибут не определен, автоматически генерируется тег по умолчанию, использующий имя пакета, имя пакета служб и имя экземпляра. Для максимальной ясности следует определить краткий и уникальный тег для журнала.

Пользовательские метаданные

Пользовательские метаданные позволяют производителям оборудования и поставщикам определять определенные метаданные для пакетов услуг.

sdv_service_bundle_metadata {
  ...
  # Custom service bundle metadata map.
  # Key is a string, value is a string.
  #
  # 1st custom metadata value.
  custom_metadata {
    key: "question"
    value: "Answer to the Ultimate Question of Life, the Universe, and Everything"
  }
  # 2nd custom metadata value.
  custom_metadata {
    key: "answer" value: "42"
  }
}
sdv_service_bundle_metadata {
  ...
  # Custom metadata values are stored in etc/.
  custom_metadata {
    key: "path_to_custom_metadata"
    value: "etc/configuration/file"
  }
}

Полный пример

# proto-file: //system/software_defined_vehicle/core_services/service_bundles_registry/proto/sdv_service_bundles_manifest.proto
# proto-message: SdvServiceBundleManifestEntry

# SDV service bundle.
sdv_service_bundle_metadata {
  # Name of the service bundle.
  # Must follow SDV service naming convention rules.
  name: "TheNameOfTheServiceBundle"

  # Service Bundle Version Number.
  # Must be non-negative number.
  version_number: 42

  # Service Bundle Version Name.
  # Must be non-empty string.
  version_name: "42.0.beta"

  # Path to the native library to be loaded as service bundle.
  # Must be the relative path from the APEX root directory.
  native_library_path: "lib64/libservice_bundle.so"

  # The log tag used for Android logging for the service bundle.
  # If not specified, a tag derived from service bundle FQIN will be used.
  log_tag: "current_service_bundle"

  # Path to the orchestration config file.
  # Warning: Shall be relative path to the APEX root directory.
  orchestration_config_path: "etc/configuration/orchestration/configuration.textproto"

  # Path to the file with protobuf schemas extracted from bundle's VSIDL definition.
  # Warning: Must be relative path to the APEX root directory.
  vsidl_schemas_path: "etc/vsidl_provider/TheNameOfTheServiceBundle-vsidl-config.binpb"

  # Path to the diagnostics config file.
  # Warning: Must be relative path to the APEX root directory.
  diagnostics_config_path: "etc/vsidl_provider/TheNameOfTheServiceBundle-diag-config.binpb"

  # Path to the SOME/IP config file. To be used in SOME/IP configuration apex only.
  # Warning: Must be relative path to the APEX root directory.
  external_protocol_mapping_path: "etc/vsidl_provider/someip-config.binpb"

  # Custom service bundle metadata string.
  # Key is a string, value is a string.
  custom_metadata {
    key: "key" value: "value"
  }

  # Custom metadata values are stored in etc/.
  custom_metadata {
    key: "path_to_custom_metadata"
    value: "etc/configuration/file"
  }
}

Ссылки