Using macOS Bookmarks as enduring references: Precize and Preciziun

In my previous postings about using enduring references to files and folders, I have warned that Apple is moving away from the use of inode numbers and the volfs system, but hasn’t yet provided suitable access to its replacement Bookmarks for users, sysadmins, etc.

As you will have guessed, I have been working at this issue and come up with what I hope is the kernel of a solution: opening access to Bookmarks in Base-64 encoding. Once encoded this way, the opaque binary data in a Bookmark becomes an opaque string of characters. You can find them embedded as data in the .sfl and .sfl2 (High Sierra) files in ~/Library/Application Support/com.apple.sharedfilelist. That is the folder in which Launch Services keeps per-app lists of items to appear in the Open Recent menu.

I therefore offer a new version of Precize, which generates Bookmarks in Base-64 format, and a small helper app, Preciziun, which will locate items from their Base-64 Bookmark: precize10b4

Here’s a simple example of what they can do.

First, open Precize, select a significant document, drag and drop it onto the app to open it. In the lower scrolling text view, find the Bookmark in Base-64 format, and select it.

preciziun01

Next, open Preciziun. Copy the Bookmark from Precize and paste it into the upper scrolling text view of Preciziun. Click on the Resolve button, and you should see the document’s full path, and its volfs path, appear in the lower text view. Click on the Reveal in Finder button once a Bookmark has been resolved, and you should be shown that document in a Finder window.

Now make a permanent copy of the Bookmark in a text file, for example. Quit both apps, move your document around on the same volume, and open Preciziun again. Paste the same Bookmark into it, and when you click Resolve, you should see the new path to your document. Note that the volfs path shouldn’t change, as that uses inode numbers, which are also enduring.

You should be able to do this across restarts, provided that you restart from the same volume.

This should work in El Capitan, Sierra, and High Sierra. You should also be able to copy and paste Bookmark data from .sfl and .sfl2 files as Bookmarks, giving you access to the Bookmarks stored by Launch Services. To make that easier, Preciziun strips space, newline, and tab characters from the text before trying to use it as a Bookmark, so you shouldn’t have to edit it in preparation.

So far this may appear to be just a party trick. But enduring references to documents, which survive moving the document and restarts, are valuable locators. I plan to produce a simple command tool to generate Bookmark data, and to return the URL path from a bookmark, which should be useful as a substitute for using volfs.

Finally, this confirms that the data blocks included in .sfl and .sfl2 files are in fact Base-64 encoded Bookmarks, which should help anyone who needs to access them, perhaps for forensic purposes.