For years, people have been able to run macOS on non-Apple computers thanks to Hackintosh tools. But when it comes to iOS, pretty much no one has been able to run it on other platforms – at least until now. One developer has successfully emulated the first version of the iPhone OS (remember that name?) on a computer using QEMU.
iPhone OS 1.0 emulated without iPhone hardware
Martijn de Vos, also known as devos50, has used a lot of reverse engineering to emulate the very first version of the iPhone OS released for the first-generation iPod touch in 2007, after the iPhone was launched.The project took more than a year to work as the developer had to figure out how to simulate things like multitouch support and other hardware components.
In a blog post, de Vos explains that the tricky part was emulating the hardware components of the iPod touch. This is why the developer chose to emulate the first build of the iPhone OS made for the iPod instead of the iPhone, since making the iPhone version work would require emulating even more components.
At the same time, de Vos also chose iPhone OS 1.0 due to the fact that this version has much fewer security mechanisms than more recent versions of the operating system. “Contemporary Apple devices contain many additional hardware components, such as neural engines, secure enclaves, and a variety of sensors that will make the emulation of such devices much more difficult and time consuming,” the developer explained.
Interestingly, the project only became a reality thanks to OpeniBoot – an open source implementation of Apple’s bootloader. The project was discontinued long ago, but it allowed users to do things like install Android on the first generations of the iPhone and iPod touch.
But is it functional?
Despite a few bugs, the final project seems quite functional, and iPhone OS 1.0 has been successfully emulated with QEMU – an open source virtualization platform.
The system is completely navigable using a mouse and keyboard, and most pre-installed apps work just fine. There are some situations that cause the system to crash, but it’s still impressive to see a version of iOS being emulated on another platform.
The developer notes that this is probably the first time someone has emulated the iPhone operating system using open source tools. Corellium, for example, sells virtual iOS devices, but all tools and code are private. Creating your own virtual machine is not exactly easy, but de Vos has shared all the details in a blog post for those interested in doing so.
For his next project, de Vos wants to emulate a second-generation iPod touch, which was released with iPhone OS 2.1.