Research project Cider allows unmodified iOS apps to run on Android
Cider, an operating system compatibility layer, allows iOS applications to run natively on Android devices.
Developed by computer science students from Columbia University, Cider effectively tricks iOS apps into running on Android’s Linux kernel just as they would on Apple’s XNU kernel.
Quoting from the team’s recently published research paper, “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 unmodified foreign binaries.” To achieve this, researchers used several binary compatibility techniques, including compile-time code adaptation, which allows unmodified iOS code to run on the host Android, and diplomatic functions, which enable iOS apps to tap into domestic libraries to interact with the Android’s device hardware and software.
In the video above, a Nexus 7 (2012) modified to run Cider on top of Android is able to open and run both regular Android apps and iOS apps such as Yelp or Apple iBooks.
As a work in progress, Cider suffers from some limitations. Apps that rely on features like the phone’s camera, GPS module, or Bluetooth either don’t work or have limited functionality. Further work is required to enable these features.
While the team says Cider removes the need for resource-intensive virtualization techniques, there’s still significant lag when running iOS apps. According to the research paper, this is due to the incomplete OpenGL ES implementation, but additional work could solve the issues.
For now, Cider is a prototype developed as a research project. The team has not announced any plans to continue the project, but cross-platform app compatibility is an area of intense interest, especially in the enterprise sector, making it possible for Cider to eventually become a full-fledged product.