Journal Sauvegarde des SMS, MMS et du journal d'appels sous Android

Posté par  . Licence CC By‑SA.
Étiquettes :
37
25
juil.
2018

Sommaire

Introduction

Manifestement, j’ai un caractère un peu archiviste et ça me pousse à vouloir garder toutes mes communications. Mon téléphone actuel tourne sur Android et pour mes communications électroniques, j’utilise essentiellement les textos et les mails. Et je n’aime pas de perdre trois jours de textos, même si finalement ça représente 4 pauvres messages pas importants. Je me suis déjà retrouvé à rechercher une information dans un texto d’il y a un an. Aussi, regarder les anciens messages peut être rigolo ou émouvant.

La plupart des gens s’en fichent et ils ont la vie plus simple. Mais si vous êtes comme moi, ou si cela pique votre curiosité, voici deux manières de sauvegarder les SMS et les MMS d’un appareil sous Android.

  • La première sauvegarde vos messages sur votre boite mail, mais la sauvegarde des MMS ne marche pas bien.
  • La deuxième sauvegarde vos messages parfaitement bien, mais la technique nécessite d’être root sur le téléphone et la restauration écrase les messages existant sur le téléphone et ne fonctionne que sous Android.

J’utilise les deux, elles sont complémentaires :-)

Ces méthodes ne fonctionnent qu’avec l’application SMS / MMS fournie par défaut avec Android, ou toute application qui se synchronise avec sa base de donnée. C’est le cas de QKSMS par exemple, qui est très agréable à utiliser. Si vous utilisez une application qui chiffre les messages, comme Silence, c’est mort.

SMS Backup+

Cette application, disponible sur F-Droid, permet de sauvegarder les SMS, les MMS et le journal d’appels dans des dossiers spécifiques de votre boite mail (et pas nécessairement une boite Gmail comme pourrait laisser l’interface au premier abord). Après configuration de votre boite mail (IMAP), vous pouvez lancer la sauvegarde. L’application demandera probablement de passer en application par défaut pour les SMS/MMS, et remettra l’application qui était utilisée quand elle aura fini.

La restauration depuis la boite mail se fait sans encombre et ne produit pas de doublons.

Dans les fonctionnalités appréciables : l’application peut être réglée pour envoyer les messages sur la boite mail dès qu’ils sont reçus et envoyés. On peut également personnaliser le format des fausses adresse mails générés pour les expéditeurs ou les destinataires des messages. J’aime bien Nom . Je suppose que si l’adresse mail est stockée dans les contacts, la vraie adresse est utilisée.

C’est très pratique et très agréable de pouvoir faire des recherches dans ses textos en utilisant son client mail habituel.

Par défaut, les textos et les appels sont sauvegardés respectivement dans les dossiers SMS et Call log de la boite mail.

Petit problème : si les MMS sont bien enregistrés, les expéditeurs et les destinataires sont perdus, et remplacés par votre identité à vous. Impossible, donc, de suivre les conversations en entier et les restaurer.

Cette application pourra créer des doublons dans la boite mail selon certaines conditions, notamment si le format d’adresse mail est modifié. Des extensions pour supprimer des doublons avec Thunderbird pourront faire l’affaire sous certaines conditions (mais pas si les doublons sont causés par la modification du format d’adresse).

En bonus, voici à quoi ressemble le code source d’un SMS placé par SMS Backup+ dans une boite mail:

Subject: SMS avec Mystere
MIME-Version: 1.0
Content-Type: text/plain;
charset=utf-8
To: Mystere <06 12 34 56 78@unknown.email>
From: raphael@jakse.fr
References: <ykswxkby1oijq46khltixq43.1923@sms-backup-plus.local>
Message-ID: <00af3d6ed3785beec9d0d56114445246@sms-backup-plus.local>
X-smssync-address: 06 12 34 56 78
X-smssync-datatype: SMS
X-smssync-backup-time: 12 May 2017 15:21:25 GMT
X-smssync-version: 1554
Date: Sat, 29 Apr 2017 15:31:14 +0200
X-smssync-id: 298
X-smssync-type: 2
X-smssync-date: 1493472674940
X-smssync-thread: 35
X-smssync-read: 1
X-smssync-status: 0
Content-Transfer-Encoding: quoted-printable

