A partir del 27 de marzo de 2025, te recomendamos que uses android-latest-release en lugar de aosp-main para compilar y contribuir a AOSP. Para obtener más información, consulta Cambios en AOSP.
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
AOSP ofrece las siguientes opciones para almacenar información de configuración en un dispositivo:
Propiedades del sistema
Propiedades de la capa de abstracción de hardware (HAL)
Archivos en formato XML de configuración del sistema
Superposiciones de recursos (estáticos y en tiempo de ejecución)
Propiedades del sistema
Las propiedades del sistema son pares clave-valor de cadenas que se almacenan en el diccionario global build.prop. Las propiedades del sistema son recursos del sistema fáciles de usar y con una sobrecarga de rendimiento baja. Cuando usas propiedades del sistema, no necesitas usar la comunicación entre procesos (IPC), incluso si una propiedad del sistema se comparte entre varios procesos. Sin embargo, las propiedades del sistema son similares a las variables
globales y pueden ser dañinas si se usan de forma inadecuada. El uso inadecuado de las propiedades del sistema puede generar problemas, como vulnerabilidades de seguridad y apps inaccesibles para los usuarios. Antes de usar las propiedades del sistema para almacenar información de configuración, considera las otras opciones de configuración.
Cuando la fuente de información de una configuración proviene de un componente de hardware en un dispositivo, el HAL del hardware debe proporcionar la información de ese componente. Define un nuevo método HAL en el HAL existente para acceder a la configuración. Para obtener más información sobre el desarrollo de un HAL, consulta AIDL para HALs.
Archivos en formato XML de configuración del sistema
Cuando los datos de configuración sean estáticos, pero complicados (estructurados), considera usar XML o algún otro formato similar para los datos de configuración. Asegúrate de que el esquema del archivo permanezca estable. En el caso de los archivos en formato XML, puedes usar xsd_config para mantener el esquema estable y aprovechar un analizador de XML generado automáticamente.
Superposición de recursos
Puedes usar superposiciones de recursos para personalizar un producto. Existen dos tipos de superposiciones de recursos:
La superposición de recursos del entorno de ejecución (RRO) se usa para cambiar los valores de los recursos de un paquete de destino en el tiempo de ejecución. Por ejemplo, una app instalada en la imagen del sistema podría cambiar su comportamiento según el valor de un recurso. En lugar de codificar el valor del recurso en el tiempo de compilación, un RRO instalado en una partición diferente puede cambiar los valores de los recursos de la app en el tiempo de ejecución. Para obtener más información sobre los RRO, consulta Cómo cambiar el valor de los recursos de una app en el tiempo de ejecución.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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)."]]