C'è una soluzione alternativa per abilitare le app classiche di Win32 Desktop per l'esecuzione su Windows RT (ARM)


4

Secondo questo articolo arstechnica e questo post sul blog di Mozilla l'API Win32 è presente su Windows RT, ma Microsoft sceglie di non renderlo disponibile per applicazioni di terze parti.

Office e Internet Explorer su ARM WinRT utilizzano la libreria Win32 standard e possono essere eseguiti. Microsoft ha dichiarato che il motivo per cui non lo rendono disponibile per gli altri è ... "durata della batteria più lunga, prestazioni prevedibili e, in particolare, un'esperienza affidabile nel tempo".

Esiste un metodo per abilitare l'esecuzione delle app classiche di Win32 Desktop su Windows RT, ad es. tramite il registro o qualche altro metodo.

N.B. So che ufficialmente non sono supportati, ma quello che sto chiedendo è se c'è qualche soluzione per permetterlo.


1
ARM e x86 sono architetture incompatibili MOLTO differenti. Il passaggio 0 sarebbe quello di ricompilare l'intera dannata cosa.
Journeyman Geek

@Journeyman Geek. Perché sta utilizzando l'API Win32, quindi dovrebbero essere necessarie modifiche minime al codice? Sì, certo che essere in grado di compilare sarebbe il problema, grazie.
dodgy_coder

2
Fondamentalmente quello che stai chiedendo è se è possibile eseguire il jailbreak dei tablet Windows RT. Penso che la risposta sarà la stessa di ogni altro dispositivo "walled garden": probabilmente, ma solo perché gli sviluppatori non sono in grado di stare al passo con gli hacker. Va inoltre notato che non esiste alcuna garanzia reale che parti dell'API Win32 non utilizzate da Office, IE e WinRT si comportino come previsto; in particolare, Win32 ha un sacco di trucchi speciali per la compatibilità con applicazioni di terze parti che potrebbero essere state o potrebbero essere lasciate in futuro.
Harry Johnston

Risposte:


4

Come Journeyman Geek sottolineato, è necessario ricompilare prima di indirizzare il processore ARM.

Ho trovato alcuni passaggi documentati qui come ottenere questo: Compilazione di app desktop per Windows RT

Il metodo sopra produce un eseguibile ARM, tuttavia quando viene eseguito su un dispositivo Windows RT, risulta il seguente messaggio di errore:

Windows cannot verify the digital signature for this file

Vi sono ulteriori dettagli qui riguardo ai possibili modi per aggirare questo messaggio di errore: http://forum.xda-developers.com/showthread.php?p=31519618&postcount=1

E una discussione in corso su StackOverflow qui: https://stackoverflow.com/questions/11151474/can-arm-desktop-programs-be-built-using-visual-studio-2012/

AGGIORNAMENTO (JAN-9-2013) - ESPLOIT BY CLROKR

Uno sviluppatore di nome clrokr ha escogitato un metodo per far funzionare le applicazioni desktop arbitrarie su Windows RT senza doverle firmare .

Il metodo utilizzato è l'hacking di un singolo byte nel kernel di Windows ...

... nel profondo del kernel, in una sezione dati hash e firmata protetta   tramite Secure Boot di UEFI, si trova un byte che rappresenta la firma minima   livello.

Per fare questo è necessario l'uso di un debugger remoto ogni volta che si vuole eseguire l'applicazione, quindi non è un trucco facile da usare, ma con il tempo sarà probabilmente migliorato fino al punto in cui vi è un semplice programma di installazione di tipo jailbreak.

Ci sono altre informazioni sulle persone che usano questo metodo qui: http://forum.xda-developers.com/showthread.php?t=1885399


0

Non c'è lavoro intorno. Le app win32 sono compilate per architetture x86 o x64. Windows RT è la versione ARM di Windows. Le applicazioni stesse dovrebbero essere ricompilate come ARM per funzionare su Windows RT.

Vorrei inviare per e-mail il supporto del fornitore dell'app chiedendo di creare un build ARM.


Sì, hanno bisogno di essere ricompilati, ma le app Win32 non sono specifiche solo per l'architettura x86 o x64 - ecco perché l'API Win32 è stata introdotta in primo luogo, per consentire l'indipendenza dalla piattaforma. Ad esempio, Office e Internet Explorer in esecuzione su tablet Win RT utilizzano ancora l'API Win32.
dodgy_coder

win32 è la moderna API di Windows e non un'architettura. C'erano versioni di Windows su PowerPC, Alpha, MIPS ... che usano l'API win32. E persino Windows su ARM oggi può eseguire app x86 a causa del livello di emulazione all'interno di WoW, proprio come Windows su Itanium in precedenza è possibile eseguire le app x86 senza problemi eccetto la velocità
phuclv
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.