5 Replies Latest reply on Jul 2, 2018 3:12 PM by Robin Hawkes

    Where are preset group UUIDs stored?

    Robin Hawkes

      I'm currently looking into LR presets and how they get managed as I noticed everything is different now with the latest updates (presets stored as XMP, etc).

       

      One thing I'm yet to work out is how LR (and Camera Raw) decides on what UUID to give each preset group / directory. I know that it keeps some kind of reference somewhere as the group UUIDs are used in FavoriteStyles.xmp to define the preset groups that should be hidden in LR and Camera Raw. I can't find any other reference to the group UUIDs in any file other than FavoriteStyles.xmp.

       

      Does anyone know where these preset group UUIDs are stored, or how they map back to a preset group / directory?

       

      Robin

        • 1. Re: Where are preset group UUIDs stored?
          johnrellis Most Valuable Participant

          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.

          • 2. Re: Where are preset group UUIDs stored?
            Robin Hawkes Level 1

            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!

            • 3. Re: Where are preset group UUIDs stored?
              Robin Hawkes Level 1

              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.

              • 4. Re: Where are preset group UUIDs stored?
                johnrellis Most Valuable Participant

                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.

                • 5. Re: Where are preset group UUIDs stored?
                  Robin Hawkes Level 1

                  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.