Vous ne pouvez utiliser que des images spécialement conçues pour votre propre appareil. Contrairement aux images de CD Live Linux, les images Android ne contiennent généralement que les pilotes du périphérique auquel elles sont destinées, afin de gagner de la place. Il est très peu probable que vous puissiez exécuter correctement une image conçue pour un autre appareil, à moins que le matériel de l'appareil soit extrêmement similaire à l'appareil d'origine.
De nombreux moddeurs compilent à partir du code source et passent beaucoup de temps à trouver les drapeaux de compilation qui excluent les pilotes dont ils n'ont pas besoin tout en s'assurant qu'ils incluent ceux dont ils ont besoin, et à modifier les paramètres pour l'optimiser pour le périphérique ; cela peut être difficile sur certains périphériques si les fabricants ne publient pas tout leur code source ou s'ils n'ont pas publié les paramètres utilisés dans leurs propres images. Certains moddeurs échangent des modules compilés d'un autre appareil doté d'un matériel similaire dans une image de base connue pour fonctionner sur leur appareil ; il s'agit essentiellement d'essais et d'erreurs car il n'y a aucune garantie que cela fonctionne. Dans certains cas extrêmes, il est arrivé que des moddeurs estiment que le fabricant avait fait un travail extrêmement médiocre sur certains pilotes et réécrivent l'ensemble du pilote à partir de zéro.
Pour chacune de ces méthodes, vous devez être très familier avec le noyau et le matériel de l'appareil. C'est généralement plus facile si le fabricant a publié des images vanille et/ou leurs paramètres de compilation.
Contrairement aux binaires compilés, les APK sont toutefois généralement interchangeables, car ils sont compilés en Dalvik et non en ARM. Il est souvent possible d'obtenir un aperçu des fonctionnalités d'un appareil ultérieur en chargeant les bons APKs. C'est pourquoi il est souvent possible d'installer des lanceurs et des claviers plus récents sur des versions antérieures d'Android.