Le Blog

extraire notes storedata mac sqlite

Récupérer des Notes perdues sous macOS

Une cliente m’a contacté récemment car ses notes (dans l’application Notes) de son Mac ont disparues, subitement après une manipulation de prime abord anodine. Ses notes étaient stockées sur Outlook et synchronisées sur le Mac grâce à l’option incluse dans macOS (Mojave dans cette situation) [Préférences Système > Comptes Internet > Outlook > option Notes]

Il n’est normalement pas possible de perdre ces notes, en effet, lorsque l’on coche/décoche cette option il est censé n’y avoir qu’une action de synchronisation/désynchronisation. Dans cette situation, les notes ont complètement disparues du Mac mais aussi du compte Outlook ! Assez incroyable… mais je l’ai constaté de mes propres yeux.

Suite à cela, j’ai commencé à faire quelques recherches sur le sujet et comprendre comment sont stockés les notes dans macOS. J’ai réussi à récupérer l’intégralité des notes et je vais expliquer rapidement la méthode que j’ai employé.

Le nécessaire

  • Si vous avez un Mac, vous n'avez besoin de rien.
  • Si vous n'avez pas de Mac, vous avez besoin d'un logiciel de base de données compatible SQLite.
    Je ne présente pas cette technique ici, elle sera présentée dans un autre article.
  • Quelques notions de SQL sont un plus.

Préambule

Je vous montre ici la technique ultra simple et rapide pour extraire des notes stockées dans un fichier *.storedata. Le résultat est tout juste présentable. Cette technique peut servir juste pour récupérer une note mais c’est un travail (que je considère) bâclé s’il doit être présenté a un client.

ATTENTION : bien faire une sauvegarde du fichier, il est préférable de ne pas travailler dessus directement.

  • Chemin d'accès à la base de données des notes *.storedata
    ~/Library/Containers/com.apple.Notes/Data/Library/Notes
  • Nom du fichier *.storedata selon les versions de macOS
    NotesV1.storedata (Mountain Lion)
    NotesV2.storedata (Mavericks)
    NotesV4.storedata (Yosemite)
    NotesV6.storedata (El Capitan & Sierra)
    NotesV7.storedata (High Sierra / Mojave et Catalina)

1

Ouvrir une session SQLite3

  • SQLite est un moteur de base de données très utilisé dans le monde de l'informatique car il est très léger, rapide et surtout multi-plateforme. Vous le saviez peut-être pas, mais ce moteur est incorporé dans macOS depuis plusieurs années (peut être même depuis le debut ?). Les notes sont stockées dans un fichier "storedata" qui est en fait une base de données SQLite.
  • Le fichier *.storedata a été préalablement copier le fichier sur le bureau.
  • Ouvrir le Terminal (situé dans [Applications > Utilitaires > Terminal]).
  • Taper la commande [sqlite3]

2

Ouverture et extraction

  • Pour ouvrir une base de données, taper la commande [.open ] (bien faire un espace après open).
  • Glisser le fichier *.storedata dans la fenêtre du Terminal pour que le chemin du fichier se complète automatiquement puis confirmer (il ne se passe rien à part un retour à la ligne, c'est normal).
  • Pour définir le fichier d'extraction, taper la commande [.output ] (bien faire un espace après output).
  • Glisser le fichier *.storedata dans la fenêtre du Terminal pour que le chemin du fichier se complètement automatiquement, effacer l'extension .storedata et mettre .html puis confirmer (il ne se passe rien à part un retour à la ligne, c'est normal mais un fichier vide a été créé à l'endroit définit).

3

Lancer l'extraction des données

  • Pour extraire le contenu de la base de données, il faut maintenant créer une requête SQL (si vous avez des notions, vous pourrez optimiser votre extraction).
  • Taper la commande [Select ZHTMLSTRING from ZNOTEBODY;]
  • L'extraction est en cours, deux nouveaux fichiers ont été créés mais ne vous intéresses pas.
    ATTENTION : Il n'y a pas de barre de progression, donc patientez quelques instants (selon la taille de votre fichier) pour que le fichier .html se remplisse.

4

Fermer la session SQLite

  • Lorsque vous avez assez patienter et que votre fichier extrait est complet, il faut fermer la session SQLite afin de fermer correctement le fichier.
  • Taper la commande [.exit]

5

Résultat de l'extraction

  • Votre extraction est stockée au même endroit et c'est une page web .html.
  • Vous pouvez maintenant ouvrir et explorer le contenu.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *