Windows 10 1909 From Scratch - Based on ARM64

gilius

Member
I've decided to end this project now due to time constraints and other commitments, but you guys are welcome to continue hacking Windows 10 based around my ARM experiment that used the commercial version of NTLite. Below are the bare minimum components (besides localisation; undocumented) needed for a functional Windows 10 depending on what basic features you require:

WINDOWS 10 LITE (BASED ON 1909 ARM64) - COMPONENT PROTECTION

Minimal Drivers

Audio inputs and outputs
Batteries
Bluetooth
Computer
Disk Drives
Display Adapters
Human Interface Devices
Keyboards
Mice and other pointing devices
Mobile devices
Monitors
Network Adapters
Non-Plug and Play drivers
Portable Devices
Ports (COM & LPT)
Processors
Proximity Devices
SD Host Adapters
Sensors
Software Devices
Sound, Video and Game Controllers
Storage Class Memory Values
Universal Network Drivers
Universal Serial Bus controllers
Universal Serial Bus devices
Universal Serial Bus Function controllers
USB Connector Managers

Ntlite / Integrating Drivers (DISM)
System > Servicing Stack > Servicing Stack - 32 bit

Boot up
System > Boot Manager (EFI)
System > Device Experience
System > Windows Management Instrumentation (Service) > Windows Management Instrumentation (Core)

Out-of-box Experience (OOBE)
Windows Apps > Appx Deployment Service
Windows Apps > Appx Deployment Service > App Readiness
Windows Apps > Capability Access
Windows Apps > System Apps > Out-of-box Experience (OOBE)
Remoting and Privacy > Autopilot
System > Encryption File System (EFS) – Service
System > Windows Setup and Deployment
System > OLE for Process Control (OPC) library
System > Windows Update Service > Client License Service (ClipSVC)
Remoting and Privacy > KMS Connection Broker
Remoting and Privacy > Web Account Manager
Network > Windows Firewall Service

On-Screen Keyboard / Keyboard Languages
System > Text Services Framework > Input Service (CTFMON) > On-Screen Keyboard (Tablet PC)
System > Text Services Framework > Input Service (CTFMON) > Input Processors
Windows Apps > Apps > VCLibs 140.00
Windows Apps > System Apps > Input App
SensrSvc

File Explorer
Windows Apps > System Apps > FileExplorer
Windows Activation / Automatic Licensing
System > Certificate Tools

Start Menu
Windows Apps > System Apps > Search (retired in 1909?)
Windows Apps > System Apps > Start Menu Experience Host
Windows Settings / File Browsing pop-up from apps
System > File Picker UI Host

Notepad; copying and pasting text

System Clock

Network > Windows Time / Cellular Time

Screen Rotation
System > MobilePC > Sensors
System > Text Services Framework > Input Service (CTFMON) > On-Screen Keyboard (Tablet PC) > Tablet PC > Auto-Rotation Manager
SensrSvc + SensorService enabled

NTFS Permissions
System > Access Control List (ACL) UI – 32 bit

Diskpart
System > Virtual Disk Service > Diskpart

MMC Snap-ins
System > Microsoft Management Console (MMC) > Computer Management
System > Microsoft Management Console (MMC) > Device Manager
System > Microsoft Management Console (MMC) > Disk Management
System > Microsoft Management Console (MMC) > Local Users and Groups Manager
System > Microsoft Management Console (MMC) > Services
System > Microsoft Management Console (MMC) > Task Scheduler

Multiple User Accounts
Network > Netlogon > Active Directory

Paint + Snipping Tool
System > UI Ribbon > Paint
Multimedia > Snipping Tool

32-bit App icons
System > Windows Image Resource – 32-bit

Office 365
System > .NET Framework Core > Task Scheduler > Task Scheduler – 32-bit (Time Broker service)
System > Credential Manager
System > Edge HTML Viewer > Browser window frame (IEFrame) > Browser window frame (IEFrame – 32-bit)
reg add "HKLM\SYSTEM\CurrentControlSet\Services\BFE" /v Start /t REG_DWORD /d 2 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Services\sppsvc" /v Start /t REG_DWORD /d 2 /f
Remoting and Privacy > Microsoft Account > Microsoft Passport
Network > Internet Explorer Jscript – 32-bit > Internet Explorer HTML Viewer – 32 bit

Office 365 - Outlook
Windows Apps > Modern App support > OneCore UAP Common Proxy Stub – 32-bit > Modern App support – 32-bit

Bluetooth
Drivers > Bluetooth
Windows Apps > Network Connection Broker
reg add "HKLM\SYSTEM\CurrentControlSet\Services\NcbService" /v Start /t REG_DWORD /d 2 /f
System > Windows Push Notification Service (WINS)
Hardware support > Devices Row > Device Association Service > Bluetooth

