Downgrading to Windows 10 on ARM

Ever since Microsoft made x86-64 emulation exclusive to Windows 11 on ARM, they've been heavily pushing Windows 11 for all devices regardless of architecture. However, Windows 11 removed the ability to see window titles on the taskbar without using 3rd party tools, which is a dealbreaker for me due to the way my mind works while I am working at my PC. Clearly, I'm not the only person with a reason to prefer Windows 10, as I've seen many people online sticking to it as much as they can, including Surface Pro X users who are giving up x86-64 support in favor of Windows 10. As a developer, I need to make sure my software runs on the operating systems people are using, but it's getting more difficult as Microsoft is no longer selling Windows 10 licenses in their store, nor Windows 10 on ARM devices in general.

In my previous post I talked about trying Windows 11 on ARM with the Lenovo ThinkPad X13s, and while it runs well, I just can't get past the lack of window titles on the taskbar. However, I also had no option to use Windows 10 on that device, as it came with Windows 11 preinstalled. My Lenovo Miix 630 runs Windows 10 on ARM and thankfully its Snapdragon 735 processor isn't supported by Windows 11, but I am scared to really use it given the scare I had with having to send it in for out of warranty repair. It's been my only Windows 10 on ARM device, and I feel uneasy about potentially losing it and being unable to test my software on Windows 10 on ARM.

I do have the QC710 Snapdragon Developer Kit for Windows 10 on ARM, but I made the mistake of upgrading it to Windows 11, and its Snapdragon 7c processor really doesn't like Windows 11 very much. I also made the mistake of not downgrading it during the 10 day grace period. I tried a number of different and time-consuming incantations to try and downgrade it by alternative means, but nothing would work. The Windows 10 Media Creation Tool would get most of the way through the process and then give a cryptic error message. Running the setup program from a UUPDump ISO would actually reboot and try to install, then error out and revert the installation back to Windows 11. Creating a bootable USB from that ISO does boot into a Windows 10 setup screen, but I have never been able to get it to detect any mouse or keyboard input, leaving me trapped and unable to proceed. I tried injecting drivers and creating unattended setup files, but neither of those things seemed to affect the setup environment in any noticeable way. By the time I gave up on this route, Microsoft had stopped selling these devkits in favor of the Windows DevKit 2023, which comes with Windows 11 preinstalled. I do have one, but I am not willing to try and downgrade it to an OS it was never designed for. As far as I can tell, there is no way to downgrade a QC710 from Windows 11 to Windows 10 once you're past the 10 day post-upgrade grace period. If anyone finds a way to do so though, please do tell me!

I was feeling quite at a loss for months, when one day I saw an article pointing out a steep 50%+ discount on Surface Pro X devices. Checking the product page, it listed the OS as Windows 10. Perhaps they were trying to get rid of their remaining stock? For such a steep discount, and the chance to have Windows 10 on ARM in a more reliable manner, I bought it. It arrived early and when I opened it up... the box had Windows 11 written all over it. Despair. The product page had lied to me. I contacted the seller, but they told me the only option was to send it back for a refund.

I decided to open it up and try some incantations, just in case they would be more successful on the Surface Pro X than on the QC710. Indeed, it was preinstalled with Windows 11. Checking the Surface Recovery Image site for my serial number, the only download option there was also Windows 11. From reading online, some people were able to find other serial codes that had Windows 10 downloads, but ran into issues of hardware/driver incompatibility, so I decided not to try that myself. Like with the QC710, I tried the Windows 10 Media Creation Tool to install Windows 10 on the Surface Pro X, and just like the QC710, it got a majority of the way through before failing with a cryptic error message. So, that option is out. Next, I tried using UUPDump to create a Windows 10 on ARM ISO, and then used Rufus to image it onto a USB drive. I was able to boot from it and get into the Windows 10 setup, but just like with the QC710, it would not respond to any form of user input - not mouse, keyboard, or touchscreen. I decided not to try injecting drivers this time given what a pain it was to do last time.

I was about ready to call it quits when I remembered one last thing to try - I could open the ISO file in Explorer and run the Setup executable within. This is very similar to the Media Creation Tool, and it didn't work on the QC710, so I wasn't expecting it to work here, but surprisingly, it actually did! It successfully installed Windows 10 on my Surface Pro X. From there, I was able to buy the upgrade from Home to Pro in the Microsoft Store without issue. It is activated and working properly as best I can tell, though I haven't tried using all the hardware like Wi-Fi and Cellular yet since I'm using a USB-C Ethernet adapter for internet. (Update: I have now confirmed that Wi-Fi and Cellular are working well too.) It also didn't automatically install the special Surface-related apps, but I can live without those. (Update: I was able to just install them via the Microsoft Store.) I now have the device configured to stay on Windows 10, and I have the Windows 11 recovery image downloaded too just in case I ever need it.

So, it seems it is possible to downgrade to Windows 10 on ARM without the built-in Go Back option, it's just very situational and has to be drone through somewhat unofficial means, but it works. I would not recommend doing this on a device that has never shipped with Windows 10 though, as there's unlikely to be proper driver support. The Surface Pro X originally shipped with Windows 10 before Microsoft started producing models with Windows 11 preinstalled, so that's the only reason I thought this could work. The QC710 results had me skeptical, but here we are, mission success. I can now validate my software on Windows 10 on ARM on two different devices with two different processors! To those of you out there still sticking to Windows 10 on ARM, keep fighting the good fight for getting ARM64 native versions of apps and games. I'm doing my part on the development side.

As for my personal desktop PC, I will upgrade it to a newer Windows version if Windows 10 security updates end or if Microsoft gives us back window titles on the taskbar as a built-in feature. As much as I hate only seeing app icons or having to install 3rd party tools, I don't want to risk missing out on important security updates. You, too, should avoid using software that is no longer receiving security updates. Windows 10's days are numbered, and someday, we will all have to move on from it, either to a future Windows version, or to Linux.