First impressions of the WoA project with Lumia 950XL

Published by at

"It's Surface phone the way it should have been", comments guest writer Arpolend Sevostyanov. He writes "It’s an interesting time for Windows phone owners, as the official support of Windows 10 Mobile is coming to the end, installing custom firmware made by enthusiasts on daily drivers becomes a viable alternative. One of the most exciting such projects is called 'WoA project' and I’ve been using my Lumia 950XL with WoA for about 3 months - here are my first impressions."

Arpolend:

First of all, there is a very important thing to note: as of now, from my standpoint, the project is NOT ready for daily use. I’m not using this phone as a daily driver, as it’s just not ready for that kind of use. So, if you are using your precious 950 XL as your primary phone, DO NOT try this (well, you can use dual boot to have both WoA and Windows 10 Mobile on one device, that’s quite safe and won’t break anything, except Windows Updates which aren’t now a thing anyway on either of those).

But don’t worry, I’ll put the installation instructions at the end of this piece if you have a Lumia 950/XL lying around and collecting dust.

Here are links to the official website and the GitHub page (which is arguably more useful):

https://woaproject.net/

https://github.com/WOA-Project

Overview

When Windows 10 Mobile was still alive and the Lumia lineup wasn’t discontinued, we Windows Phone users had a dream: To have the full Windows 10 running on our smartphones, to have real PCs in our pockets. While Microsoft tried to meet our expectations, Windows 10 Mobile with Continuum was still not good enough for most people. And while now Microsoft has finally released the Surface Duo, it’s an execution of a completely different idea (based on Android). But now a team of enthusiasts have done wonders and actually turned our beloved Lumias into the dream devices we hoped them to be. You can find their names on the project’s official website on GitHub, while I’ll tell you a bit about the project itself, in case you haven’t been following it.

Everything started about a year ago when a Windows 10 Mobile prototype running ARM64 firmware was found, and that made possible porting the full desktop version of Windows 10 ARM64 to the Lumia 950/XL.

You see, the last Lumia flagships have a unique combination of hardware components:

The processor is MSM8994/8992 (Qualcomm Snapdragon 810/808), which is the first and only 64-bit CPU used in the whole Lumia lineup. And while there were ARM32 versions of Windows previously, like Windows RT or the recently leaked internal build of Windows 10 15035 ARM32, they do not include x86 emulation and, most importantly, are ancient in terms of security updates and the UWP APIs (15035 is older than even the first W10M build). So, with a 64-bit OS we get

  1. x86 emulation (though with some caveats, notably, no DirectX support in x86 apps, although it’s working in ARM apps)

  2. ALL possible support/updates from Microsoft for an almost unlimited period of time (though again, not without some problems, which I’ll explain later on)


While there are newer w10m devices running on MSM8996 (Snapdragon 820), like HP Elite x3 and IDOL 4 Pro, that processor is not supported on any Windows 10 builds older than Redstone 2 (1703 Creators Update). Interesting fact: this is also one of the reasons why Windows 10 Mobile didn’t receive the proper FCU update, as Snapdragon 820 support was very difficult to maintain, so all the newer phones would not have been supported and that would kill the platform anyway.

Though, if you want, build 15035 can be installed on those phones, but it’s a topic for another day.

There are also modern Android flagships running on the Snapdragon 835/845, which are technically supported by desktop Windows 10, but the phone functionality would not be available for those.

Finally, there is the ghost-phone Acer Liquid Jade Primo, which is supported by the WoA project, but there is no touch driver for it, so there is almost 0 chance of using desktop Windows on it. 

So, the 950/XL are the best phones for this, right? 

No, it’s not that easy. From the very beginning, the smaller phone of the two was having problems with drivers, as most of them were available only for the Snapdragon 810 CPU in the 950 XL. While things have improved since then, there is one downside left: the CPU is not working properly, failing to reach clock speeds higher than ~560 MHz, and people using it say that it’s a no go. Maybe the situation will improve, but for now, for anything close to normal use it’s the 950 XL or nothing.

But you shouldn’t worry, you don’t have to ditch Windows 10 Mobile! A dual boot mode is also available, so you can divide the flash memory of your smartphone between those two OSes and use Windows 10 ARM64 only when you need it (or vice-versa).

