Ты хотел бы поиг­рать в игры под Windows на сво­ем айфо­не? Или запус­тить macOS на iPad? А может, ты меч­таешь пос­тавить на эти устрой­ства Android или Linux? Это воз­можно! Ска­жешь, мы сош­ли с ума? А вот и нет: в iOS мож­но соз­давать вир­туаль­ные машины с раз­ными опе­раци­онны­ми сис­темами. Для это­го раз­работа­но спе­циаль­ное при­ложе­ние под наз­вани­ем UTM. Сегод­ня мы погово­рим о том, как уста­новить эту прог­рамму на твой iPhone или iPad и как ее исполь­зовать.
 

Что такое UTM?

К вир­туал­кам вро­де VirtualBox или VMware все уже дав­ным‑дав­но при­вык­ли: подоб­ные инс­тру­мен­ты сущес­тву­ют для боль­шинс­тва сов­ремен­ных «нас­толь­ных» опе­раци­онок. В iOS до недав­него вре­мени средств вир­туали­зации не было и в помине (по край­ней мере, широкая пуб­лика о них ничего не зна­ла). И вот — свер­шилось: для мобиль­ных устрой­ств Apple наконец‑то появил­ся пол­ноцен­ный инс­тру­мент вир­туали­зации, под­держи­вающий к тому же боль­шое чис­ло про­цес­сорных архи­тек­тур.

UTM может работать без джей­лбрей­ка на iOS 11, 12 и 13, а так­же на устрой­ствах с чипом А12 под управле­нием опе­раци­онной сис­темы вер­сий 14.2 и 14.3. При этом при­дет­ся исполь­зовать сер­тификат раз­работ­чика, пос­коль­ку UTM уста­нав­лива­ется не из офи­циаль­ного магази­на App Store, а из сто­рон­него хра­нили­ща AltStore. Как извес­тно, бес­плат­ные сер­тифика­ты раз­работ­чиков для iOS дол­жны перепод­писывать­ся каж­дые семь дней, и AltStore авто­мати­зиру­ет этот про­цесс. Джей­лбрейк необ­ходим толь­ко для запус­ка при­ложе­ния на iOS 14 стар­ших вер­сий, при этом сами соз­датели UTM рекомен­дуют исполь­зовать Jitterbug или AltJIT для уста­нов­ки при­ложе­ния.

Вир­туаль­ная машина UTM под­держи­вает более 30 про­цес­соров, вклю­чая х86_64, RISC-V и ARM64. В осно­ве UTM лежит код QEMU. Пос­коль­ку в устрой­ствах iOS отсутс­тву­ет под­дер­жка аппа­рат­ной вир­туали­зации, вмес­то уско­рите­ля KVM раз­работ­чики исполь­зовали TCG, который выпол­няет динами­чес­кую тран­сля­цию кода и JIT-ком­пиляцию. На прак­тике это озна­чает, что даже ARM-код для запус­ка в UTM дол­жен пред­варитель­но ком­пилиро­вать­ся в JIT, а это замет­но сни­жает про­изво­дитель­ность при­ложе­ний. Кро­ме того, пос­коль­ку вир­туали­зация GPU не под­держи­вает­ся, отсутс­тву­ют DirectX и OpenGL, что огра­ничи­вает запуск боль­шинс­тва сов­ремен­ных игр под Windows. Одна­ко при­ложе­ния и игры, не тре­бующие под­дер­жки гра­фики, под этим эму­лято­ром пой­дут.

 

Установка

 

На устройство с джейлбрейком

Ес­ли на тво­ем iPhone или iPad име­ется джей­лбрейк, уста­нов­ка UTM не пред­став­ляет ни малей­ших слож­ностей. Для начала необ­ходимо ска­чать и пос­тавить на устрой­ство при­ложе­ние AppSync Unified, которое мож­но получить из репози­тория https://cydia.akemi.ai. Для это­го открой Cydia, наж­ми кноп­ку «Источни­ки» в ниж­ней час­ти окна, затем над­пись «Прав­ка» в пра­вом вер­хнем углу. Теперь над­пись «Добавить» сле­ва ввер­ху — вве­ди URL https://cydia.akemi.ai в открыв­шемся окне и наж­ми «Добавить». Пос­ле это­го в спис­ке источни­ков перей­ди в толь­ко что под­клю­чен­ный репози­торий Karen’s Repo и уста­нови из него при­ложе­ние AppSync Unified.

За­тем ана­логич­ным обра­зом под­клю­чи в Cydia репози­торий https://cydia.getutm.app/ и уста­нови из него само при­ложе­ние UTM.

Установка AppSync Unified и UTM
Установка AppSync Unified и UTM
Установка AppSync Unified и UTM
Ус­танов­ка AppSync Unified и UTM
 

На устройство без джейлбрейка

Ус­танов­ка UTM в iOS без джей­лбрей­ка выг­лядит чуть слож­нее, но толь­ко на пер­вый взгляд. Пот­ребу­ется уста­новить на тво­ем айфо­не AltStore. Дела­ется это вкрат­це так: уста­нови на компь­юте­ре пос­ледние вер­сии iTunes и iCloud, затем ска­чай с сай­та altstore.io прог­рамму AltServer — для ее исполь­зования необ­ходима как минимум Windows 10.

