The ids might be digests of the group names, e.g. MD5 digests:
- They're hex numbers with 32 digits (128 bits), the right length for an MD5 digest.
- When you create a new group in LR's user interface, no file within ~/Library/Application Support/Adobe changes other than the new .xmp file and the Index_*.dat file. Running "strings" on the Index_*.dat file shows that the id of the group isn't stored in it.
- If you rename a group, the id recorded in FavoriteStyles.xmp changes. Typically in systems that store persistent unique ids for objects, when you rename the object, the unique id stays the same.
If this is true, it's not a straight MD5 digest of the name -- it may be a different kind of digest, or it might be a digest of the group name with a suffix or prefix added.
Thanks for the insight, that's given me a direction to head toward!
It makes sense about the MD5 digest, I hadn't considered that. I did some testing earlier and the digest definitely isn't just the group name so there's something else going on. The fact it changes on rename does imply that it's connected to the name in some sense so hopefully we can work out what else gets mixed into the name to create the digest. I've got a couple of variations I want to try but they're nothing but wild guesses.
Would love to get to the bottom of this. We're so close!
So after some more digging I'm pretty sure that the UUID is a variant of the standardised UUID spec. I think it might be a version 3 UUID that combines a namespace and string to create the UUID. If so, I'm stumped as to what the namespace is so it doesn't help the end result of being able to decode or confirm which preset groups the UUIDs are referring to. At a loss for now.
I ran Process Monitor on Windows and verified that when you create a preset in a new group, the only files being modified are the preset's .xmp, the LR catalog, and the Index_*.dat file.
I'm guessing that the key to all this is stored somewhere inside the LR and ACR codebase. Would be a shame if there was no other way to work out the piece of the puzzle that turns the preset group name into a UUID. I experimented with trying to create a group with an identical name to another earlier and ACR wouldn't let me, so that's more evidence that the UUID is probably a fairly simple representation of the name and if two groups had the same name then they'd have the same UUID.