Windows – workaround to enable classic Win32 Desktop apps to run on Windows RT (ARM)

microsoft-surfacewin32windowswindows-rt

According to this arstechnica article and this mozilla blog post the Win32 API is present on Windows RT, but Microsoft chooses to not make it available for third party applications.

Office and Internet Explorer on WinRT ARM use the standard Win32 library and are allowed to run. Microsoft has stated that the reason they don't make it available for others is … "longer battery life, predictable performance, and especially a reliable experience over time.".

Is there a method of enabling classic Win32 Desktop apps to run on Windows RT, e.g. via the registry or some other method.

N.B. I know that offically they are not supported, but what I'm asking here is if there is some workaround to allow it to happen.

Best Answer

As Journeyman Geek pointed out, a recompile is necessary first to target the ARM processor.

I've found some steps documented here as how to achieve this: Compiling Desktop Apps for Windows RT

The method above produces an ARM executable, however when its run on a Windows RT device, it results in the following error message:

Windows cannot verify the digital signature for this file

There's some further detail here regarding possible ways to circumvent this error message: http://forum.xda-developers.com/showthread.php?p=31519618&postcount=1

And an ongoing discussion on StackOverflow here: https://stackoverflow.com/questions/11151474/can-arm-desktop-programs-be-built-using-visual-studio-2012/

UPDATE (JAN-9-2013) - EXPLOIT BY CLROKR

A developer by the name of clrokr has come up with a method of getting arbitrary desktop applications to run on Windows RT without having to sign them.

The method used is by hacking a single byte in the Windows kernel...

... deep in the kernel, in a hashed and signed data section protected by UEFI’s Secure Boot, lies a byte that represents the minimum signing level.

To do this requires the use of a remote debugger every time you want to run the application, so its not an easy hack to make use of, but in time will probably be improved upon to the point there is a simple jailbreak-type installer.

There's some more information about people using this method here: http://forum.xda-developers.com/showthread.php?t=1885399

Related Question