Applications compiled on iOS are assigned identifiers (UUID's) at compile time. These identifiers may be revealed by the dwarfdump tool. Does anyone know how UUID's are generated and what information may be encoded within them?
Asked
Active
Viewed 979 times
1 Answers
5
Almost certainly they're generated by the CoreFoundation UUID machinery, which creates them based off of the MAC address of your ethernet card, the timestamp, and some other miscellaneous information. You can generate your own UUIDs by running uuidgen
. As for the information encoded in them, all that's really there is fragments of your MAC address. Pretty much the only relevance this has is it may be theoretically possible for someone to determine that multiple UUIDs were generated on the same machine, but I don't know if that's actually possible.

Lily Ballard
- 182,031
- 33
- 381
- 347
-
Thank you. This is helping to take the lid off of this black box. I am trying to get a handle on what info might exist in the community on this subject. – xyzzycoder Feb 09 '11 at 04:19
-
There's actually no guarantee that this info is even accurate anymore. The underlying mechanism used to generate the UUID is an implementation detail. You may find the documentation on [CFUUID](http://developer.apple.com/library/mac/#documentation/CoreFoundation/Reference/CFUUIDRef/Reference/reference.html) to be helpful. – Lily Ballard Feb 09 '11 at 04:47
-
Thanks. I understand that this is essentially a component of private API that Apple may change without notice. Given that understanding, I would still like to glean what I can on the specifics of the current implementation. – xyzzycoder Feb 09 '11 at 05:01
-
From reading the [CFUUID.c source](http://www.opensource.apple.com/source/CF/CF-550/CFUUID.c), it appears that it generates a UUID using time/MAC address if the app was built on or before Tiger, or if the env variable `CFUUIDVersionNumber` is set to 1. Otherwise it generates what's called a [Version 4 UUID](http://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_.28random.29), which is essentially random with no identifying information encoded. – Lily Ballard Feb 09 '11 at 22:51