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 lue par ADB si elle 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 rootadb backup
pour une raison quelconque, ne couvre pas cette base de données sur l'appareil 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 cela. Si c'est pour des "raisons de confidentialité", alors la même chose devrait s'appliquer à la base de données de contacts - qui est clairement sauvegardée.
Références:
- Adb peut-il être utilisé pour récupérer des messages SMS en «mode sans échec» permanent? couvre le même sujet - mais à part ça, je ne suis pas limité au mode sans échec
- la sauvegarde du contenu sms / mms complet via adb (sur le site frère de nos développeurs) est pour une "solution enracinée" (et, à part cela, un peu d'âge: les questions et réponses ont plus de 3 ans)
Donc: une solution sur un appareil non rooté? Notez que je ne demande PAS de solution basée sur une application. Je suis pleinement conscient qu'il existe plusieurs applications disponibles pour cela . Je veux spécifiquement une "solution basée sur le shell", à utiliser via ADB.
adb backup
: quelques exceptions, la plupart ignorables, mais l'utilisateur aime beaucoup garder les SMS qui n'étaient pas non plus couverts.Réponses:
Ce n'est pas que
adb backup
ne veut pas couvrir l'applicationcom.android.providers.telephony
. Cette application n'est pas très différente de toute autre application système basée sur sonAndroidManifest.xml
. Le problème vient du drapeau que son développeur a déclaré dans le manifeste qui, en tant que mécanisme par défaut,adb backup
est tenu de respecter pour une raison quelconque .Ce drapeau n'est autre que
android:allowBackup="false"
. Il exclut l'application de la sauvegarde et de la restauration ADB. Google doit dire ici :(Souligner le mien)
Découvrez la version
AndroidManifest.xml
de cette application pour Lollipop ici , ou consultez ces preuves pour mon Android 4.2.1:Il y a plus à cette application. Vous ne pouvez même pas effacer les données de Paramètres → Applications → Toutes les applications →
<THIS_APP>
carandroid:allowClearUserData="false"
est également déclaré, pas quelque chose que nous rencontrons de temps en temps.C'est bizarre, non pas que vous puissiez le faire, mais comment votre système vous permet-il de le faire juste avec
adb backup
!Le stockage des contacts est géré par l'application "ContactsProvider" qui s'appelle pkg_name =
com.android.providers.contacts
. Le drapeauandroid:allowBackup="false"
est clairement mentionné dans sonAndroidManifest.xml
pour Jelly Bean (cliquez ici pour voir les autres versions).Utilisez-vous ICS ou un prédécesseur de JB?
J'ai trouvé que cette application n'a aucune déclaration de ce drapeau pour ICS ici . Vous pouvez réellement effacer ce mystère, car je ne peux pas prendre de sauvegarde de cette application dans mon JB 4.2.1 selon la définition de l'indicateur, et obtient toujours ce fichier de sauvegarde de 41 octets.
Comme pour toute autre méthode pour effectuer une sauvegarde / restauration SMS / MMS en utilisant ADB sans accès root - tout le monde ici.
la source