Joyeux anniversaire ! :-)

Et voici un appel :

Subject: Appel avec Mystere
From: "Mystere (+33612345678)" <+33612345678@unknown.email>
To: raphael@jakse.fr
MIME-Version: 1.0
Content-Type: text/plain;
charset=utf-8
Content-Transfer-Encoding: quoted-printable
References: <pjpf85y1rt4a5fgyfn1dbvg4.56@sms-backup-plus.local>
Message-ID: <ba9ac7b6f41009c16499389c11adfcef@sms-backup-plus.local>
X-smssync-address: +33612345678
X-smssync-datatype: CALLLOG
X-smssync-backup-time: 7 Jul 2018 20:35:02 GMT
X-smssync-version: 1576
Date: Sat, 07 Jul 2018 09:43:49 +0200
X-smssync-id: 720
X-smssync-type: 1
X-smssync-date: 1530949429288
X-smssync-duration: 179

179s (00:02:59)
+33612345678 (appel entrant)

Alternative : Slight Backup

En écrivant ce journal, j’ai (re)découvert l’existence de l’application Slight Backup. Lors de l’écriture de ce journal, application a été mise à jour pour la dernière fois en 2012.

Elle exporte les SMS, les journaux d’appels, certains paramètres du téléphone, et les contacts de façon expérimentale (d’après l’interface) vers des fichiers XML dans la mémoire du téléphone. Vu la taille des fichiers, les photos des MMS ne sont pas sauvegardées, donc je n’ai pas exploré plus loin, et je n’ai pas testé la restauration.

Interface de Débogage ADB et root

Si vous avez accès root sur votre téléphone, ou que vous pouvez le démarrer sur un système de récupération du genre TWRP, il existe une méthode très simple et complète pour sauvegarder vos messages.

La solution consiste à sauvegarder le contenu des dossiers databases et app_parts du dossier /data/user_de/0/com.android.providers.telephony/.

Vous pouvez le faire en activement le mode développeur du téléphone et utilisant adb:

Sauvegarde

cd Sauvegardes/telephone/smsmms
adb root
adb pull /data/user_de/0/com.android.providers.telephony/databases/
adb pull /data/user_de/0/com.android.providers.telephony/app_parts/
adb unroot

Le dossier databases contient notamment une base de donnée SQLite mmssms.db contenant les messages (sans les images et autres pièces jointes). Le dossier app_parts contient ces fameuses pièces jointes.

Restauration

Je vous conseille de le faire à partir de TWRP. Sinon, vous pouvez faire comme moi, démarrez votre téléphone sans carte SIM pour ne pas laisser de chance au téléphone de recevoir de message qui serait écrasé par la restauration, ou au moins vous mettre le plus vite possible en mode avion. Puis forcez vos applications SMS à quitter pour qu’elles n’écrivent pas dans la base et qu’elles utilisent la nouvelle au redémarrage.

Ensuite (attention, je n’ai pas pu revérifier ces commandes, je les redonne de tête et en partie dans les logs de mon shell) :

cd Sauvegardes/telephone/smsmms
adb root
adb shell mkdir -p /data/user_de/0/com.android.providers.telephony/
adb push -r databases/ /data/user_de/0/com.android.providers.telephony/
adb push -r app_parts/ /data/user_de/0/com.android.providers.telephony/
adb shell chown -r radio:radio /data/user_de/0/com.android.providers.telephony/
adb unroot

J’ai découvert la nécessité de cette dernière commande en observant que je n’arrivais pas à envoyer de MMS. Les applications échouaient sans dire pourquoi. En utilisant QKSMS, un permission denied traînait dans les logs (logcat). En utilisant l’application par défaut, je n’ai rien vu dans les logs…

