Desde a nova versão de visualização do ADT (versão 21) , eles têm um novo aviso de fiapo que informa a próxima coisa no arquivo de manifesto (na tag do aplicativo):
Deve definir explicitamente android: allowBackup como true ou false (é verdade por padrão e pode ter algumas implicações de segurança nos dados do aplicativo)
No site oficial , eles escreveram:
Algumas novas verificações: você deve decidir explicitamente se o aplicativo permite backups e uma verificação de etiqueta. Há um novo sinalizador de linha de comando para definir o caminho da biblioteca. Muitas melhorias na análise incremental do cotão durante a edição.
O que é esse aviso? Qual é o recurso de backup e como eu o uso?
Além disso, por que o aviso me diz que tem implicações de segurança? Quais são as desvantagens e vantagens de desativar esse recurso?
Existem dois conceitos de backup para o manifesto:
- "android: allowBackup " permite fazer backup e restaurar via adb, como mostrado aqui :
Se o aplicativo deve participar da infraestrutura de backup e restauração. Se esse atributo estiver definido como falso, nenhum backup ou restauração do aplicativo será executado, mesmo por um backup de sistema completo que, de outra forma, faria com que todos os dados do aplicativo fossem salvos via adb. O valor padrão deste atributo é verdadeiro.
Isso é considerado um problema de segurança porque as pessoas podem fazer backup do seu aplicativo via ADB e, em seguida, obter dados privados do seu aplicativo no PC.
No entanto, acho que não é um problema, já que a maioria dos usuários não sabe o que é adb e, se o fizerem, também saberão como fazer root no dispositivo. As funções do ADB funcionariam apenas se o dispositivo tiver o recurso de depuração ativado, e isso precisa que o usuário o habilite.
Portanto, apenas os usuários que conectam seus dispositivos ao PC e ativam o recurso de depuração serão afetados. Se eles tiverem um aplicativo mal-intencionado no PC que usa as ferramentas do ADB, isso pode ser problemático, pois o aplicativo pode ler os dados de armazenamento privado.
Eu acho que o Google deve apenas adicionar um recurso que está desativado por padrão, na categoria desenvolvedor, para permitir o backup e a restauração de aplicativos via ADB.
- "android: backupAgent " permite usar o recurso de backup e restauração da nuvem, como mostrado aqui e aqui :
O nome da classe que implementa é o agente de backup do aplicativo, uma subclasse de BackupAgent. O valor do atributo deve ser um nome de classe totalmente qualificado (como "com.example.project.MyBackupAgent"). No entanto, como atalho, se o primeiro caractere do nome for um ponto (por exemplo, ".MyBackupAgent"), ele será anexado ao nome do pacote especificado no elemento. Não há padrão. O nome deve ser especificado.
Este não é um problema de segurança.