Sólo puede utilizar imágenes creadas específicamente para su propio dispositivo. A diferencia de las imágenes comunes de Live CD de Linux, las imágenes de Android suelen venir sólo con los controladores para el dispositivo concreto para el que fueron diseñadas, con el fin de ahorrar espacio. Es muy poco probable que puedas ejecutar bien una imagen diseñada para otro dispositivo, a menos que el hardware del dispositivo sea extremadamente similar al dispositivo original.
Muchos modders compilan a partir del código fuente y dedican mucho tiempo a averiguar las banderas de compilación que excluyen los controladores que no necesitan mientras se aseguran de que incluye los que necesitan, y ajustan la configuración para optimizarla para el dispositivo; esto puede ser difícil en algunos dispositivos si los fabricantes no publican todo su código fuente o si no publicaron la configuración que utilizaron en sus propias imágenes. Algunos modders intercambian módulos compilados de otro dispositivo con hardware similar en una imagen base que se sabe que funciona en su dispositivo; aunque esto es esencialmente ensayo y error porque no hay garantía de que funcione en absoluto. En algunos casos extremos, ha habido ocasiones en las que los modders han considerado que el fabricante ha hecho un trabajo extremadamente deficiente en determinados controladores y han vuelto a escribir el controlador completo desde cero.
En cualquiera de estos métodos, es necesario estar muy familiarizado tanto con el kernel como con el hardware del dispositivo. Generalmente es más fácil si el fabricante liberó imágenes vanilla y/o sus configuraciones de compilación.
A diferencia de los binarios compilados, los APK suelen ser intercambiables, ya que se compilan en Dalvik en lugar de ARM. A menudo es posible obtener un adelanto de las características de un dispositivo posterior cargando lateralmente los APKs correctos. Esta es la razón por la que a menudo es posible instalar nuevos lanzadores y teclados en versiones anteriores de Android.