Хакер - Винда на айфоне. Используем виртуалку UTM для установки Windows на iOS

Хакер - Винда на айфоне. Используем виртуалку UTM для установки Windows на iOS

hacker_frei

https://t.me/hacker_frei

Валентин Холмогоров 

Содержание статьи

  • Что такое UTM?
  • Установка
  • На устройство с джейлбрейком
  • На устройство без джейлбрейка
  • Создание виртуальной машины
  • Управление виртуальной машиной
  • Использование готовых образов ВМ
  • Установка ОС из дистрибутива
  • Выводы

Ты хотел бы поиг­рать в игры под 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 

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

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

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

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

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

УПРАВЛЕНИЕ ВИРТУАЛЬНОЙ МАШИНОЙ

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

ИСПОЛЬЗОВАНИЕ ГОТОВЫХ ОБРАЗОВ ВМ

На стра­нице https://mac.getutm.app/gallery/пред­став­лено нес­коль­ко вир­туаль­ных машин UTM с уже уста­нов­ленной опе­раци­онной сис­темой. Сре­ди них — ArchLinux ARM, Debian 10.4, Mac OS 9.2.1 для PowerPC, ReactOS 0.4.14, Sun Solaris 9 для архи­тек­туры SPARC и Ubuntu 14.04. Все осталь­ные перечис­ленные на этом сай­те ОС тре­буют допол­нитель­ной уста­нов­ки и наличия дис­три­бути­ва (как в слу­чае с Windows). Я попытал­ся открыть веб‑стра­нич­ку с соот­ветс­тву­ющим обра­зом по ссыл­ке со стра­ницы https://mac.getutm.app/gallery/, ска­чать образ вир­туаль­ной машины на телефон и нажать на кноп­ку Open in UTM, но получил ошиб­ку — ни одна из вир­туалок таким обра­зом на моем айфо­не не запус­тилась.

Приш­лось идти дру­гим, более слож­ным путем: вос­поль­зовать­ся фай­ловым менед­жером Filza. Образ вир­туаль­ной машины ска­чива­ется с упо­мяну­того выше сай­та в виде ZIP-архи­ва и сох­раня­ется на айфо­не в дирек­торию \var\mobile\documents. Содер­жащу­юся в этом архи­ве пап­ку нуж­но извлечь с помощью Filza и ско­пиро­вать в пап­ку \user\containers\data\applications\utm\documents, где по умол­чанию хра­нят­ся вир­туаль­ные машины UTM. Пос­ле это­го вир­туал­ка появит­ся в глав­ном окне UTM и машину мож­но будет запус­тить тапом на ее мини­атю­ре.

Вир­туаль­ная машина Sun Solaris на iPhone 7

Од­нако вари­ант с Filza годит­ся, толь­ко если на тво­ем устрой­стве есть джей­лбрейк, по‑дру­гому этот фай­ловый менед­жер ты уста­новить не смо­жешь. Но есть аль­тер­натив­ный спо­соб! Работа­ет это так: ска­чива­ем с сай­та https://mac.getutm.app/gallery/ вир­туаль­ную машину на компь­ютер, рас­паковы­ваем содер­жимое ZIP-архи­ва и перено­сим его в какую‑нибудь пап­ку на Яндекс Дис­ке. Пос­ле это­го нуж­но уста­новить при­ложе­ние Яндекс Диск на iPhone из офи­циаль­ного App Store.

Те­перь запус­каем на телефо­не стан­дар­тное при­ложе­ние «Фай­лы», перехо­дим на экран «Мес­та» и перед­вига­ем впра­во перек­лючатель «Яндекс.Диск», что­бы содер­жимое облачно­го дис­ка отоб­ражалось в этом при­ложе­нии. Перехо­дим в пап­ку, в которую мы сох­ранили вир­туаль­ную машину, дол­гим тапом копиру­ем ее в буфер обме­на, затем перехо­дим в локацию «На iPhone → UTM» и еще одним дол­гим нажати­ем встав­ляем пап­ку с вир­туал­кой в эту дирек­торию. Что­бы нем­ного уско­рить про­цесс, мож­но сна­чала отыс­кать эту пап­ку в при­ложе­нии Яндекс Диск, нажать и удер­живать ее зна­чок, затем в ниж­ней панели нажать кноп­ку «...» и выб­рать в открыв­шемся меню пункт «Добавить в офлайн». Вуаля, наша вир­туаль­ная машина теперь дос­тупна на глав­ном экра­не UTM, мож­но запус­кать!

Ус­танов­ка вир­туаль­ной машины с помощью Яндекс Дис­ка 

УСТАНОВКА ОС ИЗ ДИСТРИБУТИВА

На­пос­ледок я решил самос­тоятель­но уста­новить на вир­туаль­ную машину какую‑нибудь опе­раци­онную сис­тему. Выбор пал на Windows XP: она мень­ше все­го тре­бова­тель­на к ресур­сам, а памяти в моем телефо­не, пря­мо ска­жем, кот нап­лакал. С заг­рузоч­ным обра­зом я пос­тупил в точ­ности так же, как опи­сывал выше: ско­пиро­вал файл .isoна Яндекс Диск, а потом перенес его в пап­ку «На iPhone → UTM» в при­ложе­нии «Фай­лы».

