O que é "android: allowBackup"?

Desde onova versão de pré-visualização do ADT (versão 21), eles têm um novo aviso de lint que me informa a próxima coisa no arquivo de manifesto (na tag do aplicativo):

Deve definir explicitamente android: allowBackup como true ou false (é true por padrão e isso pode ter algumas implicações de segurança para os dados do aplicativo)

Nowebsite oficialeles escreveram:

Algumas novas verificações: você deve decidir explicitamente se seu aplicativo permite backups e uma verificação de rótulo. Há um novo sinalizador de linha de comando para definir o caminho da biblioteca. Muitas melhorias na análise incremental de lint durante a edição.

O que é esse aviso? Qual é o recurso de backup e como usá-lo?

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 mostradoAqui:

Seja para permitir que o aplicativo participe da infraestrutura de backup e restauração. Se esse atributo for definido como false, nenhum backup ou restauração do aplicativo nunca será executado, mesmo por um backup completo do sistema que faria com que todos os dados do aplicativo fossem salvos via adb. O valor padrão desse atributo é true.

Isso é considerado um problema de segurança porque as pessoas podem fazer backup do seu aplicativo por meio deADB e, em seguida, obter dados privados do seu aplicativo em seu PC.

No entanto, acho que não é um problema, já que a maioria dos usuários não sabe o que é o adb e, se o fizer, também saberá como fazer o root no dispositivo. As funções do ADB só funcionariam se o dispositivo tivesse o recurso de depuração ativado, e isso exigiria que o usuário o ativasse.

Assim, somente os usuários que conectam seus dispositivos ao PC e ativam o recurso de depuração seriam afetados. Se eles tiverem um aplicativo mal-intencionado no PC que use as ferramentas do ADB, isso pode ser problemático, pois o aplicativo pode ler os dados do armazenamento privado.

Acho que o Google deve apenas adicionar um recurso que está desativado por padrão, na categoria de desenvolvedor, para permitir backup e restauração de aplicativos via ADB.

"android:backupAgent"permite usar o recurso de backup e restauração da nuvem, como mostradoAqui eAqui:

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 uma abreviação, 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.

questionAnswers(5)

yourAnswerToTheQuestion