Запуск Windows Phone на виртуальной машине Virtualbox
Содержание
- 1 Запуск Windows Phone на виртуальной машине Virtualbox
- 1.1 Где взять эмулятор Windows Phone?
- 1.2 Зачем запускать Windows Phone 8.1 на виртуалке?
- 1.3 Как установить Windows Phone на виртуальную машину
- 1.4 Управление Windows Phone на виртуальной машине
Для начала краткая вводная, предыстория, так сказать.
Поступил, значит, запрос от клиента «поднять» VPN. Да не простой, а такой, чтобы можно было подключаться с любых устройств и в первую очередь с мобильных. Особенно интересовал клиента Windows Phone, поскольку у него именно такой.
В мобильных устройствах есть нативные (т.е. «родные», встроенные в ОС) VPN-клиенты, но они поддерживают подключение к VPN IPsec, по протоколу IKEv2. Поэтому на linux-сервере клиента был настроен именно такой VPN, с помощью Strongswan. Настроили подключение из Android, IOS и с обычной десктопной Windows — все работает.
А клиент со своего виндофона подключиться не может, хоть застрелись. Неделю бились. А это же еще нужно тестировать, а виндофона, разумеется, нету ни у меня, ни у коллеги, с которым это всё поднимали. На тестирование приходится дёргать самого клиента. А это время, это неудобство для клиента. Стал искать возможность запустить эмулятор Windows Phone. Оказалось такая возможность имеется, но только под винду — есть эмулятор для разработчиков приложений под Windows Phone. А у меня Linux на рабочем ноутбуке.
Подумалось, что можно запустить виртуальную машину c Windows 10, например, а в ней этот эмулятор. Но это не сработало, ибо тулкит затребовал поддержки Hyper-V, которого конечно же на виртуальной машине не будет. Для этого нужно установить Windows на «железо» — что мне не подходит.
Поискал немного, обнаружил что можно запустить этот эмулятор без лишней ОС, сразу на виртуальной машине. Вот и делюсь с вами.
Идея проста. Нужно создать виртуальную машину и подключить к ней вместо диска уже готовый образ VHD (виртуального диска) с Windows Phone 8.1 на борту. Благо этот образ можно выдернуть из официального эмулятора WP 8.1 от Microsoft.
Зачем запускать Windows Phone 8.1 на виртуалке?
Ну если, например, как в моем случае — вы работаете из под Linux или MacOS. Или если вам нужно предоставить доступ к одной системе с виндофоном для нескольких разработчиков по сети. Или вам нужно еще какие-то извращения вроде, прости хоспаде, запуска бота на смартфоне с Виндовс… В общем, мало ли. Да и вообще, это наше trueЪ путь — запускать с как можно меньшими «костылями» коими в нашем случае по-умолчанию является сама по себе Windows.
Как установить Windows Phone на виртуальную машину
Итак, с теорией разобрались, пора приступать. Для начала понадобится установить Virtualbox.
Процесс наглядно показан вот в этом видео. Но тут кроме самой установки и запуска также показан процесс извлечения VHD из тулкита от MS.
Нам нужно создать машину с Windows 8.1 (32-bit). При выборе в списке ОС она может быть без указания битности.
Когда Virtualbox начнет спрашивать про диск — выбирайте вариант — существующий.
Далее выбираем тот самый файл, который был скачан по ссылке и распакован. В моем случае он был объемом около 1,8 Gb.
После создания заходим в настройки и выставляем 1 Gb оперативной памяти (можно было задать сразу) и 2 ядра процессора (CPU).
Теперь всё готово, запускаем и всё
Управление Windows Phone на виртуальной машине
При запуске на виртуалке включается клавиатура. Вот информация о маппинге клавиш для управления виндофоном с клавиатуры.
Активируется по pgUp или Pause/Break. Но ничего толкового с имеющимися клавишами сделать не удается. Нужно управлять пальцем.
А вот с этим большая проблема, если у вас не touch-устройство. Потому что запустить то её не проблема, но чем туда тыкать — это вопрос.
Потому как курсора мыши конечно же вы не увидите. Хотя мышь вполне себе работает, но управлять придётся «наощупь». А это очень сложно и долго. Как решить эту проблему я не разобрался. В итоге даже не смог протестировать то что собирался.
Весь мой прогресс — за час я добрался до настроек VPN и его включения.
Но как создать профиль или уж тем более подключиться — это я не осилил. Бросил баловство и переключился на другие задачи. Если знаете как решить этот вопрос — расскажите пожалуйста, буду
Содержание
- Запуск Windows Phone на виртуальной машине Virtualbox
- Где взять эмулятор Windows Phone?
- Зачем запускать Windows Phone 8.1 на виртуалке?
- Как установить Windows Phone на виртуальную машину
- Управление Windows Phone на виртуальной машине
Запуск Windows Phone на виртуальной машине Virtualbox
Для начала краткая вводная, предыстория, так сказать.
Поступил, значит, запрос от клиента «поднять» VPN. Да не простой, а такой, чтобы можно было подключаться с любых устройств и в первую очередь с мобильных. Особенно интересовал клиента Windows Phone, поскольку у него именно такой.
В мобильных устройствах есть нативные (т.е. «родные», встроенные в ОС) VPN-клиенты, но они поддерживают подключение к VPN IPsec, по протоколу IKEv2. Поэтому на linux-сервере клиента был настроен именно такой VPN, с помощью Strongswan. Настроили подключение из Android, IOS и с обычной десктопной Windows — все работает.
А клиент со своего виндофона подключиться не может, хоть застрелись. Неделю бились. А это же еще нужно тестировать, а виндофона, разумеется, нету ни у меня, ни у коллеги, с которым это всё поднимали. На тестирование приходится дёргать самого клиента. А это время, это неудобство для клиента. Стал искать возможность запустить эмулятор Windows Phone. Оказалось такая возможность имеется, но только под винду — есть эмулятор для разработчиков приложений под Windows Phone. А у меня Linux на рабочем ноутбуке.
Подумалось, что можно запустить виртуальную машину c Windows 10, например, а в ней этот эмулятор. Но это не сработало, ибо тулкит затребовал поддержки Hyper-V, которого конечно же на виртуальной машине не будет. Для этого нужно установить Windows на «железо» — что мне не подходит.
Где взять эмулятор Windows Phone?
Поискал немного, обнаружил что можно запустить этот эмулятор без лишней ОС, сразу на виртуальной машине. Вот и делюсь с вами.
Идея проста. Нужно создать виртуальную машину и подключить к ней вместо диска уже готовый образ VHD (виртуального диска) с Windows Phone 8.1 на борту. Благо этот образ можно выдернуть из официального эмулятора WP 8.1 от Microsoft.
Зачем запускать Windows Phone 8.1 на виртуалке?
Ну если, например, как в моем случае — вы работаете из под Linux или MacOS. Или если вам нужно предоставить доступ к одной системе с виндофоном для нескольких разработчиков по сети. Или вам нужно еще какие-то извращения вроде, прости хоспаде, запуска бота на смартфоне с Виндовс… В общем, мало ли. Да и вообще, это наше trueЪ путь — запускать с как можно меньшими «костылями» коими в нашем случае по-умолчанию является сама по себе Windows.
Как установить Windows Phone на виртуальную машину
Итак, с теорией разобрались, пора приступать. Для начала понадобится установить Virtualbox.
Процесс наглядно показан вот в этом видео. Но тут кроме самой установки и запуска также показан процесс извлечения VHD из тулкита от MS.
Нам нужно создать машину с Windows 8.1 (32-bit). При выборе в списке ОС она может быть без указания битности.
Когда Virtualbox начнет спрашивать про диск — выбирайте вариант — существующий.
Далее выбираем тот самый файл, который был скачан по ссылке и распакован. В моем случае он был объемом около 1,8 Gb.
После создания заходим в настройки и выставляем 1 Gb оперативной памяти (можно было задать сразу) и 2 ядра процессора (CPU).
Теперь всё готово, запускаем и всё
Управление Windows Phone на виртуальной машине
Активируется по pgUp или Pause/Break. Но ничего толкового с имеющимися клавишами сделать не удается. Нужно управлять пальцем.
А вот с этим большая проблема, если у вас не touch-устройство. Потому что запустить то её не проблема, но чем туда тыкать — это вопрос.
Потому как курсора мыши конечно же вы не увидите. Хотя мышь вполне себе работает, но управлять придётся «наощупь». А это очень сложно и долго. Как решить эту проблему я не разобрался. В итоге даже не смог протестировать то что собирался.
Весь мой прогресс — за час я добрался до настроек VPN и его включения.
Но как создать профиль или уж тем более подключиться — это я не осилил. Бросил баловство и переключился на другие задачи. Если знаете как решить этот вопрос — расскажите пожалуйста, буду
Admin
IT-cпециалист с высшим техническим образованием и 8-летним опытом системного администрирования. Подробней об авторе и контакты. Даю бесплатные консультации по информационным технологиям, работе компьютеров и других устройств, программ, сервисов и сайтов в интернете. Если вы не нашли нужную информацию, то задайте свой вопрос!
Начиная с версии Моби-С 5.5 закончилась поддержка операционной системы Windows Mobile.
Эмулятор «Windows Mobile 6.0» поможет вам протестировать все функции нашего программного продукта без покупки реального КПК.
Файлы необходимые для установки эмулятора:
- Эмулятор — Microsoft Device Emulator 3.0
- Образ операционной системы «Windows Mobile 6.0» — Windows Mobile 6 Emulator Images
- Программа для синхронизации Pocket PC КПК с настольным компьютером — Microsoft ActiveSync 4.5 или Windows Mobile Device Center 6
Установка эмулятора
Сначала устанавливаем эмулятор Device Emulator (из файла vs_emulator.exe). Дело это бесхитростное и особых знаний не потребует.
По умолчанию Device Emulator ставится в папку «C:Program FilesMicrosoft Device Emulator», где его и следует искать. Установка не создает никаких ярлыков, да оно и не нужно, со всем остальным справится инсталлятор образов Windows Mobile. Device Emulator состоит из двух программ: самого эмулятора (DeviceEmulator.exe) и специального менеджера (dvcemumanager.exe). Последний нужен для управления эмулятором и различными образами.
Установка образа
Образы виртуальных машин устанавливаются из файла Windows Mobile 6 Professional Images (RUS).msi (для Windows Mobile 6.0). Инсталляция проходит быстро и легко. В меню «ПускПрограммы» создается папка с ярлыками «Windows Mobile 6 SDK».
Опишем коротко предназначение нужных нам ярлыков:
«Tools/Device Emulator Manager» – запуск менеджера, позволяющего управлять работой запущенных эмуляторов. Об этой программе поговорим ниже.
«Standalone Emulator Images/Russian/Professional» – запуск образа Windows Mobile
Внимание: Если ярлыки в меню Пуск не появились, запустите повторную установку образов, в диалоге выбора вариантов установки выберите Repair. После повторной установки должны появится все необходимые ярлыки.
Установка «ActiveSync»
«ActiveSync» — официальная программа для синхронизации Pocket PC КПК и коммуникаторов с Windows настольными компьютерами. Необходима для установки «Моби-С» на КПК и для осуществления обмена данными мобильной и десктопной частей «Моби-С». Запустите инсталлятор и следуйте его подсказкам.
Чтобы ActiveSync опознал подключение виртуального КПК, в его настройках параметров подключения должна стоять галочка «Разрешить подкл. к след. объектам» и выбран пункт DMA.
Синхронизация в Windows 7 и Vista
С выходом новой операционной системы Windows Vista появилась новая программа для синхронизации — «Windows Mobile Device Center 6».
-
Подключите ваш КПК к ПК. Windows распознает новое устройство, проставит примитивные драйвера.
-
Запустите установщик(drvupdate-x86.exe), который вы скачали. Следуйте его инструкциям.
-
После некоторых операций установщика Windows обнаружит еще раз новое устройство, и проставит еще драйвера. Теперь КПК полноценно готов для синхронизации и обмену данными.
Менеджер эмуляторов
Отдельно стоит упомянуть программу «Диспетчер эмуляторов устройств» которая позволяет работать сразу с несколькими образами, включать/выключать их, подключать к кредлу, перезагружать и прочее.
Кнопка Обновить нужна для ручного обновления состояния виртуальных машин. Эту кнопку необходимо нажимать после запуска/закрытия эмулятора. Каждый образ имеет свой номер (ID), через который можно в DEM работать с виртуальным КПК.
В меню «Действия» находятся различные действия, которые можно совершить с виртуальной машиной (это же меню открывает при клике правой кнопкой мыши на ID образа):
В гнезде– подключить к кредлу, «ActiveSync» должен найти КПК.
Вне гнезда– отключить от кредла.
Завершить работу– выключить
Запуск эмулятора и подключение к «ActiveSync»
Запустите образ виртуальной машины «Пуск/Программы/Standalone Emulator Images/Russian/Professional»
Запустите «Диспетчер эмуляторов устройств» из «Пуск/Программы/Tools/Device Emulator Manager»
В диспетчере выберите строку с зеленым кружочком (это наш запущенный образ виртуальной машины). Правым кликом мыши вызовите контекстное меню. Выберите пункт меню «В гнезде».
После этого будет инициировано соединение с «ActiveSync. В «ActiveSync запустится мастер нового подключение, нажимайте везде кнопку «Далее». По окончании работы мастера соединения, значек «ActiveSync в системном трее станет зеленого цвета. Все, эмулятор запущен и подключен к «ActiveSync. Далее работа с ним ни чем не будет отличатся от реального КПК или коммуникатора.
Внимание: На некоторых КПК может возникнуть проблема при синхронизации данных под Windows Vista через кредли или USB кабель, в этом случае необходимо снять галку с расширенного режима работы USB-соединения. Этот параметр находится в Пуск->Настройка->Подключения ярлык От USB к ПК (могут быть различные варианты этого названия).
Новые процессоры Apple M1 построены на архитектуре ARM и это уже совсем не Intel. Как же в таких условиях создавать виртуальные машины? Вопрос «зачем» тут не поднимаем: надо — значит надо!
До недавнего времени единственной более-менее рабочей софтиной для виртуальных машин была UTM, но работала крайне скверно. Но ребята из VirtualBox подсуетились и выкатили бета-версию своего софта для виртуализации.
ВАЖНО: в этом посте рассматривается софт именно для создания виртуальных машин, где каждая система тусуется в своём контейнере. Просто для запуска Windows-приложений можно воспользоваться и другими вариантами, типа Parallels Desktop.
Тесты будем проводить на VirtualBox 7.0.2_BETA4 r154219 (Qt6.3.0).
Нежно любимая икспиха была первой системой, которую я попытался установить сразу после установки Virtualbox, так что процесс затянулся очень сильно. На три часа, наверное. Вероятно, стоило перезагрузить Мак после установки виртуалбокс.
Проблема с Virtualbox на Apple M1 в том, что скриншоты не снимаются, если основное окно программы в фокусе, поэтому здесь и далее оно будет не в фокусе.
Вторая сложность — чрезвычайно мелкий размер окна виртуальной машины. Отчасти это решается настройкой вида и включением Scaled View.
Копирование файлов и установка системы в целом заняла часа три. То есть даже больше, чем у меня когда-либо уходило на установку. Я даже перепроверил и сделал скрин с часами: установка началась в полдень. И да, реально окно программы занимает квадратик буквально пять на пять сантиметров реального пространства.
Сразу же после установки системы и последующем запуске виртуалбокс упал.
Ох, всё-таки надо было перезагрузить макбук после установки программы. Со второго раза система запустилась. И первым делом я установил дополнения гостевой ОС, чтобы получить нормальный экран с нормальным разрешением.
Но нормального разрешения не получилось. Даже на максимальном разрешении 2560х1024 система выглядит слишком мелко.
Но тщательная настройка масштабирования до 200% всё-таки делает работу удобнее.
Выглядит всё равно мелко, но хотя бы можно читать текст на нормальном расстоянии от экрана. Сама система регулярно вылетает при разных задачах, так что назвать это стабильной работой никак нельзя.
Windows 7 на Apple M1 — не работает!
Процесс установки Windows 7 на процессоре Apple M1 даже не доходит до инсталлятора. Независимо от выбора системы (32 бит или 64 бит) установщик падает с ошибкой.
Причём настройки оставлены на автомате, так что виртуалбокс сделал «всё самое лучшее» именно для семёрки.
Я поменял настройку на 64-бит, выбрал соответствующую разрядность системы, но и она не взлетела.
Windows 8 на Apple M1 — не работает!
Так же, как и «семёрка», восьмая винда падает при попытке установки. Точнее, при попытке загрузки установщика.
Windows 11 на Apple M1 — не работает!
Так как семёрочное поведение, вероятно, характерно для всего семейства систем, выпущенных после WinXP, решил проверить самую свежую версию — Windows 11. Увы, эта даже до ошибки не дошла — тупо повисла на логотипе.
Тогда я решил пойти в другую сторону. Если от семёрки и выше системы стартовать не захотели, надо проверить те, что были до WinXP.
Windows 2000 на Apple M1 — работает!
Установка немного затяжная, но не напряжная. Я сразу же выставил режим отображения Scaled View, чтобы укрупнить окно в два раза и хоть что-то видеть.
Даже не знаю, помогла ли перезагрузка макбука, но 2к установилась гораздо быстрее XP.
Я даже отвык от Windows 2000 и загрузочный экран привёл меня в полный восторг.
Впрочем, на минималках Windows 2000 выглядит очень плохо.
Поэтому первым же делом устанавливаем дополнения гостевой ОС. Устанавливаются они довольно долго и кажется, что процесс зациклился до бесконечности на этапе установки сертификатов. Но нет, всё хорошо.
Периодически после установки отваливаются системные сервисы, но, в целом, систему можно считать рабочей.
Выводы
Virtualbox для ARM платформы M1 либо не до конца допилена, либо с виртуализацией систем Windows приемлемой свежести пользователи Apple M1 могут попрощаться.
Процесс виртуализации — технически сложный, но пользователя это волновать не должно. Если система не запускается с настройками по умолчанию — значит она не запускается, точка. Возможно, что тщательная настройка параметров виртуализации позволит запустить систему. Но если VirtualBox из коробки не может запустить систему — значит она не запускается.
Лучше маленький лайк и репост, чем большое спасибо в комментах. По этой причине комментарии выключены, а кнопки репостов — вас ждут. Пользуйтесь, прошу
Reading time
4 min
Views 51K
Приветствую.
Не знаю как вам, но мне сначала совершенно не хотелось ставить новую Windows 8. А смысл? Смысла не было, семёрка отлично работала и продолжила бы работу, но… Умные люди из Microsoft любят всё переделывать заново и в этот раз они конкретно переборщили.
Дело в том, что новая версия эмулятора WP,
Windows Phone Emulator (XDE), использует технологию Hyper-V, которая в семействе настольных Windows появилась только начиная с Windows 8.
У меня возникла идея любой ценой установить этот SDK себе в VS2012 под Windows 7 и выжать из него максимум возможностей.
Внимание!
- Эмулятор будет доступен только для WP 7.1 и ниже;
- Blend будет доступен только для WP 7.1 и ниже, а значит XAML под WP 8 придётся писать руками;
- Это just for fun, ведь нормальные герои всегда идут в обход!
Под катом я вкратце расскажу, как устроен установщик WP8 SDK и покажу кривой путь через болотце для тех, кто не хочет расставаться с Windows 7, но хочет продложить разработку под новые версии Windows Phone.
Копаемся в пакете
Загрузив с официального сайта установщик WPexpress_full.exe, я попробовал его запустить. Он меня послал, сказав что я должен переустановить винду (вот не ожидал!) на что-нибудь поновее, например Windows 8. От такой дерзости я опешил и недолго думая обновил ту самую картинку с собакой, на всякий случай, чтобы было чем отмахиваться в идеологических спорах с друзьями.
Всё подозрение пало на маркетологов.
WPexpress_full.exe отлично распаковывается с помощью WinRAR, внутри обнаружились следующие файлы:
0: XML document text
u0: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit
u1: PE32 executable for MS Windows (DLL) (console) Intel 80386 32-bit Mono/.Net assembly
u10: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit
u11: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit
u12: XML document text
u13: XML document text
u14: exported SGML document text
u15: UTF-8 Unicode (with BOM) text, with very long lines, with CRLF line terminators
u16: PNG image data, 63 x 63, 8-bit/color RGBA, non-interlaced
u17: HTML document text
u18: XML document text
u2: XML document text
u3: exported SGML document text
u4: XML document text
u5: MS Windows icon resource - 3 icons, 16x16, 16-colors
u6: MS Windows icon resource - 3 icons, 16x16, 16-colors
u7: MS Windows icon resource - 3 icons, 16x16, 16-colors
u8: PE32 executable for MS Windows (DLL) (console) Intel 80386 32-bit Mono/.Net assembly
u9: XML document text
После изучения файла 0, который являлся заголовочным для этого пакета, выяснилось, что инсталлятор сделан с помощью тулкита Windows Installer XML (WiX) toolset. Выкачал инструменты этого WiX, среди них была утилита dark.exe, отвечающая за распаковку .msi пакетов, собранных дефолтным инструментарием WiX. Утилита подошла и к этому пакету.
Он распаковался:
.
├── AdminDeployment.xsd
├── BootstrapperApplicationData.xml
├── BootstrapperCore.config
├── BootstrapperCore.dll
├── HighContrastThemes.xaml
├── License.htm
├── LocalizableStrings.xml
├── ManagedUx.dll
├── SkuResources.xaml
├── Themes.xaml
├── manifest.xml
├── mbahost.dll
├── mbapreq.dll
├── mbapreq.png
├── mbapreq.thm
├── mbapreq.wxl
├── res
│ ├── info.ico
│ ├── stop.ico
│ └── warn.ico
└── sqmapi.dll
После прочтения доков и осмотра XML файлов стало ясно, что установщик делался с кастомным интерфейсом, с использованием ManagedUx и Bootstrapper (Burn) из WiX SDK (в архиве wix36-sources.zip есть пример такого проекта — WixBA).
Проще говоря, то что у нас есть — без воссоздания WiX проекта в Visual Studio пересобрать обратно в установщик нельзя. Как минимум
manifest.xml является
<BurnManifest xmlns="http://schemas.microsoft.com/wix/2008/Burn">
и как собирать такие манифесты — ни одна утилита из стандартного набора WiX не знает.
Поэтому не смотря на очень привлекательную строчку в
BootstrapperApplicationData.xml
<UxBlocker ShortName="CheckX64runningWin2008ServerOrWin8" Type="Stop" Condition="(VersionNT < v6.1) OR ((VersionNT = v6.1) AND (NTProductType < 3)) OR (NOT VersionNT64)" DisplayText="#loc.Win8X64Block"/>
которую можно удалить, такой способ придётся оставить.
Парсим manifest.xml
В
manifest.xml прописаны все пакеты, которые устанавливаются установщиком, а так же URI источников. Я написал ruby-скрипт, который парсит и скачивает всё необходимое, затем поочерёдно устанавливает.
Порядок установки пакетов такой же, как они следуют в XML манифесте, надеюсь это не важно.
Исходные тексты на GitHub
Там же есть папка с готовым бинарником (скрипт + зависимости + ruby 1.9.3, собрано с помощью ocra), нужно просто перетянуть на него
WPexpress_full.exe и наблюдать.
Готовый к употреблению архив в ZIP
Tips & Tricks
Редактор XAML будет пытаться запустить Blend, тот в свою очередь — компонент эмулятора WP8, отчего сам же Blend будет вечно падать. Я сразу переключил редактор XAML на тот что без визуальщины, автокомплит там работает и ладно.
В сухом остатке имеем:
- Полноценный рабочий SDK для Windows Phone 7.1
- Нерабочий эмулятор Windows Phone 8
- Нерабочий редактор интерфейсов Blend для WP 8
- Неполноценный, но таки рабочий (!) SDK для WP 8
Факт: Windows Phone 8 запускается в VirtualBox на той же Windows 7, но нет курсора мышки и сети, так что пока ничего полезного это не дало.
Желаю удачи с этим делом!
~ Xlab
— UPD: Если у вас была ошибка с бинарником
/src/application.rb:76:in `require_relative': cannot load such file — /src/chain (LoadError)
скачайте новую версию с github, пофикшено.