This is pretty interesting. A group of six PhD students from Columbia University’s Department of Computer Science have developed ‘Cider,’ an OS compatibility architecture capable of running iOS apps on Android.
The research project utilizes binary compatibility techniques to run both domestic and foreign binaries on the same device. So essentially it can trick an app’s code into thinking it’s running on Apple’s XNU kernel…
We present Cider, an operating system compatibility architecture that can run applications built for different mobile ecosystems, iOS or Android, together on the same smartphone or tablet. Cider enhances the domestic operating system, Android, of a device with kernel-managed, per-thread personas to mimic the application binary interface of a foreign operating system, iOS, enabling it to run unmodiﬁed foreign binaries.
This is accomplished using a novel combination of binary compatibility techniques including two new mechanisms: compile-time code adaptation, and diplomatic functions. Compile-time code adaptation enables existing unmodiﬁed foreign source code to be reused in the domestic kernel, reducing implementation effort required to support multiple binary interfaces for executing domestic and foreign applications.
And here’s a video of the Cider proof-of-concept running on a Nexus 7:
As you can see in the clip, Cider is still very much a work-in-progress. There’s notable lag in animations and actions, and the group says that it does not support features like GPS and Bluetooth, which causes some apps to crash.
The good news, though, is that the students say they plan to continue to work on the project.