À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release au lieu de aosp-main pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Les appareils Android contiennent plusieurs partitions ou sections spécifiques de l'espace de stockage utilisées pour contenir des parties spécifiques du logiciel de l'appareil. Chaque partition contient une image de partition (fichier IMG) ou un instantané de l'ensemble des logiciels de la partition. La figure 1 montre la disposition des partitions principales sur un appareil :
Figure 1 : Disposition des partitions principales.
Les partitions sont classées en trois catégories :
Les partitions système sont des partitions qui sont mises à jour lors de la mise à jour de l'OS et d'autres fonctionnalités. system, boot et init_boot sont des partitions système principales.
Les partitions du fournisseur contiennent du code spécifique à l'appareil et au matériel qui peut ne jamais être mis à jour après la version initiale. Les partitions vendor, vendor_boot et odm sont des partitions de fournisseur principales.
Les partitions non modifiables sont des partitions dont le contenu n'est pas mis à jour ou est mis à jour avec des données utilisateur.
Le code des partitions système et fournisseur peut interagir à l'aide d'une interface stable appelée interface fournisseur (VINTF).
Partitions système
Vous trouverez ci-dessous la liste de toutes les partitions système et leur utilisation :
partition boot. Cette partition contient une image de noyau générique (GKI).
Cette partition contient également le ramdisk générique dans les appareils lancés sous Android 12 ou version antérieure. Pour en savoir plus sur le ramdisk générique, consultez Contenu de l'image ramdisk générique.
Partition init_boot (Android 13 et versions ultérieures) Cette partition contient un ramdisk générique. Dans Android 11 et 12, le ramdisk générique se trouve dans la partition boot.
partition system. Cette partition contient l'image système utilisée pour les produits OEM.
partition system_ext. Cette partition contient des ressources système et des modules système propriétaires qui étendent l'image système commune dans la partition system.
partition system_dlkm. Cette partition contient les modules GKI. Pour en savoir plus sur cette partition, consultez Implémenter une partition de module GKI.
partition product. Cette partition peut contenir des modules spécifiques à un produit qui ne sont regroupés avec aucune autre partition.
partition pvmfw. Cette partition stocke le micrologiciel de la machine virtuelle protégée (pvmfw), qui est le premier code à s'exécuter dans les VM protégées. Pour en savoir plus, consultez Firmware de machine virtuelle protégé.
partition generic_bootloader. Cette partition contient le bootloader générique.
Partitions du fournisseur
Vous trouverez ci-dessous la liste de toutes les partitions du fournisseur et leur utilisation :
partition vendor_boot. Cette partition contient le code de démarrage spécifique au fournisseur. Pour en savoir plus, consultez Partitions de démarrage du fournisseur.
partition recovery. Cette partition stocke l'image de récupération, qui est démarrée lors du processus de mise à jour Over The Air (OTA). Les appareils compatibles avec les mises à jour continues peuvent stocker les images de récupération sous forme de ramdisk contenu dans l'image boot ou init_boot. Pour en savoir plus sur les mises à jour continues, consultez Mises à jour A/B (continues).
partition misc. Cette partition est utilisée par la partition de récupération et est d'au moins 4 ko.
partition vbmeta. Cette partition contient les informations de démarrage sécurisé pour toutes les partitions. Ces informations permettent de vérifier que les images installées dans chaque partition sont fiables. Pour en savoir plus sur le démarrage validé, consultez Démarrage validé.
partition vendor. Cette partition contient tous les binaires spécifiques au fournisseur et qui ne sont pas assez génériques pour être distribués à AOSP.
partition vendor_dlkm. Cette partition contient les modules du noyau du fournisseur. En stockant les modules du noyau du fournisseur dans cette partition au lieu de la partition vendor, vous pouvez mettre à jour les modules du noyau sans mettre à jour la partition vendor. Pour en savoir plus, consultez Partitions DKLM des fournisseurs et des ODM.
partition odm. Cette partition contient les personnalisations du fabricant de conception d'origine (ODM) pour les packages de support de carte (BSP) du fournisseur de système sur une puce (SoC).
Ces personnalisations permettent aux ODM de remplacer ou de personnaliser les composants SoC, et d'implémenter des modules de noyau pour les composants spécifiques à la carte, les daemons et les fonctionnalités spécifiques aux ODM sur les couches d'abstraction matérielle (HAL). Cette partition est facultative. Cette partition est généralement utilisée pour contenir les personnalisations afin que les appareils puissent utiliser une seule image du fournisseur pour plusieurs SKU matériels. Pour en savoir plus, consultez Partitions ODM.
partition odm_dlkm. Cette partition est dédiée au stockage des modules du noyau ODM. En stockant les modules de noyau ODM dans cette partition au lieu de la partition odm, vous pouvez mettre à jour les modules de noyau ODM sans mettre à jour la partition odm. Pour en savoir plus, consultez Partitions DKLM des fournisseurs et des ODM.
partition radio. Cette partition contient l'image radio et n'est nécessaire que pour les appareils qui incluent une radio avec un logiciel spécifique à la radio dans une partition dédiée.
Partitions non modifiables
Vous trouverez ci-dessous la liste de toutes les partitions non modifiables et leur utilisation :
partition cache. Cette partition contient des données temporaires et est facultative si votre appareil utilise des mises à jour continues. Cette partition n'a pas besoin d'être accessible en écriture depuis le bootloader, mais elle doit être effaçable. La taille de la partition dépend du type d'appareil et de l'espace disponible sur userdata. En général, 50 à 100 Mo suffisent.
partition userdata. Cette partition contient les applications et les données installées par l'utilisateur, y compris les données de personnalisation.
partition metadata. Si votre appareil utilise le chiffrement des métadonnées, cette partition contient la clé de chiffrement des métadonnées. La taille de cette partition est de 16 Mo ou plus, elle n'est pas chiffrée et ses données ne sont pas instantanées. Cette partition est effacée lorsque la configuration d'usine de l'appareil est rétablie.
Règles et recommandations concernant la mise à jour des partitions
Nous vous recommandons de mettre à jour toutes les partitions système dans leur ensemble et toutes les partitions fournisseur dans leur ensemble. En mettant à jour l'ensemble des partitions, vous pouvez tester et vérifier que les interfaces entre les images de chaque partition restent stables.
Quelle que soit la manière dont vous mettez à jour vos partitions, les partitions suivantes doivent être mises à jour en raison de dépendances étroitement liées et du manque d'API stables :
Partitions boot et system_dlkm
les partitions init_boot, system, system_ext et product
Partitions dynamiques
Les appareils équipés d'Android 11 ou version ultérieure peuvent prendre en charge les partitions dynamiques, qui sont un système de partitionnement de l'espace utilisateur pour Android. Elles vous permettent de créer, redimensionner ou détruire des partitions lors des mises à jour OTA (Over-The-Air). Pour en savoir plus, consultez Partitions dynamiques.
Variantes de produits Soong
Le système de compilation Soong utilise des variantes d'image pour diviser les dépendances de compilation. Les modules natifs (/build/soong/cc) peuvent modifier les modules de processus système en variante principale et les modules de processus fournisseur en variante fournisseur. Un module d'une variante d'image ne peut pas être associé à d'autres modules d'une variante d'image différente.
Dans Android 12 ou version ultérieure, un module système avec vendor_available: true crée une variante fournisseur en plus de la variante principale. Pour créer une variante de produit, vous devez définir product_available: true. Certaines bibliothèques VNDK sans product_available: true ne sont pas disponibles pour les modules de produit.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (UTC)."],[],[],null,["# Partitions overview\n\nAndroid devices contain several *partitions* or specific sections of storage\nspace used to contain specific parts of the device's software. Each partition\ncontains a *partition image* (an IMG file) or snapshot of all the software for\nthe partition. Figure 1 shows the layout of core partitions on a device:\n\n**Figure 1.** Layout of core partitions.\n\nPartitions are classified in three categories:\n\n- *System partitions* are partitions that are updated when updating the OS\n and other features. The `system`, `boot`, and `init_boot` are core system\n partitions.\n\n- *Vendor partitions* contain device and hardware-specific code that might\n never be updated after initial release. The `vendor`, `vendor_boot`, and `odm`\n partitions are core vendor partitions.\n\n- *Nonupdatable partitions* are partitions whose contents are either not updated\n or updated with user data.\n\nCode in system and vendor partitions can interact using a stable interface\ncalled the *vendor interface (VINTF)*.\n| **Note:** The separation of system partitions from vendor partitions was part of an Android 11 effort called *Project Treble*. With this architecture, you can update a device's operating system and apps without updating any of hardware-specific code.\n\n### System partitions\n\nFollowing is a list of all system partitions and their use:\n\n- **`boot` partition.** This partition contains a Generic Kernel Image (GKI).\n This partition also contains the generic ramdisk in devices launched in\n Android 12 and lower. For further information on generic ramdisk, see\n [Generic ramdisk image contents](/docs/core/architecture/partitions/generic-boot#generic-boot-ramdisk-image-contents).\n\n- **`init_boot` partition (Android 13 and higher).** This partition contains a\n generic ramdisk. In Android 11 and 12, the generic ramdisk is in the\n `boot` partition.\n\n- **`system` partition.** This partition contains the system image used\n for OEM products.\n\n- **`system_ext` partition.** This partition contains system resources and\n proprietary system modules that extend the common system image in the `system`\n partition.\n\n | **Note:** *Single system image (SSI)* refers to a file, such as a zip file that contains the images of the `system` and `system_ext` partitions and reuses those images across a set of target devices. For further information on SSI, see [Android shared system image](/docs/core/architecture/partitions/shared-system-image).\n- **`system_dlkm` partition.** This partition contains GKI modules. For further\n information on this partition, see [Implement a GKI module partition](/docs/core/architecture/partitions/gki-partitions).\n\n- **`product` partition.** This partition can contain product-specific modules\n that aren't bundled with any other partitions.\n\n | **Note:** The [*Vendor Native Development Kit (VNDK)*](/docs/core/architecture/vndk) is a set of libraries installed in the `system` partition and designed exclusively for vendors to implement their HALs. The `product` and `vendor` partitions can link to VNDK libraries in the `system` partition, but can't link to other libraries in the `system` partition.\n- **`pvmfw` partition.** This partition stores the Protected Virtual Machine\n Firmware (pvmfw) which is the first code that runs in protected VMs. For more\n information, see [Protected Virtual Machine Firmware](https://android.googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/android16-release/guest/pvmfw/README.md).\n\n- **`generic_bootloader` partition.** This partition contains the generic bootloader.\n\n### Vendor partitions\n\nFollowing is a list of all vendor partitions and their use:\n\n- **`vendor_boot` partition.** This partition contains vendor-specific boot\n code. For more information, see [Vendor boot partitions](/docs/core/architecture/partitions/vendor-boot-partitions).\n\n- **`recovery` partition.** This partition stores the recovery image, which is\n booted during the over-the-air (OTA) update process. Devices that support\n seamless updates can store the recovery images as a ramdisk contained in the\n `boot` or `init_boot` image. For more information on seamless updates,\n see [A/B (seamless) updates](/docs/core/ota/ab).\n\n- **`misc` partition.** This partition is used by the recovery partition and is\n 4 KB or larger.\n\n- **`vbmeta` partition.** This partition contains the Verified Boot information\n for all of the partitions. This information verifies that the images installed\n in each partition is trusted. For further information on\n Verified Boot, see\n [Verified Boot](/docs/security/features/verifiedboot).\n\n- **`vendor` partition.** This partition contains any binary that is vendor\n specific and not generic enough to distribute to AOSP.\n\n | **Note:** The [*Vendor Native Development Kit (VNDK)*](/docs/core/architecture/vndk) is a set of libraries installed in the `system` partition and designed exclusively for vendors to implement their HALs. The `product` and `vendor` partitions can link to VNDK libraries in the `system` partition, but can't link to other libraries in the `system` partition.\n- **`vendor_dlkm` partition.** This partition contains vendor\n kernel modules. By storing vendor kernel modules in this partition\n instead of the `vendor` partition, you can update kernel\n modules without updating the `vendor` partition. For more information, see\n [Vendor and ODM DKLM partitions](/docs/core/architecture/partitions/vendor-odm-dlkm-partition).\n\n- **`odm` partition.** This partition contains original design manufacturer\n (ODM)\n customizations to system-on-chip (SoC) vendor board-support packages (BSPs).\n Such customizations enable ODMs to replace or customize SoC components, and\n implement kernel modules for board-specific components, daemons, and\n ODM-specific features on hardware abstraction layers (HALs). This partition is\n optional. Typically this partition is used to contain customizations so that\n devices can\n use a single vendor image for multiple hardware SKUs. For more information,\n see [ODM partitions](/docs/core/architecture/bootloader/partitions/odm-partitions).\n\n- **`odm_dlkm` partition.** This partition is dedicated to storing ODM kernel\n modules. By storing ODM kernel modules in the this partition, instead of\n the `odm` partition, you can update ODM kernel modules without updating the\n `odm` partition. For more information, see\n [Vendor and ODM DKLM partitions](/docs/core/architecture/partitions/vendor-odm-dlkm-partition).\n\n- **`radio` partition.** This partition contains the radio image and is needed\n only for devices that include a radio with radio-specific software in a\n dedicated partition.\n\n| **Note:** Devices that support seamless updates need two partitions, referred to as *slots* (slot A and slot B) for the `boot`, `system`, `vendor`, and `radio` partitions. For further information, see [Partition selection (slots)](/docs/core/ota/ab#slots).\n\n### Nonupdatable partitions\n\nFollowing is a list of all nonupdatable partitions and their use:\n\n- **`cache` partition.** This partition contains temporary data and is optional\n if your device uses seamless updates. This partition doesn't need to be\n writable from the bootloader, but needs to be erasable. The partition\n size depends on the device type and the availability of space on `userdata`;\n typically, 50 to 100 MB is sufficient.\n\n- **`userdata` partition.** This partition contains user-installed apps and\n data, including customization data.\n\n- **`metadata` partition.** If your device uses [metadata encryption](/docs/security/features/encryption/metadata),\n this partition contains the metadata encryption key. The size of this\n partition is 16 MB or larger, it isn't encrypted, and its data isn't\n snapshotted. This partition is erased when the device is factory reset.\n\nPartition update rules and recommendations\n------------------------------------------\n\nWe recommend updating all system partitions as a whole\nand all vendor partitions as another whole. By updating the set of partitions as\na whole, you can test to verify the interfaces between images in each partition\nremain stable.\n\nRegardless of how you update your partitions, the following partitions must\nbe updated due to tightly coupled dependencies and lack of stable APIs:\n\n- The `boot` and `system_dlkm` partitions\n- the `init_boot`, `system`, `system_ext`, and `product` partitions\n\n| **Note:** If all interfaces between the `product` partition and other system partitions have stable ABIs, you can update the `product` partition independently. For furthe information, see [Maintain ABIs between partitions](/docs/core/architecture/partitions/product-partitions#maintaining-abis).\n\nDynamic partitions\n------------------\n\nDevices running Android 11 and higher can support\ndynamic partitions, which are a userspace partitioning system for Android that\nlets you create, resize, or destroy partitions during over-the-air (OTA)\nupdates. For more information, see [Dynamic partitions](/docs/core/ota/dynamic_partitions).\n\n### Soong product variants\n\nThe [Soong](/docs/setup/build) build system uses image variants to split\nbuild dependencies. Native modules (`/build/soong/cc`) can mutate system\nprocess modules to the core variant and vendor process modules to the\nvendor variant; a module in one image variant can't link to other modules in\na different image variant.\n\nIn Android 12 or higher, a system module with\n`vendor_available: true` creates a vendor variant in addition to the core\nvariant. To create a product variant, `product_available: true` must be\ndefined. Some VNDK libraries without `product_available: true` aren't\navailable to product modules."]]