Emulating the Windows CE kernel and WinMo in QEMU or BOCHS - Android Software/Hacking General [Developers Only]

I have seen several QEMU setups, specifically on the Nexus One, Evo 3D, Xperia Neo, and other devices, all running various versions of Windows XP, 98, or 95. I'm looking at the source now. Is there any reason someone hasn't tried to run the Windows CE (PocketPC or WinMo) kernel within QEMU or can it only emulate x86 operating systems?

http://wiki.osdev.org/QEMU#Supported_Architectures
http://wiki.embeddednirvana.org/ARM_Emulation_Using_QEMU
So according to these articles, ARM emulation is possible.
ARM
QEMU booted into the ARM port of Fedora 8
QEMU emulates the ARMv5TEJ instruction set and all the derivative processors families like ARM7, ARM9E, ARM10E and XScale. It emulates full systems like Integrator/CP board, Versatile baseboard, RealView Emulation baseboard, XScale-based PDAs, Palm Tungsten|E PDA, Nokia N800 and Nokia N810 internet tablets etc. QEMU also powers the Android emulator which is part of the Android SDK (most current Android implementations are ARM based). Under development is iEmu, emulator of Apple's iPhone. Starting from version 2.0.0 of their BADA SDK, Samsung has also chosen QEMU to help development on emulated 'Wave' devices.

metroidnemesis13 said:
I have seen several QEMU setups, specifically on the Nexus One, Evo 3D, Xperia Neo, and other devices, all running various versions of Windows XP, 98, or 95. I'm looking at the source now. Is there any reason someone hasn't tried to run the Windows CE (PocketPC or WinMo) kernel within QEMU or can it only emulate x86 operating systems?
Click to expand...
Click to collapse
I've had limited success booting a custom x86 Windows CE 4.0 NK image with the newer WinCE QEMU port for the HD2 but I wouldn't call it usable. CE booted and I could see the mouse cursor but the desktop never appeared. There are real CE drivers for most of QEMU's hardware on x86, so it might just take a bit of fiddling if the ARM qemu builds aren't just broken.
Bochs was able to boot the image fine but it was pretty slow and only worked in the 320x200 VESA mode. One of the newer mobile Bochs builds for Android worked a little better and displays in a higher resolution but it's still slow and lacks networking. I haven't had as much success with QEMU. It seems like there are major differences between the generic c/c++ CPU core for all architectures and the x86 one and I"m pretty sure QEMU runs some x86 code natively even in user mode. It's either that or the mobile versions are quick hacks with some dirty workarounds that break the more obscure OSes. The difference in compatibility between different processor architectures in the same build is evidence enough of that. Though, I haven't tried them in an ARM debian build yet.
And as cross platform as it is, QEMU seems highly optimized for x86 these days. So many OSes that have problems on ARM qemu work just fine on a desktop. It seems to me like QEMU-x86 wasn't ever really extensively tested on ARM and the other less used archs. There is also a newer QEMU port based on 1.x in the Android Market called Limbo which I have yet to try but the current versions use VNC so video output is pretty slow.
If you want to give it a go, the following Windows CE based PDA platforms had x86 images available: Handheld PC 2000, Pocket PC 2002, Smartphone 2002, Pocket PC 2003/SE, Smartphone 2003/SE and of course the generic builds from 2.0-7.0. Most of these will boot on a sufficiently compatible PC with the right nudging and it should be possible to cook custom ROMs with appropriate HDD drivers if you prefer Windows Mobile and know how to modify WM2003 ROMs.
You might want to keep an eye on QEMU-KVM for ARM Linux too. If it ever works well enough on android, that may be able to virtualize an ARM CE image at near native speeds. QEMU does emulate a few CE compatible dev boards but I'm not sure if anyone ever successfully booted CE on them as they're mainly for testing Linux and don't emulate everything.
Edit: Here's a few YouTube videos I found demonstrating an early build of KVM-QEMU booting Android and Ubuntu on a Cortex A15 running Ubuntu:
http://www.youtube.com/watch?v=LWzoanrsaCI
http://www.youtube.com/watch?v=uD5Nu-VrHKI
Color me impressed! If CE can be ported to one of the boards QEMU emulates, (almost) native CE on countless Android devices seems very possible. Porting it on an emulator/VM is likely easier than running it on the metal.
Also, here's a thread about the Raspberry Pi's debian and QEMU. Based on the comments, they seem to have the same odd issues the WinCE and Android ports have.
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=62&t=10635

Related

What about full virtualization on Android

I've got a tablet with a dual core Atom Z2560 x86 CPU and 1GB RAM on Android 4.3. After seeing that the CPU officially supports VT-x it came to mind that this kind of hardware can be enough to fully virtualize at least Windows XP or Ubuntu, and even do it pretty smoothly, since I've done it on slower PCs. But I quickly found out that there is no software for doing this. Neither Vmware or Virtualbox seem to have released hosts for Android, and the only software I found that could be sufficient is QEMU, which appears to be designed to translate x86 commands to ARM, and therefore is insanely slow. I'm not even sure if it will work on x86.
Is there any software that can do what I'm asking for ? Or any software in development for this at all ?
As far as I know, there's no such software at this time.

