O Google está comprometido em promover a equidade racial para as comunidades negras. Veja como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Armazenamento Adotável

O Android sempre oferece suporte a acessórios de armazenamento externo (como cartões SD), mas historicamente esses acessórios eram limitados ao armazenamento simples de arquivos, devido à impermanência esperada e à proteção mínima de dados oferecida ao armazenamento externo tradicional . O Android 6.0 introduziu a capacidade de adotar mídias de armazenamento externas para agir como armazenamento interno.

Quando a mídia de armazenamento externo é adotada, ela é formatada e criptografada para funcionar apenas com um único dispositivo Android por vez. Como a mídia está fortemente ligada ao dispositivo Android que a adotou, pode armazenar com segurança aplicativos e dados privados para todos os usuários.

Quando os usuários inserem novas mídias de armazenamento (como um cartão SD) em um local adotável, o Android pergunta como eles querem usar a mídia. Eles podem optar por adotar a mídia, que a formata e criptografa, ou podem continuar usando-a como estão no armazenamento simples de arquivos. Se optarem por adotar, a plataforma oferecerá a migração do conteúdo primário de armazenamento compartilhado (normalmente montado em /sdcard ) para a mídia recém-adotada, liberando espaço valioso no armazenamento interno. Diferentemente do armazenamento tradicional, que é limitado a 2 TB devido ao uso de MBR , o armazenamento adotável usa GPT e, portanto, possui um limite de armazenamento de arquivos de ~ 9ZB.

Os aplicativos podem ser colocados na mídia de armazenamento adotada apenas quando o desenvolvedor indicou suporte por meio do atributo android:installLocation . Novas instalações de aplicativos suportados são colocadas automaticamente no dispositivo de armazenamento com o maior espaço livre, e os usuários podem mover aplicativos suportados entre dispositivos de armazenamento no aplicativo Configurações . Os aplicativos movidos para a mídia adotada são lembrados enquanto a mídia é ejetada e retornam quando a mídia é reinserida.

Segurança

A plataforma gera aleatoriamente chaves de criptografia para cada dispositivo adotado e as armazena no armazenamento interno do dispositivo Android. Isso efetivamente torna a mídia adotada tão segura quanto o armazenamento interno. As chaves são associadas aos dispositivos adotados com base no GUID da partição adotada.

Se o dispositivo estiver configurado para usar a criptografia baseada em arquivo (FBE) em seu armazenamento interno, o armazenamento adotável usará a criptografia FBE e os metadados . Caso contrário, o armazenamento adotável usa a criptografia de disco completo (FDE).

O layout em disco do dispositivo adotado reflete de perto a partição interna de dados, incluindo rótulos SELinux, etc. Quando o multiusuário é suportado no dispositivo Android, o dispositivo de armazenamento adotado também suporta o multiusuário com o mesmo nível de isolamento interno. armazenamento.

Como o conteúdo de um dispositivo de armazenamento adotado está fortemente vinculado ao dispositivo Android que o adotou, as chaves de criptografia não devem ser extraíveis do dispositivo pai e, portanto, o dispositivo de armazenamento não pode ser montado em outro lugar.

Se o seu dispositivo usa o FBE, consulte a documentação do FBE e a documentação de criptografia de metadados para saber como configurar a criptografia do FBE e de metadados no armazenamento adotável.

Desempenho e estabilidade

Somente mídias de armazenamento externas em locais estáveis, como um slot dentro de um compartimento de bateria ou atrás de uma tampa protetora, devem ser consideradas para adoção para ajudar a evitar perda ou corrupção acidental de dados. Em particular, os dispositivos USB conectados a um telefone ou tablet nunca devem ser considerados para adoção. Uma exceção comum seria uma unidade USB externa conectada a um dispositivo no estilo de TV, porque a TV inteira geralmente é instalada em um local estável.

Quando um usuário adota um novo dispositivo de armazenamento, a plataforma executa uma referência e compara seu desempenho com o armazenamento interno. Se o dispositivo adotado for significativamente mais lento que o armazenamento interno, a plataforma avisa o usuário sobre uma experiência possivelmente degradada. Essa referência foi derivada do comportamento real de E / S de aplicativos populares do Android. Atualmente, a implementação do AOSP avisa os usuários apenas além de um único limite, mas os fabricantes de dispositivos podem se adaptar ainda mais, como rejeitar completamente a adoção se a placa estiver extremamente lenta.

Os dispositivos adotados devem ser formatados com um sistema de arquivos que suporte permissões POSIX e atributos estendidos, como ext4 ou f2fs . Para um desempenho ideal, o sistema de arquivos f2fs é recomendado para dispositivos de armazenamento baseados em flash.

Ao executar a manutenção ociosa periódica, a plataforma emite FI_TRIM na mídia adotada, exatamente como no armazenamento interno. A especificação atual do cartão SD não suporta o comando DISCARD ; mas o kernel volta ao comando ERASE , que o firmware do cartão SD pode optar por usar para fins de otimização.

Teste

Para testar se o armazenamento adotável está funcionando, execute este teste do CTS:

cts-tradefed run commandAndExit cts-dev \
    -m CtsAppSecurityHostTestCases \
    -t android.appsecurity.cts.AdoptableHostTest

Para verificar o comportamento de unidades USB e cartões SD quando um dispositivo não possui um slot embutido ou quando o conector USB está sendo usado para uma conexão adb ativa, use:

adb shell sm set-virtual-disk true