blob: 236577b224d58b2abb7e8f050825527b5bfc1dbc [file] [log] [blame] [view] [edit]
# Chrome OS Flex ID
This is a utility and library for generating a device-specific identifier
known as a Flex ID. This was previously named Client ID, and is also
a separate identifier from the client id used in UMA and crash reporting.
Flex ID can be used to account for the lack of VPD information by
amd64 generic based platforms (such as the Reven board).
This utility will check a number of locations to attempt to find a useful
source to define a non-random device identifier.
The Flex ID is stored at `/var/lib/flex_id/flex_id`.
## CloudReady Legacy Client ID
This is a Client ID generated by CloudReady devices that is stored at
`mnt/stateful_partition/cloudready/client_id`. It consists of the device's mac
address and should be prepended with `CloudReady-`.
## DMI Serial Number
This is the serial number from DMI/SMBIOS information, read from
`/sys/devices/virtual/dmi/id/product_serial`. Serial number is not guaranteed
to be useful. There are certain criteria such as minimum length, and comparison
with known bad strings that must be met to be useful.
## MAC Address
This is the best case hardware MAC address that can be read from
`/sys/class/net/<device name>/address`. Priority is given to `eth0` and `wlan0`.
## Kernel UUID
If all of the above fails, a random UUID generated from
`/proc/sys/kernel/random/uuid` will be used.