От години хората успяват да стартират 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.
Снимка: Unsplash
Виж още: Защо падат сателитите на SpaceX?