Cellular / Mobile Wi-Fi
Remoting and Privacy > Device Management Enrolment Service > Device Management > WAP Push Message Routing Service
Remoting and Privacy > Device Management Enrolment Service > Device Management > Windows Provisioning
Remoting and Privacy > IKE and AuthIP IPsec Keying Modules
Network > NDIS User Mode I/O driver > SMS Router Service > WWAN AutoConfig
Network > Windows Connection Manager
Network > WLAN
Network > DHCP Client

Edge
Windows Apps > System Apps > Edge
Windows Apps > System Apps > EdgeDevToolsClient (not needed on Lumia)
Network > DNS Client (LAN only; WiFi doesn’t need)
Network > Internet Protocol Helper (IP Helper) (LAN only; WiFi doesn’t need)
Default Fonts
Multimedia > Enhanced Video Renderer (EVR) > Media Foundation
Windows Apps > Modern App Support > Browser Brokers
System > Edge HTML Viewer > Browser window frame (IEFrame)
Remoting and Privacy > Clipboard User Service

Chredge
Windows Apps > System Apps > AAD.BrokerPlugin
Windows Apps > System Apps > AccountsControl
Remoting and Privacy > Microsoft Account
reg add "HKLM\SYSTEM\CurrentControlSet\Services\TokenBroker" /v Start /t REG_DWORD /d 2 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Services\NgcCtnrSvc" /v Start /t REG_DWORD /d 2 /f
System > Credential Manager
Network > Netlogon > Active Directory > Azure Active Directory

RDP
Remoting and Privacy > Remote Desktop Server
reg add "HKLM\SYSTEM\CurrentControlSet\Services\KeyIso" /v Start /t REG_DWORD /d 2 /f
Multimedia > Image Color Management (ICM) > Display Policy Service

Easy SMB File Sharing
Network > File Sharing Support > SMB Server Common > SMB v2 Server
Network > Windows Firewall Service > Windows Firewall = off
PowerShell / Scripts / Office 365 installation prompt
System > .NET Framework Core > .NET Framework 4.7 > PowerShell > PowerShell 2.0

OneDrive / “View Online” context menu
Remote and Privacy > OneDrive
Windows Apps > Setting Sync
System > Windows User Interface (TWINUI) – 32-bit
onedrivesetup.exe /allusers

.NET Framework 2.0, 3.0 and 3.5
System > .NET Framework Core > .NET Framework 2.0, 3.0 and 3.5

Windows Updates / Optional Features
System > Windows Component Database > Windows Update > Optional Features
System > Windows Component Database > Windows Component Store (WinSxS)
System > Windows Update Service
Network Location Awareness > Network List Service > Background Intelligent Transfer Service (BITS)

Bitlocker
System > Recovery Agent > Bitlocker Drive Encryption
System > Shell Hardware Detection

Location
System > MobilePC > Sensors > Location notifications?
Remoting and Privacy > Location Service

Not Removeable
Windows Apps > Modern App Support
Windows Apps > System Apps > immersivecontrolpanel
Windows Apps > System Apps > ShellExperienceHost
System > Desktop Window Manager (DWM)
Multimedia > Video For Windows (VFW)
Network Location Awareness > Network List Service

Also take a look at this topic and the attached scripts re: post-installation: https://discourse.pi64.win/t/optimizing-windows-10-services-for-increased-performance/178
 

Attachments

  • Unattend.xml
    5.9 KB
  • scripts.zip
    16.6 KB
  • Lumia 4.5 drivers 4.xml
    31.8 KB
Thanks gilius, nice to see someone actually used it on an ARM architecture image.

Let me know if there are any obvious issues compared to the x64 for example.
For example to me it is unexpected that the 32-bit portions of components are needed on an ARM64.
Do you have any extra info about that, is it expected?
 
Hi nuhi, Office 365 desktop apps are not native to ARM64 so we have to install the x86 version, like most apps, hence that's the main reason for stripping down Windows 10 on ARM: to increase performance in the x86 programs (via built-in WOW emulation layer) since native programs are few and far between!
 
Hi nuhi, Office 365 desktop apps are not native to ARM64 so we have to install the x86 version, like most apps, hence that's the main reason for stripping down Windows 10 on ARM: to increase performance in the x86 programs (via built-in WOW emulation layer) since native programs are few and far between!
Sorry for the thread resurrection, but does this mean it is possible to run native x86 apps on ARM-based Windows, like Windows RT? It's not as far-fetched as it might sound; I ran Diablo II on my Note 10.1 using Exagear.
 
Yes, you can run x86 apps on Windows 10 on ARM, but this is for modern PCs with an ARM64 CPU. You can install Windows 10 on ARM on an old Surface RT or RT2, but I'm pretty sure those are ARM32 devices. You'll have to search for how to do it. Could brick your device if you're not careful. I can't verify that it will emulate x86 apps like the Surface Pro X does, and performance is not going to be great because it's such an old device at this point. It's also pretty certain that the Surface RT will not be able to emulate x64 apps when that becomes available in a future update.
 
Back
Top