Sei ricercatori del Dipartimento di Informatica della Columbia University hanno sviluppato un’architettura, denominata Cider, che permette di eseguire applicazioni iOS su un dispositivo Android. Invece di usare una tradizionale macchina virtuale, sono state implementate due tecniche che “ingannano” le app iOS, adattando al volo il codice in modo da renderle compatibili con il kernel e le librerie Android. Le prestazioni non sono particolarmente elevate, ma il prototipo funziona. Il video pubblicato su YouTube mostra la demo su un Nexus 7 del 2012.
Cider sfrutta una nuova combinazione di tecniche che permettono di ottenere la compatibilità binaria: compile-time code adaptation e diplomatic functions. La prima consente di riutilizzare il codice sorgente “straniero” (iOS) nel kernel “domestico” (Android), evitando l’implementazione di interfacce binarie multiple per eseguire le applicazioni. La seconda, invece, consente alle app straniere di utilizzare le librerie domestiche per accedere al software proprietario e alle interfacce hardware.
Come si vede nel video, Android supporta l’esecuzione delle app PassMark, Yelp, Apple Remote, Apple iBooks e Apple Stocks. Gli sviluppatori sottolineano che le app Android continuano a funzionare regolarmente e che non hanno riscontrato problemi di compatibilità tra i due sistemi operativi. Il prototipo non permette alle app iOS di sfruttare tutte le caratteristiche del tablet Android (GPS, fotocamera, Bluetooth, ecc.), ma in futuro è previsto il supporto completo. Pochi giorni dopo la registrazione del video, è stato aggiunto il supporto per il GPS (nella demo, Yelp funziona anche senza attivare il servizio di localizzazione).
Dall’articolo che illustra il funzionamento di Cider si evince che i test sono stati effettuati usando le app scaricate su un iPhone 3GS “jailbroken” con iOS 5.0. Con un tool sono stati decriptati i file .ipa (iOS App Store Package), successivamente copiati sul tablet.