[Q] Insight from HaRET and HD2 development? - KIN Two Software Development

Hey guys, I've never seen this mentioned before, but I've heard about an open-source tool called HaRET (Handset Reverse Engineering Tool) designed to help poke around and boot Linux-based code (like Android) within WinCE devices that run on ARM chips. Some people who have HTC HD2s, which is originally a WinCE phone have used this tool to port Android to their phones. Now I know the KinOS isn't WinCE straight up, but it is close. I was wondering if we could glean any knowledge from how they used tools like HaRET to mess with WinCE and port other OSs to their phones. What do you guys think?

It's already been discussed. HaRET might help, but the issue would be actually getting the files onto the phone, and running them. So far, we haven't found a way to get access to the root file system of the Kin.

i would like the idea, but it's difficult to try other upload than what we have now (user media storage)

on zune (zune hd) pictures is a file that shows up on the screen, but in zune for the kin, the pictures folder is not there, primarily because the main menu of the kin already has pictures folder( camera)
how come: when the kin is connected to zune (by computer) and you sync pictures to your kin they show up not in zune but in the kin's picture folder?
KIN SYNCED TO ZUNE, PICTURES --> (dragged into) ZUNE SYNCED KIN, PICTURES IN KIN CAMERA FOLDER.
connection?

Related

[Q] Samsung Focus File Explorer

