A talented developer managed to emulate the very first version of the iPhone operating system on a computer with QEMU.
For years, it’s been possible to run macOS on non-Apple computers thanks to the tools Hackintosh. But when it comes to iOS, no one has been able to make it work on other platforms – at least until now. A developer managed to emulate the first version of theiPhoneOS on a computer using QEMU. Before call it iOS shortly after the arrival of the iPad, Apple mentioned its iPhone OS mobile operating system.
iPhone OS 1.0 emulated on computer
Martijn De Vos, also known as devos50, used the reverse engineering process to emulate the very first version of the iPhone OS released for the first generation iPod touch in 2007, after the launch of the iPhone . The project took over a year as the developer had to figure out how to simulate things like multitouch support and other hardware components unique to Apple’s early mobile devices.
In one blog post, De Vos explains that the trickiest part was emulating the hardware components of the iPod touch. This is why the developer chose to emulate the first version of the iPhone operating system made for the iPod rather than the iPhone, because to make the iPhone version work, you would have to emulate again more components.
At the same time, the Dutch doctoral student also chose iPhone OS 1.0 due to the fact 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.
Interestingly, the project only became a reality thanks to OpeniBoot, an open source implementation of Apple’s Startup program. The project was abandoned a long time ago, but it allowed users to do things like install Android on the first generations of the iPhone and iPod touch. This saved De Vos a lot of time in emulating the XNU kernel. The researcher also relied on early iOS emulation work from Zhuowei and of Jonathan Afek.
A functional iOS emulator
Despite some bugs, the final project is functional, and iPhone OS 1.0 was successfully emulated with QEMU – free virtual machine software, which can emulate a processor and, more generally, a different architecture if necessary. QEMU is signed Fabrice Bellard.
The system is fully navigable using a mouse and keyboard, and most of the pre-installed apps work flawlessly. Some situations cause the system to crash, but the exploit is noteworthy. Running one platform on another is no easy feat, as we mentioned for example recently about theRyujinx switch emulator.
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 iOS virtual devices, but all tools and code are private. Creating your own virtual machine isn’t exactly easy, but De Vos has shared all the details in a blog post for those interested in doing so.
Here are the functional elements:
- The AES cryptographic engine
- The SHA1 hash engine
- The chip identification module
- Hardware clock and timer
- The GPIO controller
- LCD screen and framebuffers
- The NAND Controller and Error Correcting Code (ECC) Module
- The Flash Memory Controller (FMC), used to communicate with NAND memory.
- The multitouch device
- The energy management unit and the integrated real-time clock
- The SDIO controller
- The SPI controller
- The I2C controller
- The Vector Interrupt Controller (VIC) and the GPIO Interrupt Controller
- The direct memory access (DMA) controller
- The UART controller
And those that are not functional (non-essential):
- USB OTG/Synopsys devices
- audio devices
- The 802.11 Wi-Fi Controller
- The PowerVR MBX graphics processor
- The video encoding/decoding engine
- The accelerator and the light sensor
An emulator for iOS 2.1
For his next project, de Vos wants to emulate a second-generation iPod touch, which was released with iPhone OS 2.1. A challenge that should be less difficult for the
Is this something you might be interested in? What purpose ?
We wish to give thanks to the author of this article for this remarkable web content
A developer emulated iOS 1.0 on a computer with QEMU
You can find our social media profiles and other pages related to it.https://yaroos.com/related-pages/