Android no tiene "controladores de dispositivos". Si usted pensara en todo el ecosistema de Android dentro de su teléfono, dividido en 3/4, utilizando el lenguaje de programación Java, el 1/4 restante es el kernel escrito en C/Assembler. Es ahí, dentro del kernel, donde se incrustan los drivers. Es parte del trabajo del kernel interactuar con la pantalla táctil, los acelerómetros, la brújula, etc, y ciertas interacciones con el hardware se delegan en el lado de Android. Esto es un resumen en forma abstracta para que el profano lo entienda.
En cuanto a los fabricantes de hardware como Acer, Huawei, HTC, Samsung, Sony, Zte, por nombrar algunos, lo que hacen cada una de esas empresas, es publicar las fuentes del kernel, para que se pueda construir. Aunque, dicho esto, algunos no cumplen exactamente con la GPL, algunos proporcionan las fuentes, que pueden no ser totalmente completas, muy posiblemente, debido a las restricciones de cierto código cerrado para un hardware en particular, u otros simplemente violan flagrantemente la GPL y no la publican en absoluto. Tal vez, algunos sí distribuyen la fuente en la que el proceso de rodar su propio kernel puede fallar debido a errores malformados en el código o a la falta de código extra.
Esto se aplica a los núcleos más antiguos, la versión 2.6.x, en la que una mezcla de las fuentes apropiadas se fusiona manualmente, para crear una construcción, aquí es donde puede ser horrible, la construcción se rompe, el núcleo se niega a arrancar y un montón de hacking para conseguir la construcción para trabajar.
Atheros, es un ejemplo muy clásico de un chipset wifi que se encuentra en una gran mayoría de los teléfonos, en particular, las fuentes para el controlador del dispositivo, son bastante difíciles de encontrar, lo que ha dado lugar a construcciones rotas del conductor, a su vez, cuando se integra con el núcleo, en su conjunto, Android se niega a iniciar el wifi. Debido a la oscuridad de la fuente, los hackers han intentado obtener el controlador wifi apropiado de otras ROMs de stock, exacerbando así el juego en la funcionalidad del wifi que o bien funciona o se rompe.
Las nuevas versiones del kernel 3.1.x, tienen la mayoría de los controladores de dispositivos empleados para el uso con Android, fusionados en las fuentes principales del kernel, minimizando así las posibilidades de mezclar-n-matching, fusionando la fuente manualmente para un hardware, ya sea una nueva brújula, acclerómetro, etc.
Si hay algo que no está bien, no dude en comentarlo, y modifíquelo en consecuencia.