Эмуляция iPhone OS 1.0 без аппаратного обеспечения iPhone
В течение многих лет люди могли запускать macOS на компьютерах, не относящихся к Apple, благодаря инструментам Hackintosh. Но когда дело доходит до iOS, практически никто не мог запустить ее на других платформах - по крайней мере, до сих пор. Один из разработчиков успешно эмулировал первую версию iPhone OS на компьютере с помощью QEMU.
Мартин де Вос, также известный как devos50, использовал множество методов обратной разработки для эмуляции самой первой версии iPhone OS, выпущенной для iPod touch первого поколения в 2007 году, после выхода iPhone на рынок. Работа над проектом заняла более года, поскольку разработчику пришлось выяснить, как имитировать такие вещи, как поддержка мультитач и другие аппаратные компоненты.
В своем блоге де Вос объясняет, что самой сложной частью была эмуляция аппаратных компонентов iPod touch. Именно поэтому разработчик решил эмулировать первую сборку iPhone OS, созданную для iPod, а не для iPhone, поскольку для работы версии для iPhone потребовалось бы эмулировать еще больше компонентов.
В то же время де Вос также выбрал iPhone OS 1.0 из-за того, что в этой версии гораздо меньше механизмов безопасности, чем в более современных версиях операционной системы. "Современные устройства Apple содержат множество дополнительных аппаратных компонентов, таких как нейронные двигатели, защищенные анклавы и разнообразные датчики, что сделает эмуляцию таких устройств гораздо более сложной и трудоемкой", - пояснил разработчик.
Интересно, что проект стал реальностью только благодаря OpeniBoot - реализации загрузчика Apple с открытым исходным кодом. Проект давно прекращен, но он позволял пользователям делать такие вещи, как установка Android на первые поколения iPhone и iPod touch.
Но функциональна ли она?
Несмотря на несколько ошибок, конечный проект кажется вполне функциональным, а iPhone OS 1.0 была успешно эмулирована с помощью QEMU - платформы виртуализации с открытым исходным кодом.
Система полностью управляема с помощью мыши и клавиатуры, а большинство предустановленных приложений работают просто отлично. Есть некоторые ситуации, которые приводят к сбою системы, но все равно впечатляет, что версия iOS эмулируется на другой платформе.
Разработчик отмечает, что это, вероятно, первый случай, когда кто-то эмулирует операционную систему iPhone, используя инструменты с открытым исходным кодом. Corellium, например, продает виртуальные устройства iOS, но все инструменты и код являются закрытыми. Создать собственную виртуальную машину не совсем просто, но де Вос поделился всеми подробностями в блоге для тех, кто заинтересован в этом. Для своего следующего проекта де Вос хочет эмулировать iPod touch второго поколения, который был выпущен с iPhone OS 2.1.