I've looked around on this forum and others, but I haven't found a tool yet which allows for file browsing and upload/download from a Samsung WP7 device. Most of the tools available seem to be for HTC phones.
The "Advanced Explorer for WP7" allows browsing, but the desktop client to copy files off doesn't seem to work - whenever I try, I get an unhandled exception. Looking at the source code for the app, it seems that only limited file access is enabled for non-HTC devices.
Does anyone know any tools or a way to get files off the device onto a computer?
Thanks!
not yet as of now, but here http://forum.xda-developers.com/showthread.php?t=1021135 claims that he will release one soon
I saw that one - the reg editor works better than any others I've tried, so I have high hopes for the file browser part.
Since I saw people posting on how they got the Diagnosis app off and REed it, I assumed there was tool already available >_<
sorcy said:
I saw that one - the reg editor works better than any others I've tried, so I have high hopes for the file browser part.
Since I saw people posting on how they got the Diagnosis app off and REed it, I assumed there was tool already available >_<
Click to expand...
Click to collapse
My webserver is limited (e.g. it doesn't go through device drivers to enable more access), but this is how one may easily pull files off the device for the sake of RE (or whatever).
http://forum.xda-developers.com/showthread.php?t=877782
The webserver allowed me to get the Diag app off, thanks!
This is going a bit OT, but some folders in Windows did come up with error accessing contents, any idea why? Also, I noticed some of the files had size zero when downloaded.

Interest in "Opensource Sync" software

Hi all!
I have been wandering around the info we have, and even with SPST we get not much improvement since a while.
I'have been thinking on purchasing another unit (device) to try to keep on the testing, without messing up with QPST or NVitems this time. But as all you know, that would cost money (would rock if not!).
So, in short words, i would want to know what's the interest on an opensource sync/browse software (similar to zune but without playing features) as donationware to relief the device cost and time spent over it.
The above means the "Connected" label on the kin screen and way to upload/download files manually, since the kin supports libMTP operations and just needs that "label" and usb status to transfer. Not meaning a OS change to android/meego/[enter other OS here] or a hacking attempt. If it later allows some kind of recovery for bricks or improvement on the device OS changing attempts, it's welcome from me.
Just as notes of what i had previously to the brick phase:
- Current supported OS: linux (the experts here could know if the libs below work on windows through mingw32 or native compilation)
- Libraries used: lib-usb (headers), libmtp (with libmtp-tools) in command prompt / terminal.
- Kin set up in normal mode ("Kin" device in windows).
- Language C++ (OO code).
- Raw access to the Kin through usb bulk transfers (requires sudo / root privileges).
Also, alternatives on the purchasement would be thanked .
so from what i understand, this program would be capable of accessing music and pictures and things, but not system files? am i on the right track there?
as long as it has you think you can give it more functionality than zune has, i'm in full support and will gladly donate to the cause.
i would offer to help, but my programming experience is pretty limited, especially in C++. i'm reasonably competent in C#, but it doesn't sound like that's gonna be of much help.
slimeq said:
so from what i understand, this program would be capable of accessing music and pictures and things, but not system files? am i on the right track there?
Click to expand...
Click to collapse
Yes, totally right there. access what's called "Storage" at "My computer" on windows pc's, when you connect to the zune software having the registry hack (images of that can be seen in this forum).
slimeq said:
as long as it has you think you can give it more functionality than zune has, i'm in full support and will gladly donate to the cause.
Click to expand...
Click to collapse
Well, in fact, there is no much more you can do, but the libmtp tools already let you format the storage and do the common operations, so the thing is triggering the right usb status to write.
slimeq said:
i would offer to help, but my programming experience is pretty limited, especially in C++. i'm reasonably competent in C#, but it doesn't sound like that's gonna be of much help.
Click to expand...
Click to collapse
Not right now, but the raw usb access can be wrapped as dll to call from c# where, of course, would be a lot easier to develop a gui. Actual code is pretty much abstract, so i call to "writeData(dataArray, length)" instead all the low level codes. But it has console mode only (not much to do hehe).
I may post what i have at the moment but as it just tests to talk to the kin... it's pretty lame hahaha.
It may be just me, but I don't quite see the point in going through all the trouble to only get the same result.. A quick sync through Zune works and there's nothing more we could get out of it, is there?
But if it can possibly increase the chances of this thing being hacked, I'm in..
(I'd love to be able to get the text message logs to my computer, but ehh.)
First of all yes.
Second, you cannot "customize" what to sync. You sync what's OK for zune, and what you could add to the zune software. Zune software is not Kin specific but added as supported (limited) device.MTP protocol allows you to get what the device is capable of, i will paste it on a txt file, as it's kinda huge for "our" device. Not all is done on zune, like "firmware files" support (whatever they are).
Third, apart from macspace app for mac, there is no support for linux (even for the Zune hardware) to get synced.
Fourth, we dont know if enabling the usb status for the transfer you can get the explorer to write on the device (that's on the air).
And last, logs files, pinned-apps, etc should be on the storage but they are not accesible to us or could be on another partition. That's one of the questions we still have floating around.
johnkussack said:
Furthermore, if you try to make a lame hijacking test, renaming a mp3 to image or the opposite (like "image.mp3"), the Zune software detects it, before you sync, so outta luck.
Click to expand...
Click to collapse
i pulled this from a different thread, but it's more relevant here.
if the zune software automatically detects hijacks, would it be possible that the phone itself has no security in place to detect it? because if so, a third party file explorer could theoretically sync hijack-type files to the phone, no?
johnkussack said:
Not right now, but the raw usb access can be wrapped as dll to call from c# where, of course, would be a lot easier to develop a gui. Actual code is pretty much abstract, so i call to "writeData(dataArray, length)" instead all the low level codes. But it has console mode only (not much to do hehe).
I may post what i have at the moment but as it just tests to talk to the kin... it's pretty lame hahaha.
Click to expand...
Click to collapse
if you get the technical stuff up and running i'd gladly do some gui work.
slimeq said:
if the zune software automatically detects hijacks, would it be possible that the phone itself has no security in place to detect it? because if so, a third party file explorer could theoretically sync hijack-type files to the phone, no?
Click to expand...
Click to collapse
Not quite sure of that affirmation. We dunno if uploading a file would work "as is" pasting or you need to go through a usb protocol (within MTP protocol) which says "it's a photo, and it's named image.jpg" and upload it accordingly.
The answer to that would be to get the thing working and testing.
As promised, i posted what lib MTP said about the kin two capabilities (before it became dead). It's a bit specific & technic, but it's more public information now .
Just to give more info on this topic (syncing software):
MTP specification:
Click to expand...
Click to collapse
From Kin MTP info (posted by me above):
3000: Undefined Type
da99: Unknown property UINT128 data type GET/SET
dc04: Object Size UINT64 data type READ ONLY
dab0: Unknown property UINT8 data type ANY 8BIT VALUE form GET/SET
da97: Unknown property UINT128 data type GET/SET
dc4f: Non Consumable UINT8 data type enumeration: 0, 1, GET/SET
dc07: Object File Name STRING data type GET/SET
dc02: Object Format UINT16 data type ANY 16BIT VALUE form READ ONLY
dc0b: Parent Object UINT32 data type ANY 32BIT VALUE form READ ONLY
dc01: Storage ID UINT32 data type ANY 32BIT VALUE form READ ONLY
dc41: Persistant Unique Object Identifier UINT128 data type READ ONLY
Click to expand...
Click to collapse
It means that the MTP protocol (standard and in the kin) would allow us to write non zune files (mp3, image, playlists) on the storage, even if it has no use in the kin itself.
This means placing exe files too, even if we cannot run them anyway.
Of course, this doesnt happen in Zune or Kin Media Sync, even using MTP (or MTPz) because companies dont want you to write dirty things in the device, so they let you sync normal (multimedia) filetypes only.
I wonder what would happen if i could have some "read All files" code which doesnt filter non-multimedia files... !
Hey John, I had noticed that installing Songbird (for Windows, as it includes native MTP support), it's able to read a LOT of information about the phone, more than I've seen the Zune software do. The only problem comes when I try to read or write files to the phone, that Songbird is getting some unexpected response and simply fails or crashes during the process.
Also, when it's connected to the Kin, Zune is unable to access the phone.
Since I'm still new to MTP, are you aware of why simple data retrieval would work, but file I/O would be a problem?
klamation said:
Hey John, I had noticed that installing Songbird (for Windows, as it includes native MTP support), it's able to read a LOT of information about the phone, more than I've seen the Zune software do.
Click to expand...
Click to collapse
Get the file i attached on the 1st post. Has the info provided by the libraries used by songbird (probably same as mines on linux).
Of course, MTP was designed to get public properties from the phone, just when they are standard (name, manufactured, battery state, ....)
For that thing, you dont even need to initiate a mtp session, i think, but for some specific commands you must do.
I'm far from an expert on MTP, just read what i got in the specification (and some sites), and it's a easy yet effective way to communicate with a device.
From what i have seen, mtp session and communications go in a half-duplex mode (walkie-talkie way to do) where only one host (PC) talks to a device(Kin) one at a time.
I guess that also applies to applications using the kin MTP. just one, the other awaits till the mtp session ends. And that's why songbird may be blocking access to it.
That could explain why we can't see files in explorer with zune open or that weird random things we got using registry hacks.
Anyway, it's just a matter of time till we write a lame image/file to the device.

[DFT] z..::H.O.W...T.O...N.A.T.I.V.E::..z [PREVIEW]

..::H.O.W...T.O...N.A.T.I.V.E::..
Hello,
today I had decided to start this thread about native development for WP7.
At the current moment I don't upload/attach any working stuffs to this message. It will happen a bit later, after new DFT ROMs release. This is because it's very difficult to run them for now.
Let's start from current achieved results:
1) It's possible to run any EXE files (after "FullUnlock")
2) Those EXE files can do any operations in the system (after "FullUnlock")
3) It's possible to show some GUI from this applications. But GUI has legacy Windows CE style, it's impossible to create Metro-style applications for now.
How can it be used by community?
We can develop a lot of homebrew applications: like porting emulators, old native applications, video players and etc.
It can be possible to port famous TCPMP player for example and get ultimate playback on Windows Phone 7!
Is it possible to run old Windows Mobile 6.5 applications without modifications?
No, it's not possible. A lot of different APIs are missing for those applications.
Is it hard to modify old Windows Mobile 6.5 applications?
Well, it's almost same like porting to pure Windows CE, but a lot of Windows CE stuffs are "damaged" inside Windows Phone. They just doesn't work right, because nobody never used/tested them before
Photos of sample "WP7 Native test"
Information for developers you can find in the next messages.
So I will release demo WP7 native application, when we fix issues with FullUnlock.
Demo will be as binary EXE file. And as VS2008 project, which can be good start point for other developers.
Now this thread dedicated for discussion, share ideas and thoughts.
DFT, Cotulla
Information about "FullUnlock"
Information about "FullUnlock"
DevUnlock actually allows only to deploy XAP files from external sources.
It doesn't give more privileges.
So we (DFT) developed "FullUnlock". FullUnlock is implemented as replacing some system files by wrappers, which allows any kind of access (disable access checking at all)
We replace LVMOD.DLL which used to check files and data (checksums, certificates and etc) and POLICYENGINE.DLL which implements internal objects access checking.
All written before means that FullUnlock at the current moment only possible by flashing custom ROM to device. In future maybe we can find good ways to do it without flashing, but for now I don't see any ideas how to do it without flashing.
Maybe we can replace DLLs inside \Windows\ directory (put a shadow copy), but I am not sure if it will work really. It's stuffs for future experiments.
It can be possible to do something near by editing policy values, but it need big research to find right way. As it still won't disable file checking, maybe we can add own certificate to right store and then sign files with them.
The last DFT 7720 MANGO ROMs contains FullUnlock, but it doesn't work as expected there few issues. as well some users got issues with debugging on those ROMs and etc. We will continue work under it
So I will release demo WP7 native application, when we fix issues with FullUnlock.
Demo will be as binary EXE file. And as VS2008 project, which can be good start point for other developers.
Now this thread dedicated for discussion, share ideas and thoughts.
For developers
For developers
(users do not read! danger for brain!)
First of all I want to talk about abilities of native code.
Most applications built in inside WP7 are native. But they don't use usual Dialog UI style, they are using some kind of Silvelight scripts. This kind of UI is called "UIX".
Main idea of UIX that DLL files have UIX resources inside which describe whole UI.
Something similar is used inside CE 7.0 Slivelight - there some xml compiler which make binary data and put them as resources inside DLL. I don't know how to decode this binary data.
Seems Zune desktop application also using this framework.
So UIX used some kind of scripts for UI part and callbacks for all actions.
If we decode this UIX format, we will able to change/modify UI as we want, like it was before with regular resources inside DLL. But UIX must be much more powerful.
We can't use UIX for native application because we don't know how to use it, how to make proper binary data and etc. It's hard to reverse.
But native application can have some GUI with Windows CE style (you can see examples on the photos above)
Another issue: If you call API function "CreateWindowW" you won't see anything on the screen. It seems because shell handle all output, so window doesn't visible.
After some searching I found inside some test ROM nice DLL called "WindowTreeUpdater.dll". After looking inside and decoding functions parameters, it's working!
Basic idea: you create window and call function from this DLL and Window appear on the screen. There seems some kind of proxy engine to output legacy windows on top of shell output.
Nice, it's working...
So we can use usual windows for UI inside native application.
There present standard controls, but they work rather laggy (hey, and looks too).
Basic controls like PushButton, Static, CheckBox, Radiobutton, Icon are working.
About extended controls: (Progress bar, list view, and etc)
they come from Commctrl.dll usually, it was present inside Initial/NODO releases, ut it was removed inside MANGO. I was able to run NODO Commctrl.dll under MANGO after some modifications. But all this controls are shown on screen, but they don't do anything on input. So you can see toolbar, but can't press any button.
CommDlg.dll is missing and never was inside WP7.
There present AYGSHELL.DLL, but most functions are broken. For example, I was not able to create menu bar.
So, a lot of functions are broken, like MessageBox not working.
But we still can create own custom controls and use them for developing.
For example porting TCPMP means that we will need reimplement UI fully - because toolbar doesn't work. slider also won't. Maybe get and reuse some source from ReactOS or NT40 CommCtrl
reserved1reserved1
reserved2reserved2
reserved3reserved3
This is some crazy ****! I like it
for...all...devices!? If possible...damn
I just came...
Holly smoke !!!!!!!!!!!!!!!
Way to go guys....BRAVO... This is a major breakthrough for wp7 dev
Once again well done DFTeam
You guys are beasts...please keep it up
for...all...devices!? If possible...damn
I just came...
Click to expand...
Click to collapse
For now it's only for HTC devices with flashing custom ROM
The UIX/UIB scripts are a real pain.. I tried going through them a while back to change the annoying notification system (10 seconds? Really, Microsoft?) and figured it would all boil down to the usual XML-style script that WM6.5 and other MS products use, but the format is newer and there doesn't seem to be an easy way to decompile them.
From what I do know, however, is that it's more of an encoding than a compilation, and can be decoded if we can figure out what all the different headers mean... but that's a serious reverse engineering project.
Keep it up.is it possible to add Samsung device into support list?
Great work! Are there any multitasking restrictions for these apps? presumably because they are not Silverlight they will not be present in the task switcher & the app will be in charge of when the process terminates?
Looking forward to doing some nice low-level operations - hopefully this will open a whole new world for WP7 dev
Sent from my 7 Pro T7576 using Board Express
That's great,,,Thanks
Cotulla said:
For now it's only for HTC devices with flashing custom ROM
Click to expand...
Click to collapse
Hopefully this will change when you receive the Samsung Focus and try custom ROMs.
Blade0rz said:
Great work! Are there any multitasking restrictions for these apps? presumably because they are not Silverlight they will not be present in the task switcher & the app will be in charge of when the process terminates?
Looking forward to doing some nice low-level operations - hopefully this will open a whole new world for WP7 dev
Sent from my 7 Pro T7576 using Board Express
Click to expand...
Click to collapse
I would suspect that they won't be killed unless there's an Out of Memory issue (you can see the whitelists for that in the registry), because these processes are not like the silverlight/xna apps that are launched in Taskman.exe. Whether they show up in multitask lists, idk, but they probably won't be killed in the traditional way..
but that's a serious reverse engineering project.
Click to expand...
Click to collapse
yes...
maybe it's precompiled XAML scripts, like inside Managed applications?
Great work! Are there any multitasking restrictions for these apps? presumably because they are not Silverlight they will not be present in the task switcher & the app will be in charge of when the process terminates?
Click to expand...
Click to collapse
I would suspect that they won't be killed unless there's an Out of Memory issue (you can see the whitelists for that in the registry), because these processes are not like the silverlight/xna apps that are launched in Taskman.exe. Whether they show up in multitask lists, idk, but they probably won't be killed in the traditional way..
Click to expand...
Click to collapse
Plain EXE can run without restrictions, but I guess it will be killed at OOM condition still. EXE with window seems all a bit more complex. When I press back button it usually disappear after few seconds. I think window got WM_CLOSE or something at that moment. It should be researched more in the future.
Furthermore, I forgot to say: Interesting thing, before MANGO WP7 supports native XAP files too!
There was few files nativeinstaller* which implements native installation. There references inside for setup.dll and _setup.xml like in old CAB files.
But it was removed from MANGO seems
Cotulla said:
For now it's only for HTC devices with flashing custom ROM
Click to expand...
Click to collapse
Would we be able to install an old application like fpsece for windows mobile? One of the biggest things I miss about windows mobile! I get paid today so I will be making a donation for your hard work! I'm currently using your custom rom on my HD7! Thanks again, and keep up the good work!
支持DFT論壇!支持xda-developers!至於你信不信,反正我是信了!

