Un développeur néerlandais, Martijn de Vos, a montré récemment un émulateur un peu particulier : il utilise QEMU pour lancer iPhoneOS 1.0 sur un iPod touch virtuel.
Un iPod touch virtuel sans trop de fonctions
Émuler un appareil iOS n'est pas totalement une première : Correlium le fait pour ses offres, par exemple. Mais la solution de Vos est open source et utilise QEMU comme base, un outil largement employé, multiplateforme et complet.
Il a choisi iPhoneOS 1.0 (oui, à l'époque iOS ne s'appelait pas encore iOS) dans sa toute première version pour un appareil… qui n'est pas l'iPhone. Il a en effet développé son programme pour émuler le premier iPod touch. S'il est techniquement assez proche de l'iPhone, il n'a pas de modem cellulaire, pas de Bluetooth, pas d'appareil photo. Il explique dans un premier billet ce qui fonctionne et ce qui ne fonctionne pas.
Vous ne lancerez pas vos applications préférées
Le processeur lui-même fonctionne, mais c'est logique : Apple utilisait à l'époque un modèle directement fourni par ARM, l'ARM11, et QEMU l'émulait déjà. Il a surtout dû développer les composants nécessaires à la prise en charge du stockage et quelques puces annexes, pour permettre à iPhoneOS de démarrer. Il a aussi implémenté la gestion partielle du multitouch (certains gestes ne fonctionnent pas) et un affichage en 2D. Il n'émule en effet pas encore le GPU de l'iPod touch (un PowerVR MBX Lite) mais l'OS et l'interface peuvent démarrer sans accélération vidéo, avec un rendu purement logiciel.
Si quelques applications livrées avec l'OS existent, n'espérez évidemment pas lancer vos jeux préférés : cette version du système n'acceptait pas les applications tierces et il manque encore pas mal de choses. Premièrement, il n'émule pas le Wi-Fi (donc l'iPod touch ne communique pas), l'audio, tout ce qui est lié au GPU, les capteurs ou l'USB. Deuxièmement, dans ce qui fonctionne, le clavier virtuel ne marche pas, c'est instable, les gestes avancés ne sont pas gérés et l'ensemble n'est pas persistant, c'est-à-dire que les modifications effectuées ne sont pas sauvegardées lors de l'arrêt.
Malgré tout, il s'agit d'un exploit : c'est le premier émulateur open source qui lance le système d'Apple. Et si vous avez envie d'essayer l'émulateur en question (et que la ligne de commande ne vous effraye pas), un second billet explique comment exécuter le programme.