À 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.
Développement d'appareils personnalisés
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Cette page explique plusieurs tâches que vous devrez peut-être effectuer si vous configurez un build pour votre propre appareil.
Créer une configuration de flash personnalisée
Les instructions Fastboot sont définies dans un artefact appelé fastboot-info.txt
. Si vous créez plusieurs cibles, vous aurez plusieurs fichiers fastboot-info.txt
dans le $OUT_DIR. $ANDROID_PRODUCT_OUT
pointe vers la cible la plus récente que vous avez créée. Cette page liste les tâches à exécuter par fastboot et peut être régénérée à l'aide de m fastboot_info
. Vous pouvez implémenter une logique de clignotement personnalisée en modifiant le fichier fastboot-info.txt
.
Le fichier fastboot-info.txt
accepte les commandes suivantes:
flash %s
: flashe une partition donnée. Les arguments facultatifs incluent --slot-other,
filename_path, and
--apply-vbmeta.
update-super
: met à jour la super partition.
if-wipe
: exécute de manière conditionnelle un autre composant si un effacement est spécifié.
erase %s
: efface une partition donnée (ne peut être utilisé qu'avec if-wipe
) -> par exemple, if-wipe erase cache
).
Déterminer l'état du verrouillage du flash
Si vous créez un daemon flashboot personnalisé (flashbootd) pour un appareil, vous devez pouvoir obtenir l'état du bootloader et du verrouillage du bootloader. @SystemApi
getFlashLockState()
transmet l'état du bootloader, et l'API système PersistentDataBlockManager.getFlashLockState()
renvoie l'état de verrouillage du bootloader sur les appareils conformes.
Valeur renvoyée |
Problèmes de santé |
FLASH_LOCK_UNKNOWN |
Ne renvoyé que par les appareils qui passent à Android 7.x ou version ultérieure et qui ne prenaient pas en charge auparavant les modifications du bootloader requises pour obtenir l'état du verrouillage du flash s'ils acceptaient la fonctionnalité de verrouillage/déverrouillage du flash.
- Les nouveaux appareils équipés d'Android 7.x ou version ultérieure doivent être dans un état
FLASH_LOCK_LOCKED ou FLASH_LOCK_UNLOCKED .
- Les appareils qui passent à Android 7.x ou version ultérieure et qui ne sont pas compatibles avec la fonctionnalité de déverrouillage/verrouillage par clignotement doivent renvoyer un état
FLASH_LOCK_LOCKED .
|
FLASH_LOCK_LOCKED |
Retourné par tout appareil qui n'est pas compatible avec le verrouillage/déverrouillage clignotant (c'est-à-dire que l'appareil est toujours verrouillé) ou par tout appareil compatible avec le verrouillage/déverrouillage clignotant et qui est verrouillé. |
FLASH_LOCK_UNLOCKED |
Rendue par n'importe quel appareil compatible avec le verrouillage/déverrouillage clignotant et qui est déverrouillé. |
Les fabricants doivent tester les valeurs renvoyées par les appareils avec des bootloaders verrouillés et déverrouillés. Par exemple, AOSP contient une implémentation de référence qui renvoie une valeur en fonction de la propriété de démarrage ro.boot.flash.locked
. L'exemple de code se trouve dans les répertoires suivants:
frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java
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,["# 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`"]]