Syncing the Kin--Linux

Long time follower of all of the work done here. Its a shame that the device is so locked down and no progress has been made. However, I thought I would share with anyone who is interested that its now possible to sync your kin on linux without the need for a virtualbox and windows loaded up.
You can find the fork of lib-mtp at: github [dot] com/kbhomes/libmtp-zune
I've tested it and am able to now sync via terminal or with gMTP. The project was started with the hopes of syncing zunes.. Zune has the same handshake process as the KIN (MTPz)
The background on how it came to be can be found on his project blog: kbhomes.github [dot] com/blog [dot] html.
Hope this helps anyone else who just would like to sync pictures, video, images, songs.
Back to lurking I will go.
Well, it was possible already. No one here uses virtual machines (i hope) in linux but mono runtime.
At least till Kino version comes, so more native (c++ over libusb) approach would be taken.
If you are able to use the standard MTPz way (not our shorcut mtp propietary command), a better approach would be to help here into decrypting the app syncing/uploading procedure, so we could understand what xna framework does in the background and do homebrew launch (which could then help the phone development).
On the other hand, being able to "transparent" sincing would be kind of a good stuff if you could use the kin in software like rythmbox
Sounds good. I hadnt thought abou going at the KIN through Linux before although it would make sense if the KIN was open source. I dont know how much this will help us though.
What he's providing is a fork of the mighty libmtp libraries & tools which is a open implementation of mtp (right one) used by almost any access on the linux environment to mtp devices.
in that fork, he redid the real stuff (aka MTPz) which could be just said as "bypassing" the kin handshake between zune and the device. At least if kin operates exactly like a Zune device (which we think).
It could help by using the kin as a normal (not protected) device on linux providing which kino does IF programs are redirected to it instead normal libmtp, so you can access files and also use in Zune-like software.
On my test field, i wasn't able to compile the software "out of the box" to try on my debian box, so no providing compilation instructions nor a .deb file (debian & ubuntu flavours) or a .rpm file (fedora & redhat 's) makes it just another utility which is non usable by common joe.
What i meant above is that the blog (which i followed back in the day) explains what he did for reversing mtpz protocol, but is not a walkthrough, so we can't just take it and learn, for example, how the kin receives "half succesfully" a XNA application, as i did back in the day in the thread "XNA madness".
better now?
What f we programm an application split it in half and add a part we dont care about for the other half that does nothing then send it to the device with a strip that tells it to complete itself by recommbining itslef on the device?

