# 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.