Finally, there are things that won’t work on any phone, and these sadly include the cameras and the iris scanner. This is a downside of Microsoft having built the whole custom camera system (BTW, based on the Sony IMX230 sensor), which is almost impossible to port to the 64-bit OS (as Windows 10 Mobile is 32-bit and no drivers from it will work). Steve said in the comments: "That’s like saying you can drive a Ferrari but you're not allowed to use its engine", and it’s one of the things that can stop us from installing WoA, but don’t forget about the dual boot possibility, and while you’ll need to reboot to access the camera, it’ll still be there in Windows 10 Mobile working perfectly as before.

There are other small things, like a buggy graphics driver which doesn’t allow using transparency effects or DirectX in x86 programs, also some specific sensors don’t work. Here’s an always updated list of what’s working:

https://github.com/WOA-Project/MSM8994-8992-NT-ARM64-Drivers/wiki/Status

Before jumping to my own experience, I’ve promised to tell you about the problems with Windows Updates:

The thing is, for the time being, you’ll neither be able to install ANY Windows updates nor almost any driver updates on a deployed system. You’ll need to do a clean install every time you want to update. While that can change later on, keep in mind that it’s not a good idea to spend hours setting up Windows on your phone only to find out that you need to format your drive for each update.

Also, don’t forget to disable Windows Updates via group policy, as they would try to install and horribly drain your battery/potentially break your system. 

Screenshot

My experience 

Interface

The first question I’m generally asked is the usability of the full Windows OS on such a small screen. I’ll not only tell you that it’s usable. Even more – it’s a wonderful experience and I even prefer this to W10M now. 

WoA and W10M

(My testing Lumia near my daily driver on Windows 10 Mobile, the start screens look very similar)

You don’t even need to set a custom scaling coefficient, I’m using the supported 225% and both UI and apps are scaled perfectly. 

There is one problem though: the Windows touch keyboard is horrible on such a small screen in portrait orientation. You can use it to write a sentence or two, mainly using swipe gestures, but nothing more. But it’s not all bad – remember the old Windows 10 Mobile-like small floating keyboard? It’s still here and is almost as good as the original w10m variant (though without changing languages by swiping on the space bar, and the text fields don’t move up in this case, you’ll have to move the keyboard itself).

But in landscape mode the standard Windows keyboard is the best writing experience I ever had on a phone screen, it’s covering a very small part of the screen and still manages to keep the keys big enough for comfortable use.

Screenshot Screenshot

Switching to the overall UI experience, the Windows 8-style side gestures are still a joy to use, even more so on a phone. Swiping from the right opens the notifications centre; from the left – multitasking menu complete with timeline. You can easily close any app just by swiping from the top, so the only button you would use frequently is the windows key.

All the UWP apps have almost the same interface as on Mobile (there are small bugs in some places though).

Screenshot Screenshot

(AAWP working perfectly, while some other apps can be a bit tricky, but not unusable)

But once you hit the tablet mode switcher button in the notification centre, your phone immediately transforms into a full Windows PC, capable of running almost anything you want.

Screenshot

Screenshot

Screenshot

(Even the Visual Studio Code compiled for ARM64!)  

Screenshot

(or maybe a Hex editor and WavePad?)  

Screenshot 

Screenshot

Screenshot

Apps

Now, you’ve probably seen some strange apps, like Chat and WoA Dialer on my start screen, what’s it all about?

Those are the apps built specifically for this project by the Windows enthusiasts, so they feature the closest look to the Fluent Design guidelines and such an amazing attention to details that it makes the experience dramatically better.

Let’s discuss them one by one

Mobile Shell

https://github.com/ADeltaX/MobileShell

This app doesn’t come pre-installed but it’s just a must have: This is a custom shell for desktop Windows, turning its tablet mode into a Windows 10 Mobile-like experience. It’s responsible for that pretty taskbar, whose buttons do vibrate as on Mobile, and a very useful top bar with Wi-Fi, Cellular and battery indicators. I wish I could have it on Windows 10 Mobile😊.

But the last version on the GitHub page is very old, so I’ll post the newest build here: MobileShellPackaging_0.1.2428.0_x86_x64_arm_arm64

Woa Dialer

https://github.com/WOA-Project/woadialer

