A team of six students at Columbia University has created a software framework for Android that allows simple iOS apps to run as if they were native. The technique tricks Android into believing the apps were designed for it, while creating an environment that the apps can run in stably.
The students, Jeremy Andrus, Alexander Van't Hof, Naser AlDuaij, Christoffer Dall, Nicolas Viennot and Jason Nieh, managed to create Project Cider at the individual processing thread level rather than using a virtualisation layer, which has already been done across various platforms.
In an abstract of the
full PDF report posted to Columbia University's Software Systems Laboratory
website (and reported by
TheNextWeb), the team describes two new binary compatibility mechanisms, compile-time code adaptation, and diplomatic functions. The abstract reads, "Compile-time code adaptation enables existing unmodified 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. Diplomatic functions leverage per-thread personas, and allow foreign applications to use domestic libraries to access proprietary software and hardware interfaces."
The team used a Google Nexus 7 tablet to demonstrate the technique, referring to
Android as the "domestic OS" and
iOS the "foreign OS". By intervening between iOS apps and Android's binary app interfaces, the team was able to successfully run various iOS apps side by side with Android apps. Translation occurs for the iOS apps only, without the rest of the system being affected.
Project Cider has its limitations related to app and hardware functionality. It cannot currently translate instructions and interfaces for access to a device's Bluetooth, GPS, cameras and even cellular radios. iOS apps that can still run with these functions turned off will do so. The team intends to continue development work on this project.