Backup / restauração de SMS / MMS via ADB em um dispositivo não-rooteado?

10

Existe alguma maneira de fazer backup / restaurar mensagens SMS e MMS usando o ADB, quando o dispositivo não está enraizado?

  • adb pullnão funcionará aqui, pois o banco de dados correspondente ( /data/data/com.android.providers.telephony/databases/mmssms.db) não pode ser lido pelo ADB se não estiver sendo executado no modo inseguro (raiz)
  • adb shell "cat /data/data/com.android.providers.telephony/databases/mmssms.db > /sdcard/mmssms.db também não funciona sem acesso root
  • adb backup por algum motivo, não cobre esse banco de dados no dispositivo com o qual verifiquei (backup vazio - apenas os 41 bytes do cabeçalho do backup no arquivo resultante)

Eu me pergunto especialmente por adb backupque não cobre isso. Se for por "razões de privacidade", o mesmo deverá se aplicar ao banco de dados de contatos - que é claramente feito o backup.

Referências:

Então: Alguma solução em um dispositivo não raiz? Observe que NÃO estou pedindo uma solução baseada em aplicativo. Estou ciente de que existem vários aplicativos disponíveis para isso . Eu quero especificamente uma "solução baseada em shell", para ser usada via ADB.

Izzy
fonte
" Não estou pedindo uma solução baseada em aplicativo " - Forense novamente?
Firelord
11
De preferência sim (para outros leitores: as soluções preferidas não exigem nada modificado no dispositivo). Considere que o dispositivo em questão já relata "memória insuficiente"; portanto, não é possível instalar algo. Como o dispositivo também está se comportando de forma estranha em outro contexto, uma redefinição de fábrica deve ser realizada - portanto, seria bom "salvar" o máximo de dados possível. Consegui fazer o backup da maioria das coisas via adb backup: poucas exceções, a maioria delas ignoráveis, mas o usuário gosta muito de manter o SMS que também não era coberto.
Izzy
Olá! Desculpe incomodá-lo, já alguma solução para isso sem raiz? BTW excelente lista de aplicativos, obrigado por esse link!
Gruber
11
@ Gruber Não, ainda não encontrei nada. // Que bom que você gostou das minhas listagens de aplicativos!
Izzy

Respostas:

6

Eu me pergunto especialmente por que o backup adb não cobre isso.

Não é que adb backupnão queira cobrir o aplicativo com.android.providers.telephony. Este aplicativo não é muito diferente de qualquer outro aplicativo do sistema com base no seu AndroidManifest.xml. O problema está na sinalização declarada pelo desenvolvedor no manifesto que, por algum motivo, como mecanismo padrão, adb backupé obrigada a respeitar.

Este sinalizador não é outro senão android:allowBackup="false". Desativa o aplicativo do backup e restauração do ADB. O Google aqui tem a dizer:

android:allowBackup

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.

(Ênfase minha)

Faça o checkout AndroidManifest.xmldeste aplicativo para a versão Lollipop aqui ou veja esta evidência para o meu Android 4.2.1:

IMG: nenhum sinalizador de backup

Há mais para este aplicativo. Você não pode nem mesmo apagar dados em Configurações → Aplicativos → Todos os aplicativos →<THIS_APP> uma vez que também android:allowClearUserData="false"é declarado, não algo que encontramos de vez em quando.

Se for por "razões de privacidade", o mesmo deverá se aplicar ao banco de dados de contatos - que é claramente feito o backup.

É bizarro, não que você seja capaz de fazê-lo, mas como está o seu sistema, permitindo que você faça isso apenas com adb backup!

O armazenamento de contatos é tratado pelo aplicativo "ContactsProvider", que atende pelo pkg_name = com.android.providers.contacts. A bandeira android:allowBackup="false"é claramente mencionada no AndroidManifest.xmlJelly Bean (clique aqui para ver as outras versões).

Você está usando o ICS ou qualquer antecessor do JB?

Eu descobri que este aplicativo não tem nenhuma declaração dessa bandeira para o ICS aqui . Você pode realmente esclarecer esse mistério, já que não posso fazer backup deste aplicativo no meu JB 4.2.1, conforme a definição do sinalizador, e sempre obtém esse arquivo de backup de 41 bytes.


Como qualquer outro método para fazer backup / restauração de SMS / MMS usando o ADB sem acesso root - tudo por aqui.

Senhor do Fogo
fonte
Estou ciente de que é essa bandeira. Mas ambos, esse aplicativo e o ADB fazem parte do sistema - não estamos falando de um fornecedor terceirizado aqui. Para esclarecimento: o dispositivo ao qual me refiro aqui executa o JellyBean (4.1.2). Graças à sua dica, tentarei novamente com meus outros dispositivos (4.2 e 4.3). Em relação à privacidade: também pode haver uma dica para o usuário fornecer uma senha. Além disso, o SharedStorage também pode conter "dados privados" - além disso, o Google pressupõe que eu queira sincronizar meus contatos / calendários por padrão ao ativar uma Conta do Google, em vez de me perguntar (portanto, não há como optar por excluí-lo se você o adicionar já lá) )
Izzy
Correndo o risco de se tornar um discurso retórico: se é muito privado para ser copiado - por que também é protegido contra "dados claros"? "Nunca atribua à malícia o que pode ser explicado pela pura estupidez" ... // Portanto, não é possível sem o root: isso apenas deixa o módulo Xposed apropriado ("Backup de todos os aplicativos"). O que novamente precisa ser instalado no dispositivo - o que eu queria evitar ... Basta puxar o banco de dados (com raiz) seria uma solução alternativa - mas isso não permite a restauração em dispositivos diferentes (tentei uma vez, não era um problema). boa idéia, pois prestados SMS inutilizável então eu tive que reiniciar)
Izzy
11
Eu sei @Izzy que você está ciente de uma bandeira tão simples (você não se tornou profissional do nada, mas por pesquisa e experiência :), mas outros que procuram respostas para uma pergunta tão simples provavelmente não sabem disso, e tudo desta informação não era adequada para o comentário. Na verdade, eu tinha em mente escrever esse comentário, mas esqueci que, ao escrever esta resposta, desculpe!
Firelord
11
// Quanto à senha, embora o ADB forneça um backup protegido por senha, o Google (IMO) pode pensar que impedir o acesso a conteúdo confidencial é uma coisa melhor do que permitir o acesso que, em caso de perda do dispositivo, pode resultar em despejo de dados não autorizado pessoa se a depuração USB foi ativada por qualquer chance, seguida por ataque de força bruta.
Firelord
11
- Oh, bem, eles imaginaram que, desde o começo, como restringir a liberdade em nome dos negócios, pode ser outra coisa. Vou relatar algo de bom (claro que não é divertido) se encontrar de alguma forma.
Firelord