Существует ли обходной путь, позволяющий классическим приложениям Win32 Desktop работать в Windows RT (ARM)?

1885
dodgy_coder

В соответствии с этой статьей arstechnica и этой публикацией в блоге mozilla API-интерфейс Win32 присутствует в Windows RT, но Microsoft предпочитает не делать его доступным для сторонних приложений.

Office и Internet Explorer в WinRT ARM используют стандартную библиотеку Win32 и могут запускаться. Microsoft заявила, что причина, по которой они не делают ее доступной для других, заключается в том, что «более длительное время автономной работы, предсказуемая производительность и особенно надежное взаимодействие с течением времени».

Есть ли способ, позволяющий запускать классические приложения Win32 Desktop на Windows RT, например, через реестр или каким-либо другим способом.

NB. Я знаю, что официально они не поддерживаются, но здесь я спрашиваю, есть ли способ обойти это.

4
ARM и x86 - ОЧЕНЬ разные несовместимые архитектуры. Шаг 0 будет перекомпилировать всю проклятую вещь. Journeyman Geek 11 лет назад 1
@ Journeyman Geek. Поскольку он использует Win32 API, то должны ли быть минимальные изменения в коде? Да, конечно, тогда будет проблема с компиляцией, спасибо. dodgy_coder 11 лет назад 0
По сути, вы спрашиваете, можете ли вы сделать джейлбрейк планшетов Windows RT. Я думаю, что ответ будет таким же, как и с любым другим устройством «огороженного сада»: возможно, но только потому, что разработчики обычно не могут идти в ногу с хакерами. Следует также отметить, что нет реальной гарантии того, что части Win32 API, не используемые Office, IE и WinRT, будут работать так, как ожидается; в частности, Win32 имеет множество специальных приемов для совместимости со сторонними приложениями, которые могли бы быть или могут быть исключены в будущем. Harry Johnston 11 лет назад 2

2 ответа на вопрос

4
dodgy_coder

Как заметил Journeyman Geek, перекомпиляция необходима в первую очередь для нацеливания на процессор ARM.

Я нашел несколько шагов, документированных здесь, как это сделать: Компиляция приложений для рабочего стола для Windows RT

Приведенный выше метод создает исполняемый файл ARM, однако при запуске его на устройстве Windows RT выдает следующее сообщение об ошибке:

Windows cannot verify the digital signature for this file 

Здесь есть некоторые дополнительные детали относительно возможных способов обойти это сообщение об ошибке: http://forum.xda-developers.com/showthread.php?p=31519618&postcount=1

И продолжающееся обсуждение StackOverflow здесь: https://stackoverflow.com/questions/11151474/can-arm-desktop-programs-be-built-using-visual-studio-2012/

ОБНОВЛЕНИЕ (январь-9-2013) - ЭКСПЛУАТАЦИЯ КЛРОКР

Разработчик по имени clrokr разработал метод, позволяющий запускать произвольные настольные приложения в Windows RT без необходимости подписывать их .

Метод используется путем взлома одного байта в ядре Windows ...

... глубоко в ядре, в разделе хешированных и подписанных данных, защищенном безопасной загрузкой UEFI, находится байт, представляющий минимальный уровень подписи.

Для этого требуется использовать удаленный отладчик каждый раз, когда вы хотите запустить приложение, поэтому его нелегко использовать, но со временем он, вероятно, будет улучшен до такой степени, что появится простой установщик типа джейлбрейка.

Здесь есть еще немного информации о людях, использующих этот метод: http://forum.xda-developers.com/showthread.php?t=1885399

0
evanmcdonnal

Там нет работы вокруг. Приложения win32 скомпилированы для архитектуры x86 или x64. Windows RT - это версия Windows для ARM. Сами приложения должны были бы быть перекомпилированы как ARM для работы в Windows RT.

Я бы по электронной почте в службу поддержки поставщика приложений с просьбой сделать сборку ARM.

Да, их нужно перекомпилировать, но приложения Win32 не относятся только к архитектуре x86 или x64 - вот почему Win32 API был впервые представлен для обеспечения независимости платформы. Например, Office и Internet Explorer, работающие на планшетах Win RT, по-прежнему используют Win32 API. dodgy_coder 11 лет назад 0
win32 - это современный Windows API, а не архитектура. Существовали версии Windows для PowerPC, Alpha, MIPS ..., которые используют Win32 API. И даже [окна на ARM в настоящее время могут запускать приложения для x86] (https://docs.microsoft.com/en-us/windows/uwp/porting/apps-on-arm-x86-emulation) из-за уровня эмуляции внутри WoW Так же, как Windows на Itanium ранее может без проблем запускать приложения x86, кроме скорости phuclv 5 лет назад 0