A partire dal 27 marzo 2025, ti consigliamo di utilizzare android-latest-release anziché aosp-main per compilare e contribuire ad AOSP. Per ulteriori informazioni, vedi Modifiche ad AOSP.
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
I dispositivi Android contengono diverse partizioni o sezioni specifiche dello spazio di archiviazione
utilizzate per contenere parti specifiche del software del dispositivo. Ogni partizione
contiene un'immagine della partizione (un file IMG) o uno snapshot di tutto il software per
la partizione. La figura 1 mostra il layout delle partizioni principali su un dispositivo:
Figura 1. Layout delle partizioni principali.
Le partizioni sono classificate in tre categorie:
Le partizioni di sistema sono partizioni che vengono aggiornate durante l'aggiornamento del sistema operativo
e di altre funzionalità. system, boot e init_boot sono partizioni di sistema
principali.
Le partizioni fornitore contengono codice specifico per il dispositivo e l'hardware che potrebbe
non essere mai aggiornato dopo la release iniziale. Le partizioni vendor, vendor_boot e odm
sono partizioni principali del fornitore.
Le partizioni non aggiornabili sono partizioni i cui contenuti non vengono aggiornati
o vengono aggiornati con i dati utente.
Il codice nelle partizioni di sistema e fornitore può interagire utilizzando un'interfaccia stabile
chiamata interfaccia fornitore (VINTF).
Partizioni di sistema
Di seguito è riportato un elenco di tutte le partizioni di sistema e del loro utilizzo:
partizione boot. Questa partizione contiene un'immagine del kernel generica (GKI).
Questa partizione contiene anche il ramdisk generico nei dispositivi lanciati in
Android 12 e versioni precedenti. Per ulteriori informazioni sul ramdisk generico, consulta
Contenuti dell'immagine ramdisk generica.
Partizione init_boot (Android 13 e versioni successive). Questa partizione contiene un
ramdisk generico. In Android 11 e 12, il ramdisk generico si trova nella partizione boot.
partizione system. Questa partizione contiene l'immagine di sistema utilizzata
per i prodotti OEM.
partizione system_ext. Questa partizione contiene risorse di sistema e
moduli di sistema proprietari che estendono l'immagine di sistema comune nella partizione system.
partizione product. Questa partizione può contenere moduli specifici del prodotto
che non sono raggruppati con altre partizioni.
partizione pvmfw. Questa partizione archivia il firmware della macchina virtuale protetta (pvmfw), ovvero il primo codice eseguito nelle VM protette. Per ulteriori
informazioni, consulta Firmware della macchina virtuale protetta.
partizione generic_bootloader. Questa partizione contiene il bootloader generico.
Partizioni fornitore
Di seguito è riportato un elenco di tutte le partizioni dei fornitori e del loro utilizzo:
partizione vendor_boot. Questa partizione contiene il codice di avvio specifico del fornitore. Per ulteriori informazioni, consulta la sezione Partizioni di avvio del fornitore.
partizione recovery. Questa partizione memorizza l'immagine di ripristino, che viene
avviata durante la procedura di aggiornamento OTA (over-the-air). I dispositivi che supportano
aggiornamenti senza interruzioni possono archiviare le immagini di ripristino come ramdisk contenute nell'immagine
boot o init_boot. Per ulteriori informazioni sugli aggiornamenti immediati,
vedi Aggiornamenti A/B (immediati).
partizione misc. Questa partizione viene utilizzata dalla partizione di ripristino ed è
di almeno 4 KB.
partizione vbmeta. Questa partizione contiene le informazioni su Verified Boot
per tutte le partizioni. Queste informazioni verificano che le immagini installate
in ogni partizione siano attendibili. Per ulteriori informazioni
sull'avvio verificato, consulta
Avvio verificato.
partizione vendor. Questa partizione contiene qualsiasi binario specifico del fornitore e non sufficientemente generico da essere distribuito ad AOSP.
partizione vendor_dlkm. Questa partizione contiene i moduli
del kernel del fornitore. Se memorizzi i moduli del kernel del fornitore in questa partizione anziché nella partizione vendor, puoi aggiornare i moduli del kernel senza aggiornare la partizione vendor. Per ulteriori informazioni, consulta
Partizioni DKLM di fornitori e ODM.
partizione odm. Questa partizione contiene personalizzazioni del produttore di design originale
(ODM)
per i pacchetti di supporto della scheda (BSP) del fornitore di system-on-chip (SoC).
Queste personalizzazioni consentono agli ODM di sostituire o personalizzare i componenti SoC e di implementare moduli kernel per componenti specifici della scheda, daemon e funzionalità specifiche dell'ODM nei livelli di astrazione hardware (HAL). Questa partizione è
facoltativa. In genere questa partizione viene utilizzata per contenere le personalizzazioni in modo che
i dispositivi possano
utilizzare una singola immagine fornitore per più SKU hardware. Per ulteriori informazioni,
vedi Partizioni ODM.
partizione odm_dlkm. Questa partizione è dedicata all'archiviazione dei moduli
del kernel ODM. Se memorizzi i moduli del kernel ODM in questa partizione anziché nella partizione odm, puoi aggiornarli senza aggiornare la partizione odm. Per ulteriori informazioni, consulta
Partizioni DKLM di fornitori e ODM.
partizione radio. Questa partizione contiene l'immagine della radio ed è necessaria
solo per i dispositivi che includono una radio con software specifico per la radio in una
partizione dedicata.
Partizioni non aggiornabili
Di seguito è riportato un elenco di tutte le partizioni non aggiornabili e del loro utilizzo:
partizione cache. Questa partizione contiene dati temporanei ed è facoltativa
se il dispositivo utilizza aggiornamenti automatici. Questa partizione non deve essere scrivibile dal bootloader, ma deve essere cancellabile. La dimensione
della partizione dipende dal tipo di dispositivo e dalla disponibilità di spazio su userdata;
in genere, 50-100 MB sono sufficienti.
partizione userdata. Questa partizione contiene le app installate dall'utente e
i dati, inclusi quelli di personalizzazione.
partizione metadata. Se il tuo dispositivo utilizza la crittografia dei metadati,
questa partizione contiene la chiave di crittografia dei metadati. La dimensione di questa
partizione è di 16 MB o superiore, non è criptata e i relativi dati non sono
snapshot. Questa partizione viene cancellata quando vengono ripristinati i dati di fabbrica del dispositivo.
Regole e consigli per l'aggiornamento delle partizioni
Ti consigliamo di aggiornare tutte le partizioni di sistema nel loro complesso
e tutte le partizioni del fornitore nel loro complesso. Aggiornando l'insieme di partizioni nel suo complesso, puoi testare per verificare che le interfacce tra le immagini in ogni partizione rimangano stabili.
Indipendentemente da come aggiorni le partizioni, le seguenti partizioni devono
essere aggiornate a causa di dipendenze strettamente accoppiate e della mancanza di API stabili:
Le partizioni boot e system_dlkm
le partizioni init_boot, system, system_ext e product
Partizioni dinamiche
I dispositivi con Android 11 e versioni successive possono supportare
le partizioni dinamiche, un sistema di partizionamento dello spazio utente per Android che
consente di creare, ridimensionare o eliminare partizioni durante gli aggiornamenti
over-the-air (OTA). Per ulteriori informazioni, vedi Partizioni dinamiche.
Varianti di prodotto Soong
Il sistema di compilazione Soong utilizza le varianti dell'immagine per dividere
le dipendenze di compilazione. I moduli nativi (/build/soong/cc) possono modificare i moduli di processo di sistema nella variante core e i moduli di processo del fornitore nella variante del fornitore. Un modulo in una variante dell'immagine non può essere collegato ad altri moduli in una variante dell'immagine diversa.
In Android 12 o versioni successive, un modulo di sistema con
vendor_available: true crea una variante del fornitore oltre alla variante
principale. Per creare una variante di prodotto, è necessario definire product_available: true. Alcune librerie VNDK senza product_available: true non sono
disponibili per i moduli prodotto.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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."]]