У меня очень дол­го не получа­лось запус­тить уста­нов­ку — вся­кий раз вир­туал­ка выдава­ла ошиб­ку No bootable device, а сам про­цесс нас­трой­ки на сай­те про­изво­дите­ля UTM прак­тичес­ки никак не докумен­тирован, поэто­му под­ходящей инс­трук­ции я не нашел. Победу уда­лось одер­жать пос­ле череды экспе­римен­тов. При соз­дании вир­туаль­ной машины я выбирал этот образ в окне Drives/Images, нажав + в пра­вой вер­хней час­ти экра­на, затем нажимал кноп­ку Path, сно­ва + и Import.

Под­клю­чение дис­три­бути­ва в UTMОка­залось, что таким обра­зом сле­дует соз­давать вир­туаль­ный жес­ткий диск — нажав +, нуж­но вос­поль­зовать­ся кноп­кой Create и затем ввес­ти имя и объ­ем дис­ка. А съем­ный диск под­клю­чает­ся хит­рее: выб­рав интерфейс IDE, нуж­но вклю­чить тум­блер Removable. В раз­деле Drives/Images появит­ся два дис­ка — один соз­данный нами толь­ко что вин­честер с задан­ным объ­емом и Removable Drive. Не забудь тап­нуть по над­писи Save в вер­хней час­ти окна, ина­че вир­туаль­ная машина не запом­нит изме­нен­ные нас­трой­ки.

Под­клю­чение дис­три­бути­ва в UTMПос­ле это­го, запус­тив вир­туаль­ную машину, в панели управле­ния нуж­но нажать на кноп­ку с изоб­ражени­ем ком­пакт‑дис­ка, затем тап­нуть по наз­ванию съем­ного дис­ка. Наж­ми кноп­ку Change и выбери образ дис­ка с дис­три­бути­вом в пап­ке UTM на iPhone, пос­ле чего наж­ми Done спра­ва ввер­ху. Переза­пус­ти вир­туаль­ную машину — уста­нов­ка опе­раци­онной сис­темы нач­нется авто­мати­чес­ки.

Ус­танов­ка Windows XP в вир­туаль­ной машине
Ре­зуль­тат экспе­римен­тов

Ура, мы уста­нови­ли вин­ду на айфон!

ВЫВОДЫ

С помощью инс­тру­мен­тов для раз­личных опе­раци­онных сис­тем в сос­таве UTM мож­но соз­давать общие пап­ки в вир­туал­ке и на хос­товой ОС для переме­щения и копиро­вания фай­лов (най­ти их мож­но в том же раз­деле Gallery на сай­те раз­работ­чика). Теоре­тичес­ки это поз­воля­ет порабо­тать в вир­туаль­ной машине, ска­жем, в Microsoft Office, а потом сох­ранить соз­данные докумен­ты на устрой­стве.

Но это теоре­тичес­ки. На прак­тике же про­ект UTM чрез­вычай­но пло­хо докумен­тирован, опе­раци­онная сис­тема в вир­туаль­ной машине жут­ко тор­мозит и лага­ет, а во вре­мя уста­нов­ки Windows XP я с десяток раз любовал­ся на BSOD и переп­робовал кучу дис­три­бути­вов, пока наконец не нашел один рабочий. Да и сама вир­туал­ка пери­оди­чес­ки вылета­ет с внут­ренней ошиб­кой, при­чины которой оста­ются тай­ной за семью печатя­ми. Прос­то ошиб­ка и все.

Ой, ашип­ка!

Да, если в нас­трой­ках вир­туаль­ной машины ты некор­рек­тно ука­зал аппа­рат­ную кон­фигура­цию, нап­ример выб­рал объ­ем памяти близ­ким к дос­тупно­му объ­ему опе­ратив­ки тво­его устрой­ства, iOS прос­то мол­ча зак­роет UTM без вся­ких церемо­ний. Ни пре­дуп­режде­ний, ни сооб­щений, вооб­ще ничего.

По­пут­но я соб­рал огромную кол­лекцию скрин­шотов с BSOD-ами запущен­ной на вир­туаль­ной машине Windows XP, даже уло­вил некото­рую законо­мер­ность: запус­каем вир­туал­ку с вин­дой, встав­ляем в айфон шнур заряд­ки, вытас­кива­ем шнур заряд­ки — BSOD. А иног­да это слу­чалось и вов­се без видимой при­чины. Пос­ледний раз я видел подоб­ный глю­код­ром при­мер­но 27 лет назад, ког­да Windows 95 на моей 486SX без каких‑либо пре­дуп­режде­ний валилась в «синий экран» сама по себе при­мер­но раз в пол­часа.

В сухом остатке получа­ется, что работать с тек­ста­ми в онлай­новом редак­торе вро­де Office 365 или Google Docs на iPad нам­ного удоб­нее и при­ятнее, чем городить ого­род с вир­туаль­ными машина­ми, а для игр на iPhone есть эму­лято­ры под iOS. Но я все же наде­юсь, что со вре­менем про­ект UTM будет доведен до ума, вир­туаль­ные машины ста­нут работать ста­биль­нее и быс­трее, а сам про­дукт снаб­дят под­робной и понят­ной докумен­таци­ей.

Читайте ещё больше платных статей бесплатно: https://t.me/hacker_frei



Report Page