Try "\.sqlite" too.
This is fun:
brew install datasette
datasette ~/Library/Calendars/Calendar.sqlitedbTry "\.sqlite" too.
This is fun:
brew install datasette
datasette ~/Library/Calendars/Calendar.sqlitedbI'd been poking through them with plain old `sqlite3` and then deserializing all the plist data with something like `pbpaste | xxd -r -p > foo.plist` for examination, but had no idea datasette existed and https://datasette.io/plugins/datasette-bplist#user-content-t... seems like the ticket for browsing these.
For others: all the Caches.db files are the per-process HTTP cache that NSURLRequest/NSURLSession keeps, so if you peek at it you can see (partially) a history of network requests that process has made. Most of them seem to pull feature flag configuration from https://bag.itunes.apple.com/bag.xml, but others do more interesting things.
https://github.com/dunhamsteve/notesutils
It seems to still work for text. It looks like it doesn't dump tables anymore, so that bit may have changed (it was pretty convoluted). I think the extraction of drawing information doesn't work anymore, but they provide a fallback PNG file.
I wanted it to be self-contained, so it has a little hand-rolled protobuf decoder and might be a little code-golfy.
1. XML-based (the entire database is one xml file)
2. SQLite-based
3. Roll your own (by providing an implemention)
#1 is terribly slow for most cases and not publicly available on iOS.
#3 was released early in the ioS lifecycle (iOS 3 or iOS 5, depending which piece we're talking about)
SQL is, for most purposes, the only implementation, except for iTunes which used #1 for a decade after #2 clearly won.