1、因為硬件的不同,而不同的硬件需要不同的驅動。驅動在Android內核中,通常由硬件商提供,轉交OEM集成優化。這些驅動並未提交到主流Linux內核中。
2、代碼量巨大。
3、主流內核接納周期長(Google為Android開發的代碼至今仍在staging中)。所以在內核GPL協議的約束下,OEM都選擇單獨發布適配具體機型的內核源代碼。另外各OEM商所采用的bootloader都各不相同,加載內核的基址即使出自同壹家也不相同。基址是在內核中寫死的。所以如果刷了不同設備的內核鏡像會導致設備無法啟動。