Currently we rely on factory process to provision few VPD values into device - at least rlz_brand_code and customization_id.
This started from that rlz_brand_code should be bound to device instead of from disk image (which makes it harder to share images). However it falls to same problem the regional (go/cros-regional-vpd) vpds have: (1) it's hard to make sure partners have filled right values (2) RO VPD values can't be updated once it's written (3) dogfood and early builds may not have right information provisioned.
Regional VPDs were solved by an update-able JSON database. rlz_brand_code and customization_id are more hardware-dependent so they should be solved in same way chassis id was introduced (go/cros-chassis-id) - provided by a command (mosys) allowing per-board customization.
The proposal is to add two mosys platform sub command:
mosys platform brand # prints rlz_brand_code
mosys platform customization # prints customization_id, if needed
Programs reading these values should use mosys instead.
(Chrome reads from from machine-info, and we may keep same name in machine-info file so Chrome won't need to be changed).
Comment 1 by bugdroid1@chromium.org
, Jun 9 2017