1- Donanım kısmı sorun. Belli bir cihaz için hazır (mesela eski) ROM varsa, kolay. Ama yoksa yapmak imkansıza yakın. Mesela General Mobile, Mediatek kaynak kodları paylaşmadığı için yıllarca yeni Android sürümü yapamadı.
2- 4.x sürüm kernel için 3'ü baz alırsan her şeye (her donanıma, kütüphanelere, işlevlere, etkileşimlere, bağımlılıklara) hakim olman şart. Ki yeni ROM o cihazda sorunsuz çalışsın. Ki bunların tümüne hakim olmak çok çok zor (tek kişi için).
3- Android, AOSP adından kaynak kodu açık bir proje.
Ama konuya hakimsen, kabaca kaynak kodu metin gibi işliyorsun.
+
Şurada ayrıntılı bilgi var:
Çekirdek oluşturma | Android Open Source Project