What can be with Windows Phone?

Hi,
Please resolve my basic queries in regards of Windows Phone:
Like Rooting in android and Jailbreak in iOS, is there anything in Windows Phone as well?
Android apps are .apk. Like this, what about Windows phone apps?
In case of android, some of users install apk from different sources (apart from Play Store). Can it be done in Windows phone as well?
In comparison to android phone, how Windows phones are secure?
Can we install .exe file in Windows Phone? and
In comparison of Android, why should we consider windows phone?
Regards
GNS
Google search engine is your only friend.
1. There are a handful of devices that can be rooted at this time. Some of them have custom ROMs available to them as well.
2. Windows Phone apps are .xap (old filetype), .appx (current filetype), and .appxbundle (package of .appx and other required files).
3. Yes, apps can be sideloaded from the computer, installed via Device Portal over the internet, and some are directly installable by executing them.
4. Windows Phone is currently the most secure mobile OS.
5. Maybe?
6. It's a personal choice if you use it or not. Each OS has it's pros and it's cons. You can get one pretty cheap, around $30-50. If your intrigued, buy one and play with it.
1- Developer unlocking (allows amateur apps, very easy to do) and interop unlocking (allows breaking the sandbox -hence "interoperation"-, mostly unrestricted editing of system files, comparable to root, is done via an exploit in the OS)
2- .xap, .appx, .appxbundle
3- Some applications can be installed by simply opening their file on the device, some (mainly WP8 .xap) are installed with an application deployment tool (requiring a PC). But generally speaking the practice of manually distributing apps is not very popular.
4- Both OSes have exploits, and both are updated. Windows Phone/Mobile has an advantage in practice, but only because most devices are 1st party and Nokia/Microsoft have great lifetime cycles on their products.
5- No, at least not computer programs (apps still contain a .exe binary, but most power users never touch or even see them directly)
6- It's all a personal opinion I like the fact 99% of apps support external storage out of the box, the clean UI, and the app gap isn't a big deal as everything I need to do is covered!
I'm a relative beginner too so some of the above may not be exact...
I'm going to assume you're asking primarily about Windows 10 Mobile (W10M), not the legacy Windows Phone (WP7.x and WP8.x) OS family. Although the underlying OS is very similar between WP8.x and W10M, the answers to some of your questions change.
Yes, all W10M devices can now be jailbroken/rooted (we don't have a single term for it right now; if you say "rooted" people will know what you mean). On W10M, there are two critical elements to rooting a phone: the ability to run unsigned (or at least non-MS-signed) code outside an app sandbox, and a way to launch an application with high privileges. We can now do that for all W10M devices, including WP8.x devices upgraded to W10M.
As others have said, the extensions are .xap (Silverlight / XNA apps, used for WP7.x and some WP8.x apps, still supported on W10M), .appx (WinRT, used for W10M and some WP8.1. Used for "Universal" Windows [Phone] 8.1 and Windows 10 [Mobile] apps, such as W10's "Universal Windows Platform"), and .appxbundle (just a collection of .appx files and their various resources / requirements). As with .APK files, they are just ZIP archives and can be opened by 7-Zip or anything else that knows the format (unless they are DRM-encrypted, which ones from the Store often are).
Yes, W10M supports sideloading. It's actually easier to enable on W10M than it is on Android (it's an easily-found option in Settings). By default you're limited to 20 sideloaded apps at once, but there are ways to bypass that.
Against external attacks, W10M is extremely secure. There have been no easily-exploited vulnerabilities (like Stagefright for Android), so far as I know. The app store is also better curated that the Play Store, and you can fully control the privacy settings of individual apps. Also, unlike with Android, Windows phones continue getting updates long after release, especially if you use the free preview / Insider programs to get your updates before your OEM or mobile operator bother to approve them (which sometimes never happens, both on Android and Windows, but on Android the only way around that is to go with a custom ROM; on W10M Microsoft makes it possible to still get updates).
Very much depends what you mean. In one sense, yes, of course; all W10M executables (both system and app) are EXE files (.XAP files may contain only a DLL that is loaded by a system EXE; newer apps include their own EXE). EXEs intended for desktop PCs generally won't run, though, because they use the x86 or x64 instruction sets, and the phone uses the ARM (actually THUMB2) instruction set. These are completely different "languages", and ARM CPUs cannot understand x86 machine code without an extremely slow interpreter in the middle. Additionally, the phone does not support the "Windows desktop" user interface at all, so you can't run any graphical programs (except "immersive"/"Metro-style"/WinRT/whatever-they-re-calling-it-this-week) ones. Command-line interface programs can be run (if they're compiled for ARM processors, and the phone is jailbroken) but there's not (yet) any translation layer for running x86 apps, even command-line ones, on the phone.
A more consistent UI across phones. Better control over when apps run and what they do (which often gives better battery life). Much better update support, even for "unsupported" phones. Pretty good performance even on really low-end phones; a cheap Windows phone will run much better than a cheap Android phone. Better security. Higher-end Lumias have some of the best cameras ever put in phones. Continuum for Phones (connect to a real monitor, and optionally USB keyboard and/or mouse, and run apps on a bigger screen). Easy access to pre-release builds, if you like trying out the bleeding edge features and such. Integration with all the Microsoft services (Exchange and Office365, Skype, OneDrive, etc.), although you can still use Google mail/calendar/etc. Tap-to-pay with high-end Lumias. Many apps can be used on both PC and mobile Win10 but you only need to pay once. Easy to re-flash your phone if something goes catastrophically wrong (commonly called "soft bricked", i.e. you can't even factory reset anymore), although they don't get into that state any more often than Android phones. Specs-for-specs, Windows phones are often cheaper than Android ones. Doesn't send a bunch of personal info to Google (of course, maybe you don't trust Microsoft any better, but at least their primary business isn't advertising).
... there are lots of reasons, just as there are lots of reasons to prefer iOS, or to prefer Android. Without more info about what you find important in a phone, it's hard to guess what stuff you'd care about.

Categories

Resources