This is the app you’ll be using instead of the old "Microsoft Phone" app, which is now for the most part broken. It does come pre-installed but is still a work in progress at a very early stage. For now, I wouldn’t be using it for anything serious. Sometimes it misses calls, the calling interface is buggy, it lacks the proper 'contacts' page… Though the developer has successfully ported many features from Windows 10 Mobile, like turning off the screen when you raise the phone to your ear.

Screenshot Screenshot

(as you can see, the settings are just empty)

Chat

https://github.com/WOA-Project/Chat

A simple SMS app with beautiful design, and, sadly, English-only interface for the time being.

Screenshot

Extras 

Other apps include a small 'help' app containing some advice for not so geeky users, a USB mode switching app, which will soon be deprecated, as USB-C now is almost working, and some settings apps, created with the same UI as the Windows 10 Mobile originals, like Color Profile and About. Also, there is a small Vibration settings app, as Windows 10 doesn’t really support vibration.

  

 

Of course, there are also many background services that make this all work, but the end-user probably won’t ever notice them.

Overall performance

So, let’s get down to business, what is working and what is not, and how well does it perform?

Battery

I’ll start with the obvious: battery life. And it’d be a surprise for everyone! I’ve rewritten this part more than 10 times during the last months and as a '1912' update is now released along with a UEFI fix (you can read about that one in the Telegram group or Twitter), I can say that the battery life finally is 'fine'. And for such a project that is primarily aimed at developers, it’s impressive.

Don’t get me wrong, it won’t last as long as on Windows 10 Mobile in any case, but the good thing is that you can do whatever you want to tweak it by disabling some of the unnecessary services.

With everything enabled it’s about 10% per hour drain in standby and 1% per minute is use compared to 5% per hour and 0.5% per minute on Windows 10 Mobile respectively. But if you disable Windows Search and/or Windows Defender, you can get it to be almost the same as on mobile.

Gustave (who is developing the drivers) said that with a good battery he had 57% left after 8 hours of standby.

A good trick is to lower the maximum clock speed of the CPU in the battery management in control panel, especially if your battery is already on its last legs (if your phone reboots without any reason, a dead battery is frequently the cause).

But for a second let’s talk about bad batteries: don’t expect this all to work if you have a fake cell or a very old one, it will reboot, and it will be much worse in terms of longevity. 

Screenshot

Charging time has improved since the early days, but it can take a long time to fully charge the phone, and it can heat up quite a bit while charging as Windows tends to do more things in the background when it doesn’t run on battery.

But as we’re not considering this to be a 'daily driver', and most likely you’ll use it in dual boot mode, just charge the phone in Windows 10 Mobile state for better results.

Speed

Actually, despite some minor problems, this is a huge win for this project, as the UWP apps run perfectly, as good as on Windows 10 Mobile, without any stuttering or whatever (mostly, as I’ll explain in the 'bugs' section). The UI can be a bit sluggish at times, especially right after booting the phone up. The default Windows apps can be a bit slow to start as well, but after using it for some time you won’t be noticing it.

Sometimes the phone tends to get a bit warm even without even heavy load, but it seems that’s the way it should behave. But in this case do check the Task manager as it can be that some app has gone crazy and you need to disable/reset it.

You’d think that the x86 emulation is where the old Snapdragon 810 shows its limits, but surprisingly it’s not! All the simple apps I used like video downloaders or music editors, or even iTunes(!) work just fine. Of course, you have to forget about running stuff like full-blown Visual Studio or Wolfram Mathematica, as you technically can and they will actually work, but in this case be ready to wait up to 10(!) minutes for them to fully start up.

A small reminder: no x86-64 (also called x64) app would run on this device at all.

Finally, there are a few win32 apps compiled for ARM64 (mostly open source), like Visual Studio Code or Edge Chromium Beta, they run as well as UWP, but are quite rare for now. Though as win32 isn’t going to change anytime soon, all the apps ported for the likes of Surface Pro X in the future would run here as well. 

But wait, what about games? Here sad news is coming – games are straight up nonstarters here. You might be able to play some UWP ones like Mini Dogfight, but that drains 10% battery in several minutes.

One strange thing is that most old Windows 8 style apps just don’t run at all, so don’t bother with downloading them, they are not optimized for the phone screen in the first place, so not a big loss here.

Bugs and features missing

