A partir de 27 de março de 2025, recomendamos usar android-latest-release em vez de aosp-main para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
O AOSP oferece as seguintes opções para armazenar informações de configuração em um
dispositivo:
Propriedades do sistema
Propriedades da camada de abstração de hardware (HAL)
Arquivos XML de configuração do sistema
Sobreposições de recursos (estáticas e no momento da execução)
Propriedades do sistema
As propriedades do sistema são pares de chave-valor de string armazenados no dicionário global
build.prop. As propriedades do sistema são recursos fáceis de
usar e têm uma sobrecarga de desempenho baixa. Ao usar propriedades do sistema, você não
precisa usar a comunicação interprocesso (IPC, na sigla em inglês), mesmo que uma propriedade do sistema seja compartilhada
em vários processos. No entanto, as propriedades do sistema são semelhantes às variáveis
globais e podem ser prejudiciais quando usadas indevidamente. O uso indevido de propriedades do sistema pode
resultar em problemas, como vulnerabilidades de segurança e apps inacessíveis
para os usuários. Antes de usar propriedades do sistema para armazenar informações de configuração,
considere as outras opções de configuração.
Quando a fonte de verdade de uma configuração é de um componente de hardware em um
dispositivo, o HAL do hardware precisa fornecer as informações para esse
componente. Defina um novo método HAL no HAL atual para acessar a
configuração. Para mais informações sobre o desenvolvimento de um HAL, consulte
AIDL para HALs.
Arquivos XML de configuração do sistema
Quando os dados de configuração são estáticos, mas complicados (estruturados), considere
usar XML ou outros formatos semelhantes para os dados de configuração. Confira se o
esquema de arquivo permanece estável. Para arquivos XML, use
xsd_config
para manter o esquema estável e aproveitar um analisador XML
gerado automaticamente.
Sobreposição de recursos
É possível usar sobreposições de recursos para personalizar um produto. Há dois tipos de
sobreposições de recursos:
A sobreposição de recursos de tempo de execução (RRO, na sigla em inglês) é usada para mudar os valores de recursos
de um pacote de destino no momento da execução. Por exemplo, um app instalado na imagem
do sistema pode mudar o comportamento com base no valor de um recurso. Em vez de
codificar o valor do recurso no momento da criação, uma RRO instalada em uma partição
diferente pode mudar os valores dos recursos do app no momento da execução. Para mais
informações sobre RROs, consulte
Mudar o valor dos recursos de um app durante a execução.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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)."]]