À 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.
AOSP propose les options suivantes pour stocker des informations de configuration sur un appareil:
Propriétés système
Propriétés de la couche d'abstraction matérielle (HAL)
Fichiers XML de configuration système
Superpositions de ressources (statiques et d'exécution)
Propriétés système
Les propriétés système sont des paires clé-valeur de chaîne stockées dans le dictionnaire global build.prop. Les propriétés système sont des ressources à l'échelle du système, faciles à utiliser et présentant un faible coût lié aux performances. Lorsque vous utilisez des propriétés système, vous n'avez pas besoin d'utiliser la communication interprocessus (IPC), même si une propriété système est partagée entre plusieurs processus. Toutefois, les propriétés système sont similaires aux variables globales et peuvent être dangereuses en cas d'utilisation abusive. L'utilisation abusive des propriétés système peut entraîner des problèmes tels que des failles de sécurité et des applications inaccessibles aux utilisateurs. Avant d'utiliser des propriétés système pour stocker des informations de configuration, examinez les autres options de configuration.
Lorsque la source de vérité d'une configuration provient d'un composant matériel sur un appareil, le HAL du matériel doit fournir les informations de ce composant. Définissez une nouvelle méthode HAL dans le HAL existant pour accéder à la configuration. Pour en savoir plus sur le développement d'un HAL, consultez AIDL pour les HAL.
Fichiers XML de configuration système
Lorsque les données de configuration sont statiques, mais complexes (structurées), envisagez d'utiliser XML ou d'autres formats de ce type pour les données de configuration. Assurez-vous que le schéma de fichier reste stable. Pour les fichiers XML, vous pouvez utiliser xsd_config pour stabiliser le schéma et tirer parti d'un analyseur XML généré automatiquement.
Superposition de ressources
Vous pouvez utiliser des superpositions de ressources pour personnaliser un produit. Il existe deux types de superpositions de ressources:
Superposition de ressources standard utilisée pour personnaliser un produit au moment de la compilation. Pour en savoir plus sur les superpositions de ressources standards, consultez la section Personnaliser le build avec des superpositions de ressources.
La superposition de ressources d'exécution (RRO) permet de modifier les valeurs de ressources d'un package cible au moment de l'exécution. Par exemple, une application installée sur l'image système peut modifier son comportement en fonction de la valeur d'une ressource. Plutôt que de coder en dur la valeur de la ressource au moment de la compilation, un RRO installé sur une autre partition peut modifier les valeurs des ressources de l'application au moment de l'exécution. Pour en savoir plus sur les RRO, consultez la section Modifier la valeur des ressources d'une application au moment de l'exécution.
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,["# Configuration overview\n\nAOSP offers the following options for storing configuration information on a\ndevice:\n\n- System properties\n- Hardware abstraction layer (HAL) properties\n- System config XML files\n- Resource overlays (static and runtime)\n\nSystem properties\n-----------------\n\n*System properties* are string key/value pairs stored in the `build.prop`\nglobal dictionary. System properties are system-wide resources that are easy to\nuse and have a low performance overhead. When using system properties, you don't\nneed to use interprocess communication (IPC) even if a system property is shared\nacross multiple processes. However, system properties are similar to global\nvariables and can be harmful when misused. The misuse of system properties can\nresult in issues such as security vulnerabilities and apps becoming inaccessible\nto users. Before using system properties to store configuration information,\nconsider the other configuration options.\n\nFor further information on system properties, see\n[Add system properties](/docs/core/architecture/configuration/add-system-properties)\n| **Note:** Previous to Android 10, AOSP used a ConfigStore HAL to store system properties. ConfigStore HAL is deprecated and should no longer be used. For information on the ConfigStore HAL, refer to [ConfigStore HAL](/docs/core/architecture/configuration/archive).\n\nHAL properties\n--------------\n\nWhen the source of truth for a configuration is from a hardware component on a\ndevice, the HAL for the hardware must provide the information for that\ncomponent. Define a new HAL method in the existing HAL for accessing the\nconfiguration. For further information on developing a HAL, see\n[AIDL for HALs](/docs/core/architecture/aidl/aidl-hals).\n| **Note:** Don't configure the HAL to use system properties as a side-channel communication mechanism for HALs.\n\nSystem config XML files\n-----------------------\n\nWhen the configuration data is static but complicated (structured), consider\nusing XML or other such formats for the configuration data. Ensure that the\nfile schema remains stable. For XML files, you can use\n[`xsd_config`](/docs/core/architecture/config-file-schema-api#config-build-rule)\nto keep the schema stable, and to take advantage of an autogenerated XML\nparser.\n\nResource overlay\n----------------\n\nYou can use resource overlays to customize a product. There are two types of\nresource overlays:\n\n- *Standard resource overlay* used to customize a product at build time. Foris\n information on standard resource overlays, see\n [Customizing the build with resource overlays](/docs/setup/create/new-device#use-resource-overlays).\n\n- *Runtime resource overlay (RRO)* is used to change the resource values\n of a target package at runtime. For example, an app installed on the system\n image might change its behavior based upon the value of a resource. Rather than\n hardcoding the resource value at build time, an RRO installed on a different\n partition can change the values of the app's resources at runtime. For more\n information on RROs, see\n [Change the value of an app's resources at runtime](/docs/core/runtime/rros)."]]