The device refusing to load a modified kernel is a GPLv2 violation, at least Conservancy interpret "scripts" to include everything needed to run the modified code, since the device recipient does not have software freedom without the ability to load modified code. The GPLv3 has additional improvements in addition to the clarified requirements around device lockdown.