I was running Cyanogenmod since I’ve got my m8. Cause of this the firmware never got updated via OTA. When I tried to update my m8 to CM12 custom recovery told me that I’ve got wrong bootloader version to upgrade.
Here is a simple walkthrough to ugprade the firmware without flashing stock firmware and without flashing stock recovery.My device has S-ON and CID is 401.
Now reboot your device to RUU mode and flash firmware via (this may birck your device, be carefully):
fastboot oem rebootRUU
fastboot flash zip 3.28.401.9.zip
At first try (fastboot flash zip 3.28.401.9.zip) did not work out correctly. Try again (don’t reboot) then it should success.
When hopefully everything was correct your device has stock recovery installed and in hboot it shows relocked. You can now unlock your phone normally as you did first time via http://www.htcdev.com/bootloader
After bootloader unlock flash custom recovery and enjoy Android L CM12 on your m8.