What do the different device/code names mean? Most devices seem to have multiple "names" depending on the context, e.g. marketing, updates or rooting. For example:


Huawei P8 lite (actually, not specific enough since there are at least two variants)
ALE-L21 (or ALE-L04)
hi6210sft (ro.product.name from build.prop)
BalongV8R1SFT (ro.product.board)


What are the definitions of all these "names"?
Huawei P8 Lite: This is the basic model; design, UI and features are usually assigned to the model name.
ALE-L21/ALE-L04: This is the specific model; depending on carrier, location etc. This is often used for determining different revisions of one model and specifies the firmware that needs to run on the device.
hi6210sft: This is the internal product name used for identification (e.g. in apps) and update configuration.
BalongV8R1SFT: This is the Mainboard model. It defines which chips (CPU, GPU, RAM, antennas etc.) are build in your device. This may or may not differ from different models, revisions of your model etc. and are usually important for updates, firmwares, custom ROMs etc.