Digressions

  • Je n’ai pas réussi à sauvegarder les textos en utilisant oandbackup, excellente application par ailleurs.
  • Les deux techniques présentées permettent de sauvegarder et restaurer sur différentes versions d’Android (testé sous Android 7 et 8).
  • Sauvegardez vos sauvegardes !
  • En sauvegardant vos communications, assurez-vous de les garder en lieu sûr, vos contacts ne s’attendent pas à ce que leurs communications avec vous soient lus par n’importe qui :-)

Pour la petite histoire, j’ai récemment merdé un flashage du téléphone. J’ai perdu toutes les données du téléphone (pourtant je le fais souvent, et je ne comprends toujours pas ce qui s’est passé — une sauvegarde TWRP systématique avant flashage serait une bonne idée). La dernière sauvegarde des messages avait 2 semaines, et la dernière sauvegarde Backup SMS+ avait 4 jours, donc j’ai restauré avec une combinaison des deux.

Prochaine étape : mettre en place une sauvegarde automatique (lors du branchement du téléphone à l’ordinateur par exemple) !

  • # Appli : SuperBackup

    Posté par  (site web personnel) . Évalué à 1.

    Je suis comme toi j'aime bien conserver certains fichiers
    et avec l'appli SuperBackup j'avais réussi a changer de téléphone mais en conservant
    journaux / SMS etc …

    Cela permet aussi de sauvgarder tout ce qui est important
    il doit rester les quelques fichiers spécifiques liés au Galaxy Note pour etre quasi complet

    Ici => SuperBackup

  • # Dans ton cloud

    Posté par  (site web personnel) . Évalué à 4.

    Pour faire les backups de mon téléphone j'ai une instance Nextcloud sur mon serveur et les appli qui vont bien :

    • davdroid pour contact / agenda;
    • nextcloud sms pour les… sms/mms (mais pas les images reçues par mms :( );
    • nextcloud pour la synchro automatique du téléphone -> serveur;
    • nextcloud notes pour les notes;
    • passman pour mes mots de passes.

    Un p'tit backup régulier de l'instance nextcloud et le tour est joué.

    Lorsque je change de téléphone, j'ai juste à installer tout ça depuis fdroid, paramétrer et voila.

    Cerise sur le gâteau, je n'utilise presque pas mon compte google. Sauf pour le playstore et youtube.

    Born to Kill EndUser !

    • [^] # Re: Dans ton cloud

      Posté par  . Évalué à 3.

      J'ai essayé nextcloud SMS et j'ai réussi à faire fonctionner ça de façon relative lors de ma dernière tentative. Mais finalement, comme je synchronise déjà les textos avec la boite mail, nextcloud SMS fait un peu redondant et effectivement, mms pas pris en charge. C'est vrai que c'est une solution que j'ai testée, je n'ai pas pensé à la présenter. D'ailleurs je vais voir si par hasard quelques messages que j'ai perdus ne se sont pas synchronisés avec.

      J'utilise aussi davdroid et nextcloud pour les contacts et c'est tip top.

      Je n'ai pas de notes mais c'est assurément ce que j'utiliserais sinon.

      Sauvegarde incrementale toutes les nuits du serveur entier en utilisant rsync + les snapshots btrfs sur une autre machine.

      Pas de compte Google sur mon téléphone, d'ailleurs je n'ai pas les services Google. Yalp (ou plutot Aurora) pour les quelques applications libres qui ne sont pas dans fdroid pour une raison ou une autre (forcedoze, VLC).
      Pour YouTube je conseille chaudement NewPipe, capable aussi d'aller pêcher dans soundcloud.

      J'utilisais nextcloud pour envoyer les photos prises avec le tel mais j'ai eu des soucis (à cause de mon utilisation, je recommande cette fonctionnalité malgré tout, ça marche bien).

  • # Surtout pas

    Posté par  (site web personnel) . Évalué à 3.

    une sauvegarde automatique (lors du branchement du téléphone à l’ordinateur par exemple)

    Le meilleur moyen d'avoir un dernier backup de plus d'1 mois.
    Sérieusement :
    - programmer une sauvegarde automatique sur une événement qui n'a rien à voir avec une sauvegarde n'est pas très cohérent (brancher pour charger ne suffit pas il me semble, gestion de sécurité tout ça)
    - Surtout quand l'action choisie est de plus en plus rare : perso comme pas mal de monde je branche mon tel sur l'ordinateur peut-être une fois tous les 3 mois (et encore), la synchro se faisant par Wifi dans le cloud (celui que tu veux, libre si tu veux, mais "permanent", juste quand pas avec le coût élevé de 4G, mais quand tu as le WiFi qui est pour 99.99% des gens pas rare du tout). Bref le lien est "quand ça coûte pas cher, je backupe le plus souvent possible plutôt que d'attendre un fil connecté qui ne viendra pas si souvent que ça".

    • [^] # Re: Surtout pas

      Posté par  . Évalué à 2.

      Ah oui, mais mon téléphone n'est pas régulièrement connecté en wifi (et je fais tout pour qu'il ne fasse rien quand son écran est éteint et j'utilise ForceDoze pour l'obliger a dormir profondément dès que possible donc je ne peux pas trop compter sur les synchro automatiques) et je le charge généralement en le branchant à l'ordinateur.
      Donc pour moi ça marcherait relativement bien.

      Sinon la sauvegarde automatique avec un script lancé avec une application de planification de tâche serait idéale.

      Et tu as raison, pour la plupart des gens qui ont de toute façon des applications qui tournent en tâche de fond pour récupérer des messages quand le téléphone dort c'est mieux de synchroniser par wifi.

      • [^] # Re: Surtout pas

        Posté par  . Évalué à 2.

        Effectivement il faut faire gaffe à ce que le téléphone ne soit pas en mode charge seule aussi. Depuis que je suis passé à Oreo mon téléphone se met dans le mode transfert automatiquement donc je n'ai pas ce soucis.

        Après, pour la cohérence… Ça dépend des gens, je sais que je vais y penser en branchant le téléphone. Ça reste un bon point. Mon schéma d'utilisation du téléphone est probablement assez spécifique et mes solutions, pas adaptées à tout le monde.

  • # Dogfood - corrections

    Posté par  . Évalué à 1. Dernière modification le 24 août 2018 à 14:27.

    Je viens d'utiliser ce journal pour sauvegarder puis restaurer mon téléphone. Petites corrections à apporter :

    -r n'est pas nécessaire avec adb push :

      adb push databases/ /data/user_de/0/com.android.providers.telephony/
      adb push app_parts/ /data/user_de/0/com.android.providers.telephony/
    

    Aussi, la commande chown corrigée :

      adb shell chown -R radio:radio /data/user_de/0/com.android.providers.telephony/
    

    Pour les contacts, j'utilise DAVDroid. Superbe application pour les synchroniser avec une instance Nextcloud par exemple.

    Et j'ai eu un soucis avec SMS Backup+ (option décochée), alors pour sauvegarder le journal appels par ADB :

      adb pull /data/data/com.android.providers.contacts/databases/calllog.db
      adb pull /data/data/com.android.providers.contacts/databases/calllog.db-journal
    

    Pour restaurer :

      adb push calllog.db-journal /data/data/com.android.providers.contacts/databases/
      adb push calllog.db /data/data/com.android.providers.contacts/databases/
      adb shell chown u0_a1:u0_a1 /data/data/com.android.providers.contacts/databases/calllog.db-journal
      adb shell chown u0_a1:u0_a1 /data/data/com.android.providers.contacts/databases/calllog.db
    

    Pour retrouver les fichiers de données dans une sauvegarde TWRP (les noms peuvent être différents, selon le format de la partition data) :

      tar xf data.ext4.win000
      tar xf data.ext4.win001
    

    Normalement, un dossier data est créé (et on peut ignorer les avertissements lancés par tar).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.