Visão geral da configuração

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 em todo o sistema que são fáceis de usar e têm uma baixa sobrecarga de desempenho. Ao usar propriedades do sistema, não é necessário usar a comunicação entre processos (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 de maneira inadequada. 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.

Para mais informações sobre propriedades do sistema, consulte Adicionar propriedades do sistema

Propriedades da HAL

Quando a fonte de verdade de uma configuração é um componente de hardware em um dispositivo, a HAL do hardware precisa fornecer as informações desse componente. Defina um novo método HAL no HAL atual para acessar a configuração. Para mais informações sobre o desenvolvimento de uma 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. Verifique 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 substituições de recursos:

  • Sobreposição de recursos padrão usada para personalizar um produto no momento da criação. Para mais informações sobre sobreposições de recursos padrão, consulte Personalizar o build com sobreposições de recursos.

  • A sobreposição de recursos de tempo de execução (RRO) é usada para mudar os valores de recursos de um pacote de destino no tempo de 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 build, uma RRO instalada em uma partição diferente pode mudar os valores dos recursos do app no ambiente de execução. Para mais informações sobre RROs, consulte Mudar o valor dos recursos de um app no momento da execução.