O problema:
Toda vez que executo o backup do ADB, recebo uma mensagem na parte inferior da tela inicial dizendo Backup starting...
, seguida por uma mensagem dizendo Backup finished
alguns segundos depois, apesar de estar usando 17 GB de memória do dispositivo e o arquivo de backup resultante ser criado com um tamanho de 0 bytes. Não recebo mensagens de erro, nenhum feedback indicando que algo está errado, muito menos o que está errado. Parece funcionar, mas rápido demais, e o arquivo de backup está vazio.
O processo:
Confirmo que o dispositivo é reconhecido pelo ADB usando o
adb devices
comando e recebo a seguinte saída:List of devices attached 8e1f368a device
Emito o comando de backup do ADB (detalhes a seguir).
Recebo a seguinte mensagem no prompt de comando:
Now unlock your device and confirm the backup operation.
... e o seguinte aviso no telefone:
Não faz diferença o que faço aqui (detalhes a seguir).
Toco no Back up my databotão (canto inferior direito).
O telefone retorna à tela inicial e mostra a
Backup starting...
mensagem, depois aBackup finished
mensagem alguns segundos depois. Um arquivo de 0 byte é criado, nomeado como backup.ab padrão ou o que eu especificou com a opção -f .
O comando de backup do ADB (usado na etapa 2):
Eu tentei várias combinações de opções, variando de tão simples quanto
adb backup -all
para coisas como
adb backup -all -apk -s 8e1f368a -f 'C:\Data Files\PDA\Backups\ADB\GalaxyS4_20140919.ab'
Eu também tentei adicionar o -nosystem
interruptor depois de ler este e este , que indicam que a tentativa de incluir um sistema de backup em um dispositivo não enraizadas pode resultar em um arquivo de 0 bytes, e que esta opção deve ser usada. Não faz diferença, o processo ainda é concluído em questão de segundos e ainda recebo um arquivo de 0 byte.
O prompt da senha "Backup completo" (etapa 3):
Tenho certeza de que nunca defini uma senha de backup antes. Nunca tive a oportunidade de definir essa senha ou acessar essa configuração de qualquer forma antes. No entanto, tentei o seguinte:
- Deixando as duas senhas em branco
- Deixando a "senha de backup atual" em branco e inserindo uma nova senha na segunda caixa
- Inserir o PIN de bloqueio de tela atual e todos os PINs que já usei no passado como "senha de backup atual".
- Digitando todas as senhas que eu possa imaginar que eu já teria usado para qualquer coisa neste dispositivo
Em todos os casos, o comportamento é exatamente o mesmo descrito na etapa 5. Não recebo erros ou qualquer tipo de indicação de que algo esteja errado ou que minhas senhas sejam inválidas e nenhuma dica sobre se realmente está esperando uma senha atual ou se campo deve ser deixado em branco. (A captura de tela nesta resposta e em vários outros fóruns de suporte que eu analisei parece implicar que a caixa "senha de backup atual" não seria exibida se não houver senha atual, mas isso é apenas uma inferência; nada deixa claro se uma senha atual é realmente necessária.)
Suspeito que a senha solicitada possa ser a "Senha de backup da área de trabalho" definida nas opções do desenvolvedor:
Eu nunca defini essa senha antes. Se eu tentar definir um, recebo uma mensagem dizendoFailed to set backup password.
Ao procurar informações sobre esse erro, encontrei pelo menos outro caso em que alguém que estava com esse problema disse que isso o impedia de usar o backup do ADB, mas ele não era específico sobre o que acontece quando tenta usar o ADB cópia de segurança.
A maioria das pessoas que recebeu essa mensagem nunca definindo a senha antes diz que a solução foi deixar a senha atual em branco, mas tentei isso em primeiro lugar e não funcionou. Encontrei uma pergunta de outra pessoa que encontrou esse problema e tinha certeza de que não havia definido a senha antes . Infelizmente, parece que ele nunca conseguiu uma solução ou mesmo uma explicação.
Independentemente de o ADB estar procurando a "Senha de backup da área de trabalho" ou a senha de criptografia do ADB ser algo separado, me surpreende por que o ADB exigiria que você digite uma senha anterior para iniciar um novo backup. Não estou tentando restaurar, substituir ou de nenhuma forma acessar dados criptografados anteriormente, portanto, mesmo que uma senha de criptografia para um backup tenha sido definida anteriormente, não consigo imaginar por que alguém pensaria que seria uma boa idéia impedir você de fazendo backup do seu dispositivo se você não se lembra da senha usada para criptografar backups no passado.
Informação adicional:
Modelo: Samsung Galaxy S4 SCH-I545
Versão do kernel: 3.4.0
Versão do SO: 4.4.2 Versão do
Android SDK Tools: 1.16 A
depuração USB está ativada.
Observe que minha razão para usar o backup do ADB é fazer um backup completo do meu telefone para ficar seguro antes de fazer o root *, para que eu possa usar ferramentas de backup nandroid, como o backup do Titanium. Portanto, qualquer sugestão que envolva fazer o root do meu telefone seria um Catch-22, não uma solução. Desnecessário dizer que uma redefinição de fábrica também não é uma solução, uma vez que anularia todo o objetivo de executar o backup.
O telefone está configurado para sincronizar com os servidores Exchange da minha empresa, e há algumas políticas aplicadas pelo servidor. Eu pensava que o dispositivo estava criptografado quando configurei a sincronização com a conta da empresa, mas aparentemente ele não está criptografado no momento. De fato, foi isso que pôs em movimento essa cadeia de eventos: estou recebendo uma mensagem dizendo que preciso criptografar o dispositivo para continuar a conectar-me aos servidores da empresa. Quero fazer um backup nandroid antes da criptografia, o que exige o enraizamento, e quero usar o backup do ADB antes do enraizamento.
* Sim, estou ciente de que Towelroot é considerado seguro, mas prefiro não me arriscar e gostaria de resolver ou pelo menos entender esse problema caso ocorram problemas relacionados no futuro.
adb backup
funcionava bem,adb restore
sempre falhava). Acabou que era um problema de permissão (o fabricante havia estragado a ROM) e, portanto,adb restore
não conseguiu ler o arquivo de backup depois de transferido para o dispositivo. Foi um pouco difícil de encontrar, e não tenho certeza se algo semelhante realmente é o caso aqui; mas pode valer a pena conferir.