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.
AOSP offre le seguenti opzioni per memorizzare le informazioni di configurazione su un
dispositivo:
Proprietà di sistema
Proprietà del livello di astrazione hardware (HAL)
File XML di configurazione del sistema
Overlay delle risorse (statici e di runtime)
Proprietà di sistema
Le proprietà di sistema sono coppie chiave/valore di stringhe memorizzate nel dizionario globale build.prop. Le proprietà di sistema sono risorse di sistema facili da utilizzare e con un basso overhead per le prestazioni. Quando utilizzi le proprietà di sistema, non
è necessario utilizzare la comunicazione interprocesso (IPC) anche se una proprietà di sistema è condivisa
tra più processi. Tuttavia, le proprietà di sistema sono simili alle variabili globali e possono essere dannose se usate in modo improprio. L'uso improprio delle proprietà di sistema può provocare problemi come vulnerabilità di sicurezza e app non accessibili agli utenti. Prima di utilizzare le proprietà di sistema per archiviare le informazioni di configurazione,
considera le altre opzioni di configurazione.
Quando l'origine attendibile di una configurazione proviene da un componente hardware su un
dispositivo, l'HAL per l'hardware deve fornire le informazioni per quel
componente. Definisci un nuovo metodo HAL nell'HAL esistente per accedere alla configurazione. Per ulteriori informazioni sullo sviluppo di un HAL, consulta
AIDL per gli HAL.
File XML di configurazione del sistema
Quando i dati di configurazione sono statici, ma complicati (strutturati), valuta la possibilità di utilizzare XML o altri formati simili per i dati di configurazione. Assicurati che lo schema del file rimanga stabile. Per i file XML, puoi utilizzare
xsd_config
per mantenere stabile lo schema e sfruttare un parser XML autogenerato.
Sovrapposizione delle risorse
Puoi utilizzare gli overlay delle risorse per personalizzare un prodotto. Esistono due tipi di overlay delle risorse:
L'overlay delle risorse di runtime (RRO) viene utilizzato per modificare i valori delle risorse di un pacchetto target in fase di runtime. Ad esempio, un'app installata sull'immagine di sistema potrebbe cambiare il proprio comportamento in base al valore di una risorsa. Anziché
hardcodere il valore della risorsa in fase di compilazione, un RRO installato su una
partizione diversa può modificare i valori delle risorse dell'app in fase di esecuzione. Per ulteriori informazioni sugli RRO, consulta Modificare il valore delle risorse di un'app in fase di esecuzione.
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,["# 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)."]]