Под­клю­чи iPhone к компь­юте­ру, зак­рой iTunes, щел­кни в сис­темном трее на знач­ке AltServer и выбери Install AltStore → Имя тво­его устрой­ства. AltStore поп­росит тебя ввес­ти дан­ные Aple ID — для это­го луч­ше зарегис­три­ровать новую учет­ку, при­чем в популяр­ных инс­трук­циях со­вету­ют ука­зывать в качес­тве локации остро­ва Херд и Мак­дональд, остров Нор­фолк или Южная Геор­гия и Южные Сан­дви­чевы остро­ва.

Установка AltStore
Ус­танов­ка AltStore

Пос­ле это­го на iPhone нуж­но открыть нас­трой­ки, перей­ти в раз­дел «Основные → Про­фили и управле­ние устрой­ством → твой Apple ID → Доверять». Оста­нет­ся толь­ко запус­тить AltStore, открыть окно Settings, выб­рать Sign in with Apple ID, пос­ле чего сле­дует ввес­ти адрес элек­трон­ной поч­ты, при­вязан­ный к соз­данно­му ранее Apple ID, и пароль.

Те­перь в нас­трой­ках AltStore нуж­но под­клю­чить репози­торий https://alt.getutm.app и уста­новить UTM отту­да. В качес­тве аль­тер­натив­ного вари­анта мож­но сна­чала ска­чать UTM в виде фай­ла .ipa с GitHub на компь­ютер, а потом уста­новить его на мобиль­ное устрой­ство с помощью AltStore, не забыв под­писать его циф­ровой под­писью.

 

Создание виртуальной машины

Ес­ли ты ког­да‑либо поль­зовал­ся VirtualBox, соз­дание новой вир­туаль­ной машины в UTM не вызовет у тебя никаких зат­рудне­ний. Пос­ле запус­ка при­ложе­ния наж­ми на плю­сик в пра­вом вер­хнем углу экра­на. В поле Name вве­ди про­изволь­ное имя вир­туаль­ной машины, в спис­ке Architecture выбери архи­тек­туру про­цес­сора из пред­ложен­ных вари­антов. С полем System чуть слож­нее: QEMU, лежащий в осно­ве UTM, эму­лиру­ет не толь­ко про­цес­сор, но и целую аппа­рат­ную под­систе­му на его осно­ве. Спи­сок под­держи­ваемых QEMU сис­тем и отоб­ража­ется в этом меню. В боль­шинс­тве слу­чаев мож­но не менять пред­ложен­ный по умол­чанию вари­ант: он опти­мален для выб­ранной архи­тек­туры про­цес­сора.

Вы­бери объ­ем памяти для вир­туаль­ной машины в меню Memory (он, естес­твен­но, не может пре­вышать дос­тупный объ­ем опе­ратив­ки на самом устрой­стве). Наконец, в спис­ке Setup Drives/Images нуж­но нас­тро­ить диск, с которо­го будет заг­ружать­ся твоя вир­туаль­ная машина. UTM под­держи­вает фор­мат QCOW2.

Ме­ню Image Location — это не рас­положе­ние фай­ла обра­за дис­ка, как мож­но было бы подумать, а спо­соб мон­тирова­ния обра­за. Для эму­ляции компь­юте­ра рекомен­дует­ся выб­рать стан­дар­тный вари­ант IDE, для устрой­ств ARM дос­тупен вари­ант virtio. При желании ниже на этом же экра­не мож­но изме­нить пред­ложен­ные по умол­чанию нас­трой­ки дис­плея вир­туал­ки и спо­собы вво­да — вир­туаль­ную кла­виату­ру и эму­ляцию мыши.

Создание виртуальной машины в UTM
Создание виртуальной машины в UTM
Создание виртуальной машины в UTM
Соз­дание вир­туаль­ной машины в UTM

Ког­да нас­трой­ка будет завер­шена, мини­атю­ра вир­туаль­ной машины появит­ся на глав­ном экра­не при­ложе­ния. Что­бы запус­тить ее, дос­таточ­но тап­нуть на этом эски­зе. Если к вир­туал­ке, нап­ример, под­цеплен образ дис­ка с уста­нов­ленной ОС, нач­нется ее заг­рузка.

Виртуальная машина готова
Вир­туаль­ная машина готова
 

Управление виртуальной машиной

В вер­хней час­ти экра­на работа­ющей вир­туаль­ной машины име­ется спе­циаль­ная панель, содер­жащая восемь кно­пок. Пер­вые три поз­воля­ют вык­лючить, пос­тавить на паузу или переза­пус­тить вир­туал­ку. Нажатие сле­дующих по поряд­ку кно­пок раз­ворачи­вает вир­туаль­ную машину на весь экран, откры­вает или, наобо­рот, пря­чет экранную кла­виату­ру, а так­же вызыва­ет окно нас­тро­ек пор­тов и дис­ков вир­туаль­ной машины. Наконец, нажати­ем край­ней пра­вой кноп­ки мож­но убрать эту панель с экра­на. Как видишь, ничего слож­ного — это­го миниму­ма инс­тру­мен­тов впол­не дос­таточ­но для того, что­бы управлять вир­туал­кой. Прав­да, на экра­не iPhone 7 кноп­ки выг­лядят мел­ковато, а вот на iPad, думаю, будут в самый раз.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии