В течение многих лет люди могли запускать macOS на компьютерах сторонних производителей благодаря инструментам Hackintosh. Но когда дело доходит до iOS, почти никому не удавалось запустить ее на других платформах — по крайней мере, до сих пор. Один разработчик успешно эмулировал первую версию iPhone OS (помните это название?) на компьютере с помощью QEMU.
iPhone OS 1.0 эмулируется без аппаратного обеспечения iPhone
Мартейн де Вос, также известный как devos50, применил большое количество реверс-инжиниринга для имитации самой первой версии ОС iPhone, выпущенной для iPod touch первого поколения в 2007 году, после выхода iPhone. Проект занял больше года. Чтобы работать, разработчик должен был выяснить, как имитировать такие вещи, как поддержка мультитач и другие аппаратные компоненты.
В сообщении в блоге де Вос объясняет, что сложной частью была эмуляция аппаратных компонентов iPod touch. Вот почему разработчик решил эмулировать первую сборку ОС iPhone, созданную для 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.