Metadaten für Dienstpakete

Auf dieser Seite wird erläutert, wie Sie die obligatorischen und optionalen Metadatenfelder für Dienstpakete verwenden.

Obligatorische Metadaten

Für das Ausführungsmodell für Dienstpakete muss für jedes Dienstpaket Folgendes definiert sein:

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"
  ...
}

Optionale Metadaten

Optionale Metadaten unterstützen bestimmte SDV-Funktionen.

Orchestrierungsmetadaten

Die SDV-Orchestrierungskonfiguration bietet einen Mechanismus zum Steuern des Start- und Herunterfahrverhaltens von Dienstpaketen. Die SDV-Orchestrierungskonfiguration definiert eine Reihe von Regeln, die bestimmen, wann und wie Aktionen für Dienstpaketinstanzen ausgeführt werden. Diese Regeln basieren auf Fahrzeug-, Energie- und benutzerdefinierten Modi.

Wenn Sie eine Orchestrierungskonfiguration mit dem Dienstpaket verknüpfen möchten, geben Sie den Pfad zum Modul prebuilt_etc im optionalen Feld orchestration_config_path an:

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"
}

Pfad zur Autorisierungsrichtlinie

Die SDV-Autorisierungsrichtlinie bietet einen Mechanismus zum Deklarieren von Berechtigungen für das Dienstpaket. Die Autorisierungsrichtlinie definiert, welche Aktionen das Dienstpaket ausführen kann (z. B. veröffentlichen, abonnieren, bereitstellen oder aufrufen).

Wenn Sie eine Autorisierungsrichtlinie mit dem Dienstpaket verknüpfen möchten, geben Sie den Pfad zum Modul prebuilt_etc im optionalen Feld authorization_policy_path an:

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-Anbietermetadaten

Die VSIDL-Anbietermetadaten sind Teil eines Mechanismus zur Integration von Dienstpaketen mit Diagnose- und SOME/IP-Plattform-Agents.

Wenn Sie VSIDL-Anbietermetadaten mit einem Dienstpaket verknüpfen möchten, geben Sie den Pfad zu den prebuilt_etc-Dateien an, die generierte Metadatendateien enthalten, im optionalen Feld vsidl_schemas_path / diagnostics_config_path / (nur SOME/IP-Konfiguration APEX) external_service_bundle_metadata_path an:

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"
}

Weitere Informationen finden Sie unter VSIDL-Anbieter – Übersicht.

Metadaten für Log-Tags

Das Attribut für Log-Tags gibt die eindeutige Kennung für Logs an, die vom Dienstpaket generiert werden. Wenn dieses Attribut nicht definiert ist, wird automatisch ein Standardtag mit dem Paketnamen, dem Namen des Dienstpakets und dem Instanznamen generiert. Definieren Sie ein prägnantes und eindeutiges Log-Tag, um die Übersichtlichkeit zu verbessern.

Benutzerdefinierte Metadaten

Mit benutzerdefinierten Metadaten können OEMs und Anbieter bestimmte Metadaten für Dienstpakete definieren.

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"
  }
}

Vollständiges Beispiel

# 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"
  }
}

Verweise