Gerenciamento de desgaste do flash

O armazenamento interno do Android Automotive usa um Embedded MultiMediaCard (eMMC) com milhares de ciclos de apagamento/gravação; se o eMMC falhar, o sistema pode ficar inutilizável. Como os veículos têm longa vida útil (normalmente mais de 10 anos), o eMMC deve ser extremamente confiável. Esta página descreve o comportamento do eMMC e como os OEMs podem reduzir o risco de falha de um eMMC (e, assim, evitar falhas nos sistemas Android Automotive).

Comportamento do eMMC

Os dispositivos eMMC usam técnicas de nivelamento de desgaste para contornar as limitações de apagamento/gravação, organizando os dados e distribuindo as gravações uniformemente pelo sistema (para que nenhum bloco falhe devido a gravações intensas). A vida útil estimada do eMMC depende de:

  • Quantidade de gravações . Nos telefones, a quantidade de dados gravados no armazenamento interno pode ser superior a 10 GB por dia. Nas implementações automotivas, não temos dados reais sobre quantos dados serão gravados devido a aplicativos limitados. No entanto, quando os usuários transmitem música de alta qualidade e usam navegação, observamos 50 MB de dados gravados no eMMC a cada minuto. No futuro, poderemos ter outros tipos de aplicativos de gravação intensiva, como aplicativos de câmera de painel que gravam e armazenam vídeos continuamente. Além disso, alguns carros são veículos compartilhados usados ​​várias horas todos os dias. Por esses e outros motivos, esperamos que as implementações do Android Automotive tenham mais gravações eMMC do que um telefone.
  • Escreva padrões . Gravações e apagamentos são feitos em blocos. Escrever dados frequentemente em pequenos pedaços desgasta o eMMC mais rapidamente do que escrever a mesma quantidade de dados com menos frequência e em pedaços maiores.
  • Tamanho disponível do eMMC . Um tamanho de armazenamento maior significa que o algoritmo de nivelamento de desgaste pode distribuir as gravações por um número maior de blocos.
  • Use técnicas de nivelamento.
  • Fatores Ambientais . Os exemplos incluem uma faixa de temperatura operacional geralmente de -20 a 85 Celsius; temperaturas além dessa faixa podem reduzir ainda mais a vida útil do eMMC.

Para um eMMC com 16 GB de espaço utilizável e 3k ciclos de apagamento/gravação, estimamos o seguinte:

Escreve diariamente 16 GB 32GB
Tempo de vida estimado 10 anos 5 anos

No entanto, o sistema deixaria de funcionar corretamente muito antes do eMMc se desgastar completamente, à medida que o tamanho de armazenamento utilizável diminui, e o eMMC pode ter uma vida útil ainda mais curta, dependendo das técnicas de nivelamento e dos padrões de gravação usados. Além disso, esta estimativa não considera os efeitos de aplicativos mal-comportados ou maliciosos, que poderiam atacar sistemas automotivos gravando grandes blocos de dados inúteis no eMMC sem permissões especiais.

Para detectar a possível falha do eMMC antes que ela realmente aconteça, o monitoramento adequado da integridade do armazenamento deve ser integrado como parte do monitoramento geral da integridade do sistema

Implementação

O Android O oferece suporte a recursos que permitem aos OEMs proteger e monitorar o armazenamento interno do Android Automotive e prolongar sua vida útil.

Restringir aplicativos de terceiros

Para proteger o armazenamento interno do sistema Android Automotive, o Android O permite que os OEMs configurem se aplicativos de terceiros podem ser instalados no armazenamento interno (os aplicativos podem gravar apenas na partição em que foram instalados). Para configurar, defina a seguinte configuração na sobreposição de recursos:

<bool name="config_allow3rdPartyAppOnInternal">false</bool>

Reduza o desgaste do flash

OEMs preocupados com o desgaste do flash no armazenamento interno também podem adicionar um cartão SD que seja rápido o suficiente para ser usado como armazenamento adotado. O cartão SD tem o seguinte comportamento:

  • Quando adotado, o cartão SD é criptografado e seguro para armazenar dados de aplicativos.
  • O slot do cartão SD deve estar em um local seguro (não se espera que os usuários removam o cartão SD com frequência).
  • O cartão SD não pode ser usado para transferir dados entre sistemas automotivos e um computador.
  • Ejetar o cartão SD não afeta o sistema em execução. No entanto, ele não deve ser removido, a menos que precise ser substituído.

Para garantir que aplicativos de terceiros (aqueles desenvolvidos por desenvolvedores de aplicativos automotivos) possam ser instalados no cartão SD se o carro exigir, os desenvolvedores de aplicativos automotivos devem incluir android: installLocation =["auto" | "preferExternal"] no arquivo de manifesto do aplicativo.

Se o carro não permitir a instalação de aplicativos de terceiros no armazenamento interno (conforme descrito em Restringir aplicativos de terceiros ), sem esse sinalizador (ou se a configuração installLocation =internalOnly estiver configurada), a instalação do aplicativo falhará.

Obtenha métricas de disco com armazenamento

O Android O apresenta o storaged , um novo serviço de sistema que faz amostras e publica métricas de disco e eMMc, como informações sobre o uso geral do disco, estimativa de vida útil do eMMC e estatísticas de E/S de disco por aplicativo. Os OEMs podem usar essas informações para avisar os usuários quando o armazenamento interno começa a falhar ou quando aplicativos específicos estão executando muitas E/Ss de disco. Para obter detalhes, consulte Implemento armazenado .

Validação

Este recurso é testado nos testes PackageManager .