O Android 9 e versões mais recentes oferecem suporte à criação
  de partições product usando o sistema de build do Android. Anteriormente,
  o Android 8.x aplicava a separação de componentes específicos do SoC
  da partição system para a partição vendor
  sem dedicar espaço para componentes específicos de OEM criados com base no
  sistema de criação do Android. O Android 9 e versões mais recentes oferecem
  permissões
  e recursos de inclusão na lista de permissões adicionais que se aplicam a apps privados em diferentes partições.
Sobre as partições de produtos
  Muitos OEMs personalizam a imagem do sistema AOSP para implementar os próprios recursos
  e os requisitos da operadora. No entanto, essas personalizações tornam
  impossível usar uma única imagem do sistema para vários SKUs de software. Cada
  imagem precisa ser diferente para oferecer suporte às personalizações, como com
  diferentes localidades ou operadoras. O uso de uma
  partição product separada para conter personalizações permite
  usar uma única imagem do sistema para vários SKUs de software. A
  partição system hospeda um código genérico que pode ser compartilhado entre
  muitos SKUs de software. A partição vendor continua hospedando
  o código BSP específico do SoC, que pode ser compartilhado entre vários
  dispositivos com base no SoC.
  O uso de partições separadas tem algumas desvantagens, como
  o gerenciamento de espaço em disco (uma quantidade limitada de espaço precisa permanecer reservada para o crescimento
  futuro) e a manutenção
  de uma interface binária de aplicativo estável (ABI, na sigla em inglês) entre as partições. Antes
  de decidir usar partições product, considere sua
  implementação exclusiva do AOSP e possíveis táticas de mitigação, como
  particionar um dispositivo durante uma atualização
  over-the-air (OTA), que não é feita pelo Google, mas por alguns OEMs.
  O particionamento dinâmico é
  uma boa solução para isso.
Partições e permissões de produtos
  No Android 9 e versões mais recentes, uma mudança nas permissões
  e no processo de inclusão na lista de permissões afeta a forma como você concede permissões de apps privados nas
  partições "product". O arquivo permissions.xml
  precisa residir na mesma partição que o priv-apps. Colocar um
  arquivo permissions.xml na partição system
  para apps privados não estende essas permissões para apps privados na partição
  product, mesmo que o primeiro seja uma extensão do segundo.
  Para saber mais sobre as permissões e os processos de inclusão na lista de permissões privilegiadas, consulte
  Lista de permissões privilegiadas.
/oem legado x /product
  Há dois tipos de atributos da partição product, dependendo
  da aplicação de interface
  do produto. Além disso, a partição product é diferente
  da partição oem legada:
| Partição | Atributos | 
|---|---|
| oem | 
 | 
| product | 
 | 
| product(interfaces aplicadas) | 
 | 
  Por esses motivos, o Android 9 oferece suporte à partição product, mantendo o suporte à partição oem legada para dispositivos que dependem
  dela. Para desvincular a partição product da partição
  system, o Android 11 oferece suporte à
  aplicação de interfaces
  product.
/componentes do produto
  A partição product contém os seguintes componentes:
- Propriedades do sistema específicas do produto (/product/build.prop)
- RROs específicos do produto (/product/overlay/*.apk)
- Apps específicos do produto (/product/app/*.apk)
- priv-apps específicos do produto (/product/priv-app/*.apk)
- Bibliotecas específicas do produto (/product/lib/*)
- Bibliotecas Java específicas do produto (/product/framework/*.jar)
- Configurações do sistema do Android Framework específicas do produto
  (/product/etc/sysconfig/*e/product/etc/permissions/*)
- Arquivos de mídia específicos do produto (/product/media/audio/*)
- Arquivos bootanimationespecíficos do produto
Nenhuma custom_images
  Não é possível usar custom_images. Eles não têm suporte para o
  seguinte:
- Instalar módulos em um destino específico.
  O custom_imagesoferece suporte à cópia de artefatos para uma imagem, mas não é possível instalar um módulo em uma partição específica especificando a partição de destino como parte de uma regra de build.
- Suporte da Soong. O custom_imagesnão pode ser criado usando o sistema de build do Soong.
- Suporte a atualizações OTA. custom_imagessão usadas como imagens ROM de fábrica que não podem receber atualizações OTA.
Manter ABIs entre partições
  A partição product no Android 9 é uma extensão da
  partição system. Há uma ABI fraca entre
  as partições product e system. Portanto, ambas precisam ser
  atualizadas ao mesmo tempo, e a ABI precisa ser baseada no SDK do sistema. Se o
  SDK do sistema não abranger todas as plataformas de API entre product e
  system, os OEMs precisarão manter as próprias ABIs entre
  as duas partições.
As partições product e system podem ter
  dependências umas das outras. No entanto, os testes com a
  imagem genérica do sistema (GSI)
  precisam funcionar corretamente sem a partição product.
  Quando as interfaces product são aplicadas, a partição product
  é desassociada da partição system. A partição product
  usa apenas as interfaces permitidas da partição system.
A partição product não pode ter dependências por interfaces instáveis na
  partição vendor. A interação direta entre as
  partições product e vendor é proibida.
  Isso é aplicado pelo SEpolicy.
Implementar partições de produtos
  Antes de implementar uma nova partição de produto, revise as
  mudanças
  relacionadas à partição de produto no AOSP. Em seguida, para configurar product,
  inclua as seguintes flags de build do produto ou da placa:
- BOARD_USES_PRODUCTIMAGE
- BOARD_PRODUCTIMAGE_PARTITION_SIZE
- BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE
- PRODUCT_PRODUCT_PROPERTIESpara- /product/build.prop. Elas precisam estar dentro de um- $(call inherit-product path/to/device.mk), como em- PRODUCT_PRODUCT_PROPERTIES += product.abc=ok.
Instalar um módulo na partição do produto
  Use os flags de build a seguir para instalar um módulo na partição product.
- product_specific: trueem- Android.bp
- LOCAL_PRODUCT_MODULE := trueem- Android.mk
Ativar a inicialização verificada
  Para evitar que a partição product seja adulterada por
  software malicioso, ative a
  Inicialização
  verificada do Android (AVB) para essa partição, assim como você faz com as
  partições vendor e system. Para ativar o AVB,
  inclua as seguintes flags de build:
  BOARD_AVB_PRODUCT_ADD_HASHTREE_FOOTER_ARGS.
