Code signing is not a security feature!
I'm sorry, but no, code signing never was and never will be a security feature. If it was, we'd all be doing sensitive work on iPhones and Games consoles.
The only chance to get a secure system is to design a minimalistic system by non-idiots.
Let me elaborate on this. The more complex a system is, the more lines of code it contains. The more lines of code it contains, the more bugs there are. More bugs means there are more security relevant bugs.
Now imagine there being a buffer overflow in one of the many routines, for example one that checks the validity of a signature. Suddenly simply placing a file to be checked can make it execute code on your computer. This problem wouldn't have existed if that routine wouldn't have existed.
Since checking for errors in other code is hard, it's much simpler to just replace the complex general purpose system with a simpler limited-purpose one. This is what's commonly known as hardening. Unfortunately, if your kernel is signed, you cannot replace it with a kernel you just compiled yourself.
Particularly with mobile devices code signing is useless since there the physical access vector is most common. Once you have physical access you don't care about signed bootloaders, you can simply replace the keyboard and the screen with versions that report back to you. There already are replacement battery packs with radio-microphones for most types of mobile phone.