iOS emulators are here!
Not many people have breached Apple’s ecosystem without brutally jailbreaking it – though some have indeed come close. And now, we see some coming close enough to be mentioned. Two projects that are currently trying to emulate the iOS environment (one of them promises the apps too, on other platforms like Windows Phone and Android, and probably as a payback, the iOS platform itself!).
The first project we came across is a solo attempt by a programmer from Wales, who goes by the name Christina B and calls her project ‘Magenta’ (incidentally, she’s also part of a local band called ‘Magenta’). She is trying to achieve binary compatibility between her code and the iPhone OS 5.0 by using Darwin, Apple’s very own open source operating system (!), over a basic core of a Linux kernel. Linux was preferred over BSD because of the wide variety of services that Linux natively supports, in addition to the seamless support for ARMv7, the project’s chosen hardware.
Because everything is compiled for the fabricated vanilla Darwin, nothing needs to be prepared separately for underlying Linux base, except for the libC (the C library), which acts as a bridge between the userland and the kernel. The final aim of the project is to eventually emulate the proper iOS 1.0 stack, with a maximum low-level compatibility. The possibility of achieving this is pretty high, since there are many open-source implementations for Apple’s proprietary libraries. Apps from Apple’s web store would not be compatible, though, because the programmer realizes that achieving 100% high level equivalence would be very difficult for a one-person project. The code is open source – feel free to take a look (or help out, if you’re interested!). You can read more about the project at http://crna.cc/
The second one is a more comprehensive plan, which has the potential to bring the entire iPhone experience, to, well, other phones. What started off as a simple app emulator is slowly becoming a complete and comprehensive idea, which can even load the iOS kernel, with some effort (though not without its fair share of bugs, as of now). The project is one of the success stories of community funding, with the current status being very promising. They’ve actually begun on top of QEMU, an already popular emulation service, and are trying to add iOS support to that.
The central idea is to replicate the working of Samsung’s S5L8930 chipset, which forms the core of almost the entire existing Apple device range. They are also aiming for reflashing support via iTunes. The process is well underway with whatever support they’ve garnered yet, and as creator Chris Wade notes, they’ve already had their current implementation to run the iPhone 2G bootloader (and the kernel too, with some difficulty). You can learn more about the project and its development at http://www.iemu.org
As standalone implementations, these are as brilliant as they come from a programmer’s point of view. Sadly, this is not a programmers’ world alone. It cannot be long until some of the top brass of the licensing sections of the concerned corporations takes notice, and take ‘appropriate’ actions. With Apple and its recent suing spree, one can never know.