iPhone OS 1.0 (iOS 1) runs on Mac with an emulator

Developer Martijn de Vos managed to emulate iPhone OS 1.0 (old name of iOS) on his Mac thanks to QEMU. Apple’s mobile operating system uses a virtual iPod touch here.

iPhone OS 1.0 is back… on Mac

Martijn de Vos explains that this project required more than a year of work. He had to do a lot of analysis trying to figure out how such and such a feature was developed in order to recreate it. The developer also had to find a way to simulate things like multitouch support and other hardware components.

On they are blog, the developer explains that the trickiest part was emulating the hardware components of the iPod touch. That’s why he chose to emulate the first version of the iPhone operating system made for the iPod touch rather than the iPhone, because running the iPhone version would require emulating even more components ( such as the cellular part and Bluetooth).

Why iPhone OS 1 and not a slightly more recent version? Martijn de Vos reports that this version has far fewer security mechanisms than newer 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 emulating these devices much more difficult and time-consuming”explains the Dutch developer.

Then comes a very simple question: does it all work? The answer is yes… overall. It is quite possible to navigate the system with its keyboard and mouse. Most of the pre-installed apps work without issue. However, the system may hang depending on the situation. Also, it is not possible to install third-party applications for a very simple reason: the App Store did not exist at the time.

As a reminder, Corellium sells virtual iOS devices, but all tools and code are private. Here, Martijn de Vos offers an open source solution. His next project is to emulate the 2nd generation iPod touch which had iPhone OS 2.1 at launch.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.