5636 links
  • GuiGui's Show

  • Home
  • Login
  • RSS Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
page 1 / 1
  • Supprimer automatiquement les SMS et MMS après une période de temps

    Sur mon ordiphone sous GrapheneOS, j'utilise le logiciel SMS/MMS par défaut, Messaging, qui est un dérivé (fork) de l'application du même nom d'Android.

    Il n'offre aucune fonctionnalité de suppression automatique des SMS et MMS plus vieux qu'une durée spécifiée. Voir. On ne peut effacer qu'une ou plusieurs conversations à la fois.

    La base de données (mmssms.db) n'est pas accessible voire je ne la trouve pas, que ça soit avec adb pull ou adb shell cat ou adb shell ls : permission denied. Normal, je n'ai pas l'accès root volontairement. Il me faut donc utiliser l'API standard d'Android.

    Dans la logithèque F-Droid, je n'ai trouvé aucune application pour supprimer automatiquement les vieux SMS / MMS, ni aucune application SMS / MMS de remplacement dotée d'une telle fonctionnalité (d'autant que je suis très frileux à l'idée de changer d'app, vie privée, tout ça). J'ai cherché « SMS », « MMS », « auto delete », « cleaner ». Évidemment, hors de question d'utiliser des logiciels non-libres, donc je n'ai pas cherché dans le Play store.

    Il est peut-être possible de créer une tâche automatique (planifiée ou non) avec une appli d'automatisation, mais celle disponible sur F-Droid ne semble pas pouvoir faire ça, et j'ai un besoin très ponctuel (1 fois/an) qui ne justifie pas le recours à cette méthode.



    Reste la méthode bourrine : exporter les SMS / MMS, faire le tri, effacer, importer l'issue du tri. Messaging n'a pas de fonctionnalité d'exportation / importation (la sauvegarde des messages se fait via SeedVault, mais elle est chiffrée).

    SMS Import / Export (sms-ie) est disponible dans F-Droid. Elle est conseillée dans le forum GrapheneOS. L'exportation est au format JSON, ce qui permet des opérations automatiques, avec jq, par exemple (mon tutoriel jq).

    L'horodatage des SMS est représenté au format timestamp Unix en millisecondes (13 chiffres) alors que celui des MMS l'est en secondes (10 chiffres). Il faut donc traiter séparément les SMS et les MMS, sinon effacements indésirés.

    Pour discriminer les MMS, on peut se baser sur leurs attributs supplémentaires, comme « text_only », « msg_box », « __parts », etc., ou la valeur différente pour un attribut, comme « date_sent = 0 ». J'ai arbitrairement choisi « text_only ».

    Étape 1 : on exporte les SMS et MMS avec sms-ie. On récupère l'archive zip sur un ordinateur GNU/Linux et on la décompresse.

    Étape 2a : on transfère, dans un fichier, les MMS plus récents qu'une date choisie : jq -c 'select(has("text_only")) | select(.date | tonumber > <TIMESTAMP>)' messages.ndjson > tmp.json. La directive « -c » (compact) est obligatoire, sinon sms-ie échouera à importer le fichier que l'on prépare. Pour convertir la date choisie en timestamp Unix : date -d 'YYYY-MM-JJ HH:MM:SS' +%s. Ex. : 1er janvier 2025 à 0 h 0 m 0 s = 1735686000.

    Étape 2b : on supprime les pièces jointes des MMS plus vieux que la date choisie : jq 'select(has("text_only")) | select(.date | tonumber < <TIMESTAMP>).__parts[]._data' messages.ndjson | grep -Po '(?<=/)PART_.+(?=")'| xargs -I {} rm -v data/{}.

    Étape 3 : on transfert, dans le même fichier, les SMS plus récents qu'une date choisie : jq -c 'select(has("text_only") == false) | select(.date | tonumber > <TIMESTAMP>)' messages.ndjson >> tmp.json. Même commande pour convertir la date en timestamp Unix + ajouter trois zéros pour obtenir le bon format de timestamp.

    Étape 4 : on recrée une archive zip en bonne forme : mv tmp.json messages.ndjson && 7z -tzip a messages_tries.zip data/ messages.ndjson.

    Étape 5 : depuis sms-ie, on « efface les messages ». On retourne dans Messaging. On revient dans sms-ie. On importe l'archive qu'on a créé. Fin. (Oui, il faut revenir dans Messaging entre la suppression et l'importation, sinon les messages seront doublonnés.)

    Limitation : dans toute conversation dans laquelle au moins un MMS a été échangé (peu importe le sens), Messaging verra deux participants : l'interlocuteur et soi-même. Si l'on veut répondre dans la conversation, il faut envoyer un MMS (au lieu d'un SMS) à l'interlocuteur et à soi-même. Sinon, recommencer une conversation. Quand un SMS arrive, cela créera une nouvelle conversation. L'importation produit cet effet-là même sans tri des messages.



    Idée de durée de conservation : 1 an, très grand max. Messaging n'a pas de fonction de recherche et personne ne se réfère à un SMS vieux de plusieurs semaines. Ça laisse aussi le temps de réaliser une capture d'écran en cas de litige. Note que si tu fais le ménage une fois par an, le 1er janvier par ex., il faut supprimer tous les messages antérieurs à ce jour, sinon tu aurais une durée de conservation de deux ans (au 01/01/2026, si tu effaces < 01/01/2025 ‒ un an, alors au 31/12/2026, tu auras deux ans d'historique).


    Voir ici pour une purge du journal des appels.

    Fri 27 Feb 2026 04:48:04 PM CET - permalink -
    - http://shaarli.guiguishow.info/?cZB92g
Links per page: 20 50 100
page 1 / 1
Mentions légales identiques à celles de mon blog | CC BY-SA 3.0

Shaarli - The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community