22 votes

Sauvegarder/Restaurer les SMS/MMS via ADB sur un appareil non rooté ?

Existe-t-il un moyen de sauvegarder/restaurer les messages SMS et MMS à l'aide d'ADB, lorsque l'appareil n'est pas enraciné ?

  • adb pull ne fonctionnera pas ici, car la base de données correspondante ( /data/data/com.android.providers.telephony/databases/mmssms.db ) ne peut pas être lu par ADB s'il ne fonctionne pas en mode non sécurisé (Root).
  • adb shell "cat /data/data/com.android.providers.telephony/databases/mmssms.db > /sdcard/mmssms.db ne fonctionne pas non plus sans accès Root
  • adb backup pour une raison quelconque, ne couvre pas cette base de données sur le dispositif avec lequel j'ai vérifié (sauvegarde vide - juste les 41 octets de l'en-tête de sauvegarde dans le fichier résultant).

Je me demande surtout pourquoi adb backup ne couvre pas ça. Si c'est pour des "raisons de confidentialité", alors la même chose devrait s'appliquer à la base de données des contacts - qui est clairement sauvegardée.

Références :

Donc : Une solution sur un appareil non rooté ? Notez que je suis PAS demandant une solution basée sur une application. Je suis pleinement conscient qu'il y a plusieurs applications disponibles pour cela . Je veux spécifiquement une "solution basée sur le shell", à utiliser via ADB.

11voto

Firelord Points 23064

Je me demande surtout pourquoi la sauvegarde adb ne couvre pas cela.

Ce n'est pas que adb backup ne veut pas couvrir l'application com.android.providers.telephony . Cette application n'est pas très différente des autres applications système en raison de ses caractéristiques. AndroidManifest.xml . Le problème est avec le drapeau que son développeur a déclaré dans le manifeste qui, pour une raison quelconque, est un mécanisme par défaut. adb backup est tenu de respecter.

Ce drapeau n'est autre que android:allowBackup="false" . Il exclut l'application de la sauvegarde et de la restauration ADB. Google aquí a à dire :

android:allowBackup

S'il faut autoriser l'application à participer à l'infrastructure de sauvegarde et de restauration. Si cet attribut est défini sur false, aucune sauvegarde ou restauration de l'application ne sera jamais effectuée, même par une sauvegarde complète du système qui entraînerait autrement la sauvegarde de toutes les données de l'application via adb. La valeur par défaut de cet attribut est true.

<em>(C'est moi qui souligne)</em>

Consultez le AndroidManifest.xml de cette application pour la version Lollipop aquí ou voyez cette preuve pour mon Android 4.2.1 :

IMG: no backup flag

Il y a plus dans cette application. Tu ne peux même pas Effacer les données から Paramètres Apps Toutes les apps <THIS_APP> depuis android:allowClearUserData="false" est également déclaré, ce n'est pas quelque chose que nous rencontrons de temps en temps.

Si c'est pour des "raisons de confidentialité", alors la même chose devrait s'appliquer à la base de données des contacts - qui est clairement sauvegardée.

C'est bizarre, non pas que vous soyez capable de le faire mais comment votre système vous permet-il de faire ça juste avec adb backup !

Le stockage des contacts est géré par l'application "ContactsProvider" qui porte le nom pkg_name=. com.android.providers.contacts . Le drapeau android:allowBackup="false" est clairement mentionné dans son AndroidManifest.xml pour Jelly Bean (cliquez aquí à voir pour les autres versions).

Utilisez-vous ICS ou un prédécesseur de JB ?

J'ai trouvé que cette application n'a pas de déclaration de ce drapeau pour ICS. aquí . Vous pouvez en fait éclaircir ce mystère, car je ne peux pas prendre de sauvegarde de cette application dans mon JB 4.2.1 selon la définition du drapeau, et obtient toujours ce fichier de sauvegarde de 41 octets.


En ce qui concerne toute autre méthode de sauvegarde/restauration de SMS/MMS avec ADB sans accès Root, tout le monde se lève ici.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X