Mon protocole de sauvegarde sur smartphone Android
Publié le lundi 28 août 2023, par
Mis à jour le jeudi 18 juillet 2024
Mots clés : Android, sauvegarde, stockage,
Avant-propos
Mon système de sauvegarde Android actuel me permet de remonter jusqu’en 2017. Il est un peu ardu à mettre en place, mais il s’adapte à tout type de smartphone Android.
Il est efficace ; il permet effectivement de remonter dans le temps.
Il est efficient ; une fois mis en place il ne demande qu’une maintenance minimale pour un résultat optimal.
Il suppose une certaine situation de départ
- on ne compte pas sur le protocole MTP qui ne fonctionne pas ou de façon aléatoire (ce qui m’est arrivé assez souvent)
- le smartphone est chiffré (on n’est jamais trop prudent)
- le dossier qui va recevoir les données de transit sur l’ordinateur est chiffré (on n’est jamais trop prudent)
Et certains prérequis logiciels
- utiliser GNU/Linux (la distribution importe peu)
- savoir installer des paquets sur sa distribution, je ne détaillerais pas ici les procédures d’installation je pars du principe que vous savez le faire
- avoir installé un logiciel de chiffrement [1] idem je ne détaille pas non plus comment chiffrer ses données
- avoir installé Syncthing, un logiciel de synchronisation sans cloud
- avoir installé BorgBackup, ou si vous êtes débutant borg-zenity, un logiciel de sauvegarde puissant
- avoir installé le dépôt d’applications libres F-droid sur son smartphone
Évidemment ce système correspond parfaitement à mes besoins mais pas forcément aux vôtres. Vous pouvez vous en inspirer mais en l’adaptant à votre modèle de menaces. La maîtrise de la ligne de commande permet une plus grande efficience.
Description du système de sauvegarde
Syncthing est paramétré pour synchroniser les données essentiels de mon smartphone Android vers mon PC fixe. Le dossier personnel sur mon PC fixe est chiffré avec LUKS. Si votre home n’est pas chiffré, je vous conseille a minima de garder le dossier de réception de Syncthing dans un conteneur chiffré.
Paramétrage de Syncthing sur Android
Pour échanger les données entre le smartphone et le PC j’utilise Syncthing, un logiciel de synchronisation de données qui ne passe pas par le cloud. Pour cela il faut déjà avoir installé F-droid sur Android.
Ensuite on se rend dans F-droid pour télécharger Syncthing-fork, cette version donne des détails intéressants sur l’avancement des synchronisations en cours.
Une fois ceci fait, j’ai créé autant de partages que nécessaire pour toutes les données que je veux sauvegarder. Pour ma part je sauvegarde les dossiers suivant de mon smartphone : Backups, Conversations, DCIM, Documents, media.
J’ai ajouté quelques exclusions (voir le tutoriel Syncthing) pour les dossiers que je considère non essentiels. Je ne sauvegarde pas mes fichiers NextCloud, car ils sont déjà sauvegardés 2 fois ; une fois sur la sauvegarde de mon serveur, une autre fois dans la sauvegarde de mon dossier maison sur mon PC fixe. J’exclus les cartes OpenStreetMap qui peuvent être téléchargées. J’exclus aussi les répertoires de cache.
Voilà à quoi ressemble mon fichier d’exclusions Syncthing sur Android.
Sauvegarder les SMS
Pour sauvegarder les SMS j’utilise SMS backup and restore [2], une application privatrice mais utilisant un format standard XML. En prenant soin de régler l’application pour qu’elle stocke la sauvegarde dans un dossier local (backups dans mon cas) et non sur le cloud.
Listes de lecture
Depuis que je suis passé sur Android 11 aucune application de sauvegarde des listes de lecture ne fonctionne. J’ai donc changé d’approche. Je copie mes listes de lecture au format m3u qui sont déjà sur mon ordinateur sur mon smartphone. VLC est capable de lire et d’importer automatiquement les listes de lecture au format m3u. Je n’ai plus qu’à paramétrer un partage dans Syncthing avec le dossier contenu les listes.
Applications et exports de sauvegardes
Un certain nombre d’applications libres sous Android gèrent l’export de sauvegarde dans des formats standards. Voici la liste des applications dont je fais un export de données régulier. Il suffit de regarder dans les paramètres des applications pour trouver comment exporter les données.
- Conversations : format ceb (binaire chiffré avec le mot de passe du compte)
- AntennaPod : format SQLite
- SMSbackupandrestore : format XML
- Car Report : format SQLite
- Any Soft Keyboard : format XML
- Syncthing : configuration au format XML, clé de chiffrement au format PEM
- Tasks : format JSON (export automatique tous les soirs)
- Loop : format SQLite (export automatique tous les soirs)
Protocole de sauvegarde
- Je réalise un export de toutes les applications qui le permettent. (voir point au-dessus)
- Je synchronise les données des partages via Syncthing sur mon ordinateur
- Étant sur Android 11, Syncthing n’a pas l’autorisation de naviguer dans
Android/data
pour ce dossier j’utilise une synchronisation maison en utilisant Material Files et son serveur FTP côté Android et un script lftp côté PC fixe - Une fois les synchronisation terminée je lance la sauvegarde sur le PC fixe à l’aide de BorgBackup ce qui ne prend que quelques secondes
- Je supprime les données des sauvegardes du dossier
backup
sur Android (sms, certificats et configuration Syncthing, export Conversations et export AntennaPod)
Conclusion
Le paramétrage initial peut prendre un peu de temps prévoir une bonne demi-heure.
Syncthing ne transfert que les nouvelles données, la synchronisation est donc rapide. Certes l’espace disque est utilisé 2 fois (une fois sur mon smartphone et une autre fois sur mon ordinateur) mais cela simplifie grandement les choses. Une fois paramétré et les synchronisations initiales complétés, le protocole au complet me prend au maximum 5 grosses minutes. Ce qui n’est pas excessif pour la tranquillité d’esprit assuré.
Un message, un commentaire ?
Si la question concerne un script que j'ai écris, merci de me contacter directement.