Niveau d'API du fournisseur

Le niveau d'API du fournisseur fait référence à la version de l'interface compatible avec le la partition des fournisseurs. L'interface est bidirectionnelle. décrit l'API que la partition du fournisseur fournit à la partition du système (la partition matérielle couche d'abstraction ou interface HAL), ainsi que l'API que le fournisseur partitionne de la partition système (kit de développement natif de bas niveau ou LLNDK).

Le niveau d'API du fournisseur est également utilisé pour déterminer les exigences logicielles du fournisseur Il s'agit d'un ensemble d'exigences fonctionnelles et non fonctionnelles le logiciel de la partition du fournisseur doit satisfaire.

Le reste de cette page explique comment les systèmes sont utilisées, selon la version d'Android, pour déterminer le fournisseur niveau d'API.

Gel des fournisseurs

Android permet à un fournisseur de geler la partition du fournisseur à une version spécifique de le VSR. L'ensemble des fonctionnalités qu'Android attend de la partition des fournisseurs est déterminée par le Niveau d'API du fournisseur associé à la partition du fournisseur. Au moment de l'exécution, le comportement du logiciel exécuté dans la partition système s'ajuste pour s'adapter au niveau d'API du fournisseur de la partition du fournisseur. Par exemple, le logiciel partition système peut ne pas exploiter les nouvelles fonctionnalités si elles ne sont pas prises en charge par le niveau d'API de la partition du fournisseur.

Le gel des fournisseurs n'est disponible que si vous créez Appareil compatible avec Android

Déterminer le niveau d'API du fournisseur (Android 14-QPR3 et versions ultérieures)

Pour Android 14-QPR3 et versions ultérieures, le niveau d'API du fournisseur est publiées séparément, c'est-à-dire que le niveau d'API et le fournisseur du SDK Les niveaux d'API ne sont pas synchronisés.

En raison des calendriers de publication distincts, pour Android 14-QPR3 et versions ultérieures, le niveau d'API du fournisseur est complètement découplés du niveau d'API du SDK. Pour que ce découplage soit clair, le le format du niveau d'API du fournisseur est une date au format AAAAMM (année et mois) tandis que le niveau du SDK est un entier.

Android 14-QPR3 et versions ultérieures contiennent le système suivant associées au niveau d'API du fournisseur (ro.vendor.api_level):

Propriété système Format Description Paramètre initial
ro.board.api_level AAAAMM Niveau d'API du fournisseur compatible avec le logiciel d'un chipset. Cette propriété est définie pour tous les chipsets. Celui-ci est défini automatiquement par le système de compilation.
ro.board.first_api_level AAAAMM Niveau d'API du fournisseur avec lequel le logiciel d'un chipset a été publié pour la première fois. Cette propriété ne dépend que du circuit microprogrammé et est définie par les fournisseurs de SoC si celui-ci est qualifié pour le gel des fournisseurs. Après la configuration initiale, vous ne devez plus la modifier. Les fournisseurs de SoC définissent ce paramètre à l'aide de BOARD_SHIPPING_API_LEVEL.
ro.product.first_api_level Nombre entier Niveau d'API du SDK avec lequel l'appareil est initialement lancé. Cette propriété est définie par l'OEM et n'est jamais mise à jour, même après les mises à niveau de l'OS.
ro.vendor.api_level AAAAMM Niveau d'API du fournisseur que l'appareil dans son ensemble doit respecter. Décrit après ce tableau.
ro.board.api_frozen booléen Cette propriété est définie sur true si le niveau d'API du fournisseur représenté par ro.board.api_level est finalisé. Si cette propriété n'est pas définie, la valeur par défaut est false.
ro.llndk.api_level AAAAMM Niveau d'API du fournisseur au format AAAAMM fourni par le fichier LLNDK actuel de la partition système. Le fichier LLNDK est rétrocompatible. Par conséquent, toute image de fournisseur inférieure ou égale à ce niveau d'API peut être flashée avec cette image système. Cette propriété est définie par la partition système.

La propriété ro.vendor.api_level est dérivée de l'une des deux manières suivantes:

  • Si le circuit microprogrammé est éligible au blocage des fournisseurs:

    ro.vendor.api_level = min(
      ro.board.api_level,
      AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level))
    
  • Si le circuit microprogrammé n'est pas bloqué par un fournisseur:

    ro.vendor.api_level =
      AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level)
    

La méthode AVendorSupport_getVendorApiLevelOf() détermine la niveau d'API du fournisseur à partir d'un niveau d'API du SDK. Exemple : AVendorSupport_getVendorApiLevelOf(35), où 35 est le niveau d'API du SDK version majeure d'Android en 2024 renvoie 202404, qui est la date approximative Android 14-QPR3 lorsque le niveau d'API actuel du fournisseur était défini.

Déterminer le niveau d'API du fournisseur (Android 13)

Le niveau d'API du fournisseur suit le niveau d'API du SDK, qui correspond au système d'exploitation de l'application et est mise à jour une fois par an à la sortie de la nouvelle plate-forme Android. à AOSP.

Android 13 contient le système suivant associées au niveau d'API du fournisseur (ro.vendor.api_level):

Propriété système Format Description Paramètre initial
ro.board.first_api_level Nombre entier Niveau d'API du fournisseur avec lequel le logiciel d'un chipset a été publié pour la première fois. Cela dépend uniquement du circuit microprogrammé et ne peut être modifié ni par les fournisseurs de SoC, ni par les OEM. Cette propriété n'est définie que pour les chipsets éligibles au gel des fournisseurs La valeur est établie en définissant BOARD_SHIPPING_API_LEVEL dans le fichier device.mk.
ro.board.api_level Nombre entier Niveau d'API du fournisseur compatible avec le logiciel d'un chipset. Cette propriété n'est définie que pour les chipsets qui peuvent faire l'objet d'un gel des fournisseurs. Cette propriété est définie pour tous les chipsets. Au départ, le système de compilation définit la valeur de cette propriété sur la même valeur que ro.board.first_api_level, mais peut être modifiée si la partition du fournisseur est mise à niveau.
ro.product.first_api_level Nombre entier Niveau d'API du SDK avec lequel l'appareil est initialement lancé. Cette propriété est définie par l'OEM et n'est jamais mise à jour, même après les mises à niveau de l'OS.
ro.vendor.api_level Nombre entier Niveau d'API du fournisseur que l'appareil dans son ensemble doit respecter. Décrit après ce tableau.
ro.vndk.version Nombre entier Version de VNDK sur laquelle la partition du fournisseur est construite. Cette propriété est définie par la partition système.
ro.vendor.build.version.sdk Nombre entier Niveau d'API du SDK de l'arborescence source dans laquelle la partition du fournisseur a été créée.
ro.vendor.build.version.release Nombre entier Version de la plate-forme de l'arborescence source dans laquelle la partition de fournisseur a été créée.
ro.vendor.build.version.release_or_codename Nombre entier Nom de code de l'arborescence source dans laquelle la partition du fournisseur a été créée.

La propriété ro.vendor.api_level est automatiquement définie sur la valeur minimale de ro.board.api_level (ou ro.board.first_api_level si ro.board.api_level n'est pas défini). ro.product.first_api_level