Windows on x86 based android phones?

I was curious about this, if the android smartphones/tabs powered x86 intel processors can be used such that we can install desktop windows or other x86 OSes?
Unlikely as we would need to build drivers for the phone which is rather difficult when the manufacturers like to have things on lockdown most of the time, also it would probably brake some strange contract with Microsoft as most things do. Look at the Surface and Surface RT
Also the UI (Even Metro) would struggle to work on the display adapter
So in short no we can't run Windows on x86 Android phones, yet anyway
Install Android in Windows without Virtual box
I tried this product DuOS which will install Android version Jellybean in Windows 7/8/8.1 platforms. This one is very simple for use comparing with Bluestacks and has good performance for applications. Refer the link for further details and installation check the website for amiduos:good:

WinCE ARM apps and Surface RT (jailbroken)

I have an app (ECUTalk) that can run on both Windows x86 and ARM (WinCE). I would think that this would be easy to port over to the Windows RT device. Anyone think this would be possible?
Globalrebel said:
I have an app (ECUTalk) that can run on both Windows x86 and ARM (WinCE). I would think that this would be easy to port over to the Windows RT device. Anyone think this would be possible?
Click to expand...
Click to collapse
Title is misleading.
There is a thread for port request.
It uses .net 1.x which is not exist on Windows RT, thus it can not run as-is (assuming it's a pure .net program).
No source code, no port.
WinCE and Windows are two totally different beasts. You won't ever be able to just run a WinCE app on Windows. It'll require a fair deal of reworking.
It might be possible to run ARM WinCE apps if someone ports the Shared Source Device Emulator 1.0 Microsoft has made. Though, I doubt it would be easy as that thing probably makes heavy use of x86 ASM.
You could likely use QEMU to run an x86 build of WinCE in emulation.
Another possible option would be to use the MESS emulator package. There is at least one driver that can boot Windows CE on an emulated ARM board.

Is there anyone knows how to do jailbreak and use desktop apps on windows RT 8.1?

Is there anyone knows how to do jailbreak and use desktop apps on windows RT 8.1?
No. Windows desktop applications are compiled for x86 architecture. Windows RT runs on ARM.
@jeddx21: There is not a jailbreak publicly available for Windows RT 8.1 yet.
Will there be? I've seen indication that progress has been made on that front, but it's been sparse lately. It's something that's been wanted for a while (do a search - you'll find all sorts of threads and comments about an RT 8.1 jailbreak), but it's not yet available.
@Banderburg: Desktop applications are simply Windows applications compiled for the desktop environment, not the Metro / Modern / whatever-Microsoft-is-calling-it-these-days environment. They can and do exist for Windows RT - a primary example of this is Microsoft Office; others include all of the applications that are available to run under a jailbroken RT 8.0 system, such as those in this thread.
So what should i do? should i downgrade it from 8.1 to 8 so i can use jailbreak?
Hey
That depends on your device. If it's a device that shipped with RT 8.0 when released (the original Surface RT and the Asus VivoTab RT, for example), the instructions are available elsewhere in the forum (use the search function).
If it was one that came only with RT 8.1, then there really isn't much that can be done to downgrade your device - missing drivers, signatures that are unrecognized by the device firmware, etc.
irony_delerium said:
@Banderburg: Desktop applications are simply Windows applications compiled for the desktop environment, not the Metro / Modern / whatever-Microsoft-is-calling-it-these-days environment. They can and do exist for Windows RT - a primary example of this is Microsoft Office; others include all of the applications that are available to run under a jailbroken RT 8.0 system, such as those in this thread.
Click to expand...
Click to collapse
[MENTION]@irony_delerium[/MENTION] I'm sorry - what? Desktop applications aren't compiled for an "environment". They're compiled for a specific CPU architecture and in this case, applications that run on desktop computers are compiled for x86 CPUs. Applications that run on RT are compiled for ARM CPUs.
You can't jail break a device running on ARM and expect it to run x86 applications. You would need to recompile the application and target it at the ARM CPU.
So again, to the OP's question, NO there will never be a jailbreak that allows you to run a desktop application on an ARM cpu. Period.
IF you re-compile an application to run on ARM, and IF you've modified your Surface RT to run applications that aren't digitally signed by Microsoft, then yes in that case you can run the "desktop" application.
banderberg said:
[MENTION]@irony_delerium[/MENTION] I'm sorry - what? Desktop applications aren't compiled for an "environment". They're compiled for a specific CPU architecture and in this case, applications that run on desktop computers are compiled for x86 CPUs. Applications that run on RT are compiled for ARM CPUs.
Click to expand...
Click to collapse
This doesn't change the fact that *desktop* applications exist for Windows running on ARM. Unless you mean to tell me that Audacity, SumatraPDF, or Notepad++ (for example) are not desktop applications, of course.
On Windows 8, applications are compiled both for an environment - Metro/Modern or Desktop - and a CPU architecture. Metro applications run in containers and have explicit blessing from Microsoft to run on both x86 based systems and ARM based systems. Desktop applications are locked down on ARM based systems, by default, to only those with a Microsoft signature. Applications built for either Desktop or Metro will not run in the other environment. Applications compiled for x86 will not run on ARM; applications compiled for ARM will not run on x86.
bandenberg said:
You can't jail break a device running on ARM and expect it to run x86 applications. You would need to recompile the application and target it at the ARM CPU.
So again, to the OP's question, NO there will never be a jailbreak that allows you to run a desktop application on an ARM cpu. Period.
Click to expand...
Click to collapse
This is true. I never said anything about x86 applications. I said desktop - of which, Windows on ARM has a desktop and applications for that desktop.
There are applications built to run on that desktop - even provided by Microsoft, unless you consider the applications forming the Office suite to not be desktop applications. Therefore, desktop applications are available for Windows RT.
No, of course desktop applications targetting x86 or x64 will not run in that environment.
Well put, @irony_delirium. I would expand on that a little, though.
First, not even all desktop computers are x86/x64. Windows used to run on a number of other architectures, like Alpha and PowerPC, and there were desktops (workstations, really, but recognizably desktop computers) with those architectures. Apple used to build all its desktops (and laptops) with PowerPC chips, and before that they used CPUs from the Motorola 68000 family. None of these can execute x86 instructions, but they were all desktops. Of course, the code that ran on them had to be compiled for the relevant architectures, but usually it's not that hard to port software from one 32-bit instruction set to another, unless you wrote the code in Assembly or did similarly platform-specific stuff.
Second, architecture-independent software can run on any platform that supports the intermediate language. For example, Windows RT can run .NET 4.x software, including on the desktop, just fine (though if the binary isn't signed by Microsoft, either the OS will need to be jailbroken or the method of loading the application will need some other convoluted hack). Let me make this clear, though: these are the exact same binaries, produced by Visual Studio (or the command-line C# compiler, csc.exe, that ships with all recent versions of Windows including RT), that you can run on x86 desktops. There's even a .NET program which implements the Java runtime, so you can run Java-based apps on (jailbroken) RT.
Third, it's actually possible to run code written for one instruction set architecture on a CPU with a different architecture, if you have a translation/emulation layer and are willing to take the performance hit of going through it. There's a half-finished homebrew of such a layer for Win32/x86 code on Win32/ARM (RT), but nobody has been working on it for months. It'll run some software, though - Heroes of Might and Magic 3, a closed-source commercial x86 strategy game from the 90s was one of the first apps it was shown able to run, and some other programs work as well - and while it's not fast in an absolute sense it's good enough to run old games or reasonably lightweight current programs. Hopefully, work on it will resume once there's a new jailbreak out.

The Gemini and Ubuntu Mate....

Basically, on the Mate site there is now a Mate download for the GPD Pocket, which does look like a cracking good machine.
Basically, has anybody had the gumption to try this on their Gemini? I have only one Gemini and don't have the skill or the courage to do this myself. If, and it is if, Mate worked on the Gemini, that would be excellent. I know people have Debian working, which is the fork for Ubuntu, which is the fork for....... which is why I'm thinking / hoping it may work.
Thoughts from anyone?
P.
GPD Pocket runs on an Intel x86 processor (like most computers and laptops), which means that it can basically run anything available. Gemini runs on ARM, which is basically the processor that powers mobile phones and some tablets. ARM is a completely different architecture and is not compatible with x86 software. Most of the desktop operating systems (like Windows, mac OS, Ubuntu, etc) focus their development on the x86 platform, since the vast majority of desktops use this architecture of processors. Because Linux is a free and open source OS, it is possible to get the kernel source code and (with a few modifications) compile it to a different architecture. That's what was done for the Gemini (and all other ARM devices that can run Linux), they got the Debian source code and compiled it for the ARM cpu. Some specific hardware settings and drivers were added for the Gemini PDA to make our custom Gemian, a Debian for the Gemini. Ubuntu is based on Debian, and not the other way around. So, to have Ubuntu Mate running on the Gemini requires one step further, to get Ubuntu source code and Gemian customization and drivers, mix it all together to make some "Ubuntian" of some sort... Honestly, I see no advantage in running Ubuntu, since Debian is the root of it. I don't know of a thing you can do on Ubuntu that you can't on Debian. But still, if you really want to have Ubuntu Mate running on your Gemini, on the Android side you can install Linux Deploy. This app only works on rooted Android, but it is totally worth it if you want to run Linux on your device. It allows you to install several distributions of Linux on top of Android, including Ubuntu Mate.

Categories

Resources