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.
Sviluppo di dispositivi personalizzati
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Questa pagina spiega diverse attività che potresti dover eseguire se stai configurando una build per il tuo dispositivo.
Creare una configurazione flash personalizzata
Le istruzioni di Fastboot sono definite in un artefatto chiamato fastboot-info.txt
. Se crei più target, avrai più file fastboot-info.txt
nel $OUT_DIR. Inoltre, $ANDROID_PRODUCT_OUT
indica il
target più recente che hai creato. Questa pagina elenca le attività da eseguire con fastboot
e può essere rigenerata utilizzando m fastboot_info
. Puoi introdurre una logica di illuminazione personalizzata modificando il file fastboot-info.txt
.
Il file fastboot-info.txt
supporta i seguenti comandi:
flash %s
: esegue il flashing di una determinata partizione. Gli argomenti facoltativi includono
--slot-other,
filename_path, and
--apply-vbmeta`.
update-super
: aggiorna la partizione super.
if-wipe
: esegue condizionatamente un altro componente se viene specificato un azzeramento.
erase %s
: cancella una determinata partizione (può essere utilizzato solo in combinazione con if-wipe
, ad es. if-wipe erase cache
).
Determina lo stato del blocco del flash
Se stai creando un daemon flashboot personalizzato (flashbootd) per un dispositivo, devi essere in grado di ottenere lo stato del bootloader e del blocco del bootloader. Il messaggio getFlashLockState()
@SystemApi
trasmette lo stato del bootloader e l'API di sistema PersistentDataBlockManager.getFlashLockState()
restituisce lo stato di blocco del bootloader sui dispositivi conformi.
Valore restituito |
Patologie |
FLASH_LOCK_UNKNOWN |
Valore restituito solo dai dispositivi che eseguono l'upgrade ad Android 7.x o versioni successive e che in precedenza non supportavano le modifiche al bootloader necessarie per ottenere lo stato di blocco del flashing se supportavano la funzionalità di blocco/sblocco del flashing.
- I nuovi dispositivi con Android 7.x o versioni successive devono trovarsi in stato
FLASH_LOCK_LOCKED o FLASH_LOCK_UNLOCKED .
- I dispositivi che eseguono l'upgrade ad Android 7.x o versioni successive e non supportano la funzionalità di sblocco/blocco del flashing dovrebbero restituire uno stato
FLASH_LOCK_LOCKED .
|
FLASH_LOCK_LOCKED |
Valore restituito da qualsiasi dispositivo che non supporta la funzionalità di sblocco/blocco lampeggiante (ovvero il dispositivo è sempre bloccato) o da qualsiasi dispositivo che supporta la funzionalità di sblocco/blocco lampeggiante ed è in stato bloccato. |
FLASH_LOCK_UNLOCKED |
Valore restituito da qualsiasi dispositivo che supporta il blocco/lo sblocco lampeggiante ed è
in stato sbloccato. |
I produttori devono testare i valori restituiti dai dispositivi con bootloader bloccati e sbloccati. Ad esempio, AOSP contiene un'implementazione di riferimento che restituisce un valore in base alla proprietà di avvio ro.boot.flash.locked
. Il codice di esempio si trova nelle seguenti directory:
frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java
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,["# Custom device development\n\nThis page explains several tasks you might need to perform if you're\nsetting up a build for your own device.\n\nCreate a custom flash configuration\n-----------------------------------\n\nFastboot instructions are defined in an artifact called `fastboot-info.txt`. If\nyou build multiple targets, you'll have multiple `fastboot-info.txt` files in\nthe \u003cvar translate=\"no\"\u003e$OUT_DIR\u003c/var\u003e. And, `$ANDROID_PRODUCT_OUT` points to the\nmost current target you built. This page list the tasks for fastboot to execute\nand can be regenerated using `m fastboot_info`. You can introduce custom\nflashing logic by modifying the `fastboot-info.txt` file.\n\nThe `fastboot-info.txt` file supports these commands:\n\n- `flash %s`: Flashes a given partition. Optional arguments include `--slot-other,`\u003cvar translate=\"no\"\u003efilename_path\u003c/var\u003e`, and`--apply-vbmeta\\`.\n- `update-super`: Updates the super partition.\n- `if-wipe`: Conditionally runs some other component if a wipe is specified.\n- `erase %s`: Erases a given partition (can only be used in conjunction with `if-wipe` -\\\u003e eg. `if-wipe erase cache`).\n\nDetermine flash lock state\n--------------------------\n\nIf you're building a custom flashboot daemon (flashbootd) for a device, you need\nto be able to obtain bootloader and bootloader lock state. The\n`getFlashLockState()` `@SystemApi` transmits the bootloader\nstate and the `PersistentDataBlockManager.getFlashLockState()` system\nAPI returns the bootloader's lock status on compliant devices.\n\n| Return value | Conditions |\n|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `FLASH_LOCK_UNKNOWN` | Returned only by devices upgrading to Android 7.x or higher that didn't previously support the bootloader changes required to get the flash lock status if they supported flashing lock/unlock capability. - New devices running Android 7.x or higher must be in either a `FLASH_LOCK_LOCKED` or `FLASH_LOCK_UNLOCKED` state. - Devices upgrading to Android 7.x or higher that don't support flashing unlock/lock capability should return a `FLASH_LOCK_LOCKED` state. |\n| `FLASH_LOCK_LOCKED` | Returned by any device that doesn't support flashing lock/unlock (that is, the device is always locked), or any device that supports flashing lock/unlock and is in the locked state. |\n| `FLASH_LOCK_UNLOCKED` | Returned by any device that supports flashing lock/unlock and is in the unlocked state. |\n\nManufacturers should test the values returned by devices with locked and\nunlocked bootloaders. For example, AOSP\ncontains a reference implementation that returns a value based on the\n`ro.boot.flash.locked` boot property. Example code is located in the\nfollowing directories:\n\n- `frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java`\n- `frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java`"]]