Ok, not everything is perfect, so let me just put a list of bugs I’ve encountered here, it’s not a full list by any means, but I think it might be helpful for anyone willing to give it a try before sacrificing their beloved Lumias😊

Also, for the always updated list of the features available, see the status page on GitHub (https://github.com/WOA-Project/MSM8994-8992-NT-ARM64-Drivers/wiki/Status)

Apart from the obvious caveat that neither camera nor iris scanner is working and never will be, at this moment USB-C is also not implemented completely, so you’ll have an app preinstalled to use it in OTG mode, plus phone calls and texts don’t work on 20H1 (but cellular data does). 

In addition:

  • Groove music for some reason doesn’t work very well, especially when you’re using Bluetooth headphones and doing something else meanwhile (even if you’re just unlocking the phone, there will be stutters). This may be fixed in some cumulative update of 20H1. 
     
  • To try out the new (Chromium-based) Edge browser, you should launch it with '-disable-gpu' parameters, which also won’t allow you to watch videos (just use MyTube! app though). 
     
  • The transparency effects are really buggy, and you’ll be better off with just disabling them completely, see the artefacts on the notification shade and title bar:

Screenshot

  • DirectX doesn’t work in x86 emulation
  • PowerShell is way too slow; it can be performing the simplest commands for several minutes.
  • Your device can be rebooting randomly with even a new battery, so in the control panel go to 'system info'->'additional settings'->'recovery' and disable rebooting automatically in case of critical errors. 
  • Some UWP apps fail to open, like Microsoft Translator or OneDrive UWP.
  • Windows Updates don’t work and will break everything, so disable them right away.

Verdict

Finally, is WoA worth using on your phones? Absolutely.

Should it be your daily driver? Absolutely not. Yet.

The best possible scenario for this right now is in dual booting for having the full Windows 10 OS while still having your Windows 10 Mobile experience almost unchanged. Actually, unless you have more than one 950 XL, there is no reason at all to wipe the Windows 10 Mobile partition, as this way you’ll still have access to the camera, Windows Phone 8 apps and much more.

With x86 emulation and the ability to run any win32 app, there are just infinite possibilities, like running all possible apps, using a full-fledged desktop browser (even using another browser like Firefox or Edge Chromium), having access to anything in the OS and tweaking it to match your needs and much more. 

Why can’t it be your daily driver now? 3 reasons: battery, phone calls, and some minor bugs. And all that can be fixed in future.

It’s still not clear whether it can reach the point when it’s ready for daily use, but if it does, I’ll try to review it from that standpoint. 

But, as always, we should judge the product by what it is now and not what it can potentially become, so is it the Surface Phone from 2015 done right? (no offense, Surface Duo😊). I think yes, it already fulfills our dreams even if it takes some time for it to reboot from Windows 10 Mobile to WoA. So I’d like to thank all the people who worked hard for two years to make this possible.

Installation instructions

While I was writing this part, a wonderful step by step video guide appeared on YouTube, so I’ll just post a link to that one here https://youtu.be/4WHAAOP2mdc). 

But after you watch it, be sure to look at these small hints so that you don’t forget anything important and don’t brick your device as I did myself on the first try!

  1. Be sure to use Apps Data Manager from here (https://forum.xda-developers.com/windows-10-mobile/windows-10-mobile-apps-and-games/app-apps-data-manager-windows-10-mobile-t3523048) or a similar tool to back up all your favorite apps in the exact state you left them – you can back up the app itself with 'back up the installation folder' and the AppData (game saves, your account info, etc.) with the 'backup data' button.

  2. Very important! Disable device encryption in settings and wait until the phone reboots (if it doesn’t, restart it manually after some time).

  3. Very important! Check that your phone is charged before each step.

  4. If you missed hint 1 and it’s stuck when unlocking, try to restore the bootloader in WPInternals. 

  5. Very important! Back up your phone again using win32DiskImager.

  6. Before clicking 'Deploy' in the WoA Deployer, be sure to check the settings page, where you can choose to wipe Windows 10 Mobile or keep it to use with dual boot.

  7. Very Important! If you want to use Dual Boot, check that you have enough free space on your device and in WoA Deployer only choose an amount of space smaller than what you have free on the phone.

 


Thanks Arpolend, all very interesting!