Хакер - Винда на айфоне. Используем виртуалку UTM для установки Windows на iOS
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 — для этого лучше зарегистрировать новую учетку, причем в популярных инструкциях советуют указывать в качестве локации острова Херд и Макдональд, остров Норфолк или Южная Георгия и Южные Сандвичевы острова.
После этого на 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 и машину можно будет запустить тапом на ее миниатюре.
Однако вариант с 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 справа вверху. Перезапусти виртуальную машину — установка операционной системы начнется автоматически.
Ура, мы установили винду на айфон!
ВЫВОДЫ
С помощью инструментов для различных операционных систем в составе 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