O Google está bloqueando aplicativos Android de escrever em cartões SD?
Esta é uma grande questão, e um tópico por vezes muito mal compreendido na arena do Android. Para responder à sua pergunta, olhando para a progressão do código aberto do Google&apos para o Android num contexto histórico, a resposta é sim. Mas, se isto foi intencional ou não, é uma questão de perspectiva.
Let's começa com um pouco de terminologia. Desde o surgimento do Android, quase todo tipo de armazenamento tem sido considerado "armazenamento externo", mesmo a memória flash não removível que vem em todos os dispositivos. Para distinguir, a memória flash não removível é chamada de "armazenamento primário", enquanto um cartão micro SD removível é chamado de "armazenamento secundário". Nas primeiras versões do Android, um aplicativo precisava apenas de permissão para WRITE_EXTERNAL_STORAGE para poder acessar totalmente o armazenamento primário e secundário.
Em março de 2011, uma modificação na codificação do Android foi feita que mudou drasticamente a forma como os meios de armazenamento secundário (cartões SD externos) eram montados pelo sistema operacional Android. Especificamente, o commit leu desta forma: "Montar armazenamento externo secundário gravável por AID_MEDIA_RW em vez de AID_SDCARD_RW." Isso significava que a mídia agora teria que pertencer ao grupo "media_rw" para modificar o conteúdo do cartão SD. Como resultado, uma nova permissão, chamada WRITE_MEDIA_STORAGE, foi adicionada ao código fonte. Basicamente, WRITE_MEDIA_STORAGE substituiu o WRITE_EXTERNAL_STORAGE original. No entanto, e talvez sem o conhecimento do Google, havia um grande senão: não era possível para as aplicações regulares solicitar esta permissão. A nova permissão tinha um nível de proteção de storageOrSignature, o que significa que apenas aplicativos de sistema podiam solicitar a permissão. Assim, agora, a permissão WRITE_EXTERNAL_STORAGE só podia dar permissão aos aplicativos para escrever no armazenamento primário, mas não no armazenamento secundário (cartões micro SD externos). A permissão do WRITE_MEDIA_STORAGE podia gravar no cartão micro SD externo, mas os aplicativos regulares do usuário não podiam solicitar a permissão. Esta mudança realmente ocorreu no Android 3.2 Honeycomb, mas devido à logística do hardware e dos meios de armazenamento naquela época, mal foi notada.
Iniciando por volta do tempo do Android 4.4 4 4 KitKat, e mesmo um pouco antes, a implementação do sistema de arquivos userspace FUSE, em conjunto com as mudanças no código fonte aberto, resolveu este problema. No entanto, até hoje, mesmo com o Android 8.x.x Oreo, aplicativos de terceiros devem obter explicitamente a permissão do usuário's para armazenamento primário e secundário antes que o aplicativo possa alterar qualquer meio de armazenamento de qualquer forma. E, é claro, os novos conceitos de armazenamento adotável têm aliviado os problemas nesse sentido.
Artigos semelhantes
- Por que a Disney está bloqueando sites de anime (como Kissanime, Gogoanime) na Índia?
- Como fazer o meu VPN funcionar quando estou conectado ao wifi e meu wifi está bloqueando
- Por que existem cartões SIM separados para iPhone e Android? O que há de diferente nos cartões que eles não podem usar o mesmo cartão?
- É uma boa ideia escrever um motor de jogo em Python? Se não, qual é a melhor linguagem para se escrever um motor de jogo?