The goal of the AME project is to provide a stable and non-intrusive build of Windows 10, without sacrificing usability and Win32 compatibility for the majority of mainstream applications. This includes the avoidance and riddance of privacy infringing automated data collection services, central to Microsoft’s strategy for the Windows 10 operating system.
This page provides a complete step-by-step description of how AME images are mastered based on Windows 10 build 1903 with minor proceeding updates, defining a complete documentation of this project.
While large portions of this process have been automated using various scripts and Linux command line utilities, a large majority requires manual effort, with many of the steps often producing differing and sometimes non-predictable results from instance to instance, increasing the difficulty of this procedure. As such, sections where abnormal behavior may occur have been appropriately highlighted.
Firstly, you will need to grab a clean ISO of Windows 10 build 1903. This can be done from Microsoft’s website directly, or via the use of third party tools, such as the Microsoft Windows and Office ISO Download Tool.
During installation, particularly the next few steps, it is necessary to disconnect your target machine from the Internet. Burn the image to a USB flash drive or attach it in your VM manager to boot the installation medium. A partition size of at least 32GB is required.
You will be asked to provide a product key.
When asked, use 2B87N-8KFHP-DKV6R-Y2C8J-PKCKT, which is a Generic License key for Windows 10 Pro N RTM. If your hardware has already been activated with a legitimate key, or if you have acquired your own, please enter your key instead. This generic key does not activate Windows; rather, it only allows for the installation to continue.
If you purchased your key from a third party, you may want to activate the key using a vanilla Windows 10 Installation on your machine before proceeding with AME, as the key will be tied to your motherboard and unable to be used again. Third party sellers sometimes check for this so they can make more money by reselling the key if you did not use it within a short time from purchasing it.
The installation and initial setup proceeds mostly normally, with the arguably placebo-trier toggles for privacy being disabled for good measure. It is again very vital to mention that no internet connection be established during the entire installation!
Before further changing the operating system, we recommend installing Microsoft’s security updates. Both the Servicing Stack Update (SSU) and Cumulative Updates are required to properly install updates. The Cumulative Update includes all updates released since the initial release of 1903. This means that only the latest Cumulative Update is required to obtain updates included in prior Cumulative Updates. The correct SSU for the Cumulative Update package can be found in the "How to get this update" section of each Cumulative Update page. For a full list of update options, as well as updates proceeding this guide, follow the Microsoft link here. The latest AME release uses SSU KB4528759 in conjunction with Cumulative Update KB4528760.
Proceed at your own risk when installing updates outside of the scope of this guide, as amelioration features with respect to privacy may be jeopardized.
To install an update, use Microsoft’s Deployment Image Servicing and Management (DISM) tool.
Firstly, extract the desired .cab file from the .msu files:
C:\> expand -F:* <.msu file> <dest>
The SSU will need to be installed prior to the Cumulative Update, but the DISM command structure is identical. Just point to the correct .cab file.
Copy the Windows10.0-KB4528759-x64.cab and Windows10.0-KB4528760_PSFX.cab files to the root of the C: drive, or a location of your choosing, and run the following commands from an elevated command prompt:
C:\> dism /online /add-package /packagepath=C:\Windows10.0-KB4528759-x64.cab
Reboot before installing the Cumulative Update
C:\> shutdown /r /t 0
Continue by installing the Cumulative Update
C:\> dism /online /add-package /packagepath=C:\Windows10.0-KB4528760-x64_PSFX.cab
Once the Cumulative Update has finished installing, it will prompt for a reboot. Reboot a second time after Windows boots up. The last step concerning updates is to clear the Windows Update cache:
C:\> dism /online /Cleanup-Image /StartComponentCleanup
Sometimes the progress bar hangs in the command prompt; it will update if you type on the keyboard. Use the arrow keys since that will not put text on the screen. Cleaning up the cache currently takes longer than installing updates.
Adding the Media Feature Pack allows for the playback of some embedded HTML5 web videos. Firefox, for example, will misbehave if this particular content is attempted to be played, and will indicate to the user that the pack needs to be installed. Other media intensive applications are also affected.
Download the Media Feature Pack from the Microsoft Software Download Service
Firstly, extract the desired .cab file from the .msu file:
C:\> expand -F:* <MFP .msu file> <dest>
Copy the resulting .cab file to the root of the C: drive, or a location of your choice, then install offline update, again using an elevated command prompt:
C:\> dism /online /add-package /packagepath=<path to .cab>
Simplifying the UI and removing extraneous visual features is one of the critical aspects of the amelioration process (as well as ensuring that certain subsequently damaged and/or non-responsive features are pulled from the interface). The following tasks need to be undertaken before the amelioration and ameliorate scripts are executed. Given the various extraneous and difficult to describe UI elements to be navigated for these procedures, videos have also been added to help document these basic tasks.
Note that although these tasks may appear simple, they need to be undertaken before the amelioration or ameliorate scripts are executed.
Windows 10 ships with very confusing and misguided functionality and features implemented by default in the taskbar. These can and should be removed manually, aiding in simplifying the UI. Note that most of these features will be unavailable once the amelioration script is executed. The Start Menu tiles (application links) are being removed now, for this very reason. Attempting to remove them later may actually not work.
Build 1903 of Windows 10 allows for native integration of an OpenSSH server, sanctioned by Microsoft, with the OpenSSH client coming pre-installed on Pro editions of the software. Installation of the server will be accomplished offline, using the manual steps described on the official project's github page:
Enabling the SSH server will add an attack vector to your machine. Please keep this in mind when enabling this feature!
Download the latest build of OpenSSH. For a list of the latest releases follow this link.
(We used v8.1.0.0p1-Beta at the time of this guide)
Extract contents of the latest build to C:\Program Files\OpenSSH
Make sure the binary location has Write permissions to just the SYSTEM and Administrator groups. Authenticated users should only have Read and Execute.
In an elevated Powershell console, run the following:
C:\> powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
Open the firewall for sshd.exe to allow inbound SSH connections:
C:\> New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)'
-Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
Start sshd in an elevated command prompt:
C:\> net start sshd
The sshd service should also be configured to auto-start at boot. In an elevated PowerShell window type:
C:\> Set-Service sshd -StartupType Automatic
At this stage we are ready to begin the amelioration process, which is structured into various phases due to the nature of Windows 10's self-updating and healing capabilities. The amelioration script, the Windows-side component of the AME process, is responsible for disabling services, applying individual registry hacks, modifying various configuration files, and installing software. Consequently, this script has both options to be executed before and after the proceeding deletion process.
The script has been heavily commented to reasonably document each operation.
Download the script:
Windows 10 Amelioration script
Windows-side component for the amelioration process, heavily commented for documentation purposes.
Run the amelioration_2019-12-14.bat as Administrator
Once opened, run option 1 Pre-Amelioration from the main menu. This may take several minutes to complete.
The script will likely generate errors; this is fine, it is just unable to remove some of the built-in apps with PowerShell.
After logging back in, change the password of the default user.
In an elevated command prompt, type the following:
C:\> net user user *
To assure that our changes are permanent, we need to remove Windows Update and its self-healing ability. This cannot be done within the running system because of Windows file permissions and repair operations. Another operating system, preferably a Linux distribution, is required for this step.
The Ameliorate script makes heavy use of filesystem fuzzing search operations to effectively find and remove all files classified under specific naming conventions by Microsoft and pipes these paths to delete commands. As noted above, modifying the Windows filesystem from Linux allows us the luxury of ignoring filesystem permissions and ensures that Windows cannot re-patch these files before we reboot. This process enables the complete deletion of all relevant binaries from the system. In addition to the removal process the script also generates a recovery script to restore all of the removed Windows files from backup.
The script is written in bash, and commented to reasonably document various deleted components.
Download the script:
Linux Ameliorate script
Linux-side component for the amelioration process, commented for documentation purposes.
Boot into Linux and mount your Windows drive.
Place ameliorate_1903_2020-01-18.sh in the root directory of your Windows drive, and execute it with root permissions:
$ sudo ./ameliorate_1903_2020-01-18.sh
The script will generate ten errors, two for OfficeHub and eight for MicrosoftEdge. This is due to permissions. This seems to be fine and neither of the programs can run. For unknown reasons, there are multiple copies of Windows files all over the folder structure of Windows 10. The ones that actually run Microsoft Edge are successfully removed.
Once the script has finished, boot back into Windows to continue.
Due to the deletion process, at this stage, Windows 10 lacks even basic software, such as a web browser or media player. This process installs the chocolatey package manager and a selection of basic sensible software.
Once again, run the amelioration_2019-12-14.bat as Administrator and enable internet access.
Run option 2 Post-Amelioration from the main menu.
The amelioration process, with respect to the disabling and/or outright deletion of certain binaries, such as Cortana, cripples some Windows functionality which needs to be replaced. The Start Menu is left handicapped with disabled search functionality and a few non-functional app links. Thankfully there are open-source projects such as classic-shell, aiming to not only replace the Start Menu with a separate executable, but also to be more functionally similar to the Start Menu from Windows 7 or earlier.
The following describes the steps to configure classic-shell to the state used in AME:
Enable: Show all settings, go to the Skin tab:
Go to the Main Menu tab:
Go to the Menu Look tab:
Microsoft has opted to ship an arguably very poorly designed UI, in terms of ease of access and clarity, with Windows 10. The lack of any defined contrasts and the burying of useful elements, which have been obscured by a confusing ribbon system, is especially apparent in Windows Explorer, a very frequented application.
In light of this OldNewExplorer is an excellent project to integrate.
Old New Explorer
Windows 10 shell extension which can undo "improvements" to file browsing made in newer Windows version.
Use the following settings:
Get Cygwin, "a Unix-like environment and command-line interface for Microsoft Windows" from their website and install lynx with it, so that apt-cyg can be used to get additional packages for Cygwin. Since the Windows Subsystem for Linux (WSL) will be unavailable in AME, Cygwin is a great addition to the Windows desktop. It allows the use of bash natively, as well as various other ported Unix and Linux tools.
During the install, select all the default options until the Select Packages dialog is reached.
Search for each of the following applications and mark them to be installed. Searching does not display a list of packages; instead, it shows the category that each application is in. To see the packages, you need to expand the category by clicking the plus symbol. The packages you should install are: lynx and nano
Follow through the rest of the installation wizard normally.
Move the provided .bashrc to C:\cygwinx64\home\user\ Create the user folder if it does not exist already. The provided bashrc file does not have the dot in front of it. You will have to rename it with cygwin:
$ mv bashrc .bashrc
To install apt-cyg type the following commands in an elevated Cygwin shell:
$ lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
$ install apt-cyg /bin
Due to Windows 10's ongoing security fiasco and surfacing issues, not to mention AME's commitment to basic levels of security, certain functionality needs to be modified and/or accommodated for along those lines. In addition to the adjustments made by the amelioration script, Hardentools, an open-source project from Security Without Borders, provides an optimal inclusion.
Run the latest executable with administrator privileges:
The application defaults for Windows 10 1903 can be set by using either the Windows Settings App, or by a more tedious, but more reliable manual process. The manual process was created due to the 1809 release of Windows 10 containing a feature regression which caused the Windows Settings App method for setting application defaults to be broken. The 1903 release of Windows 10 appears to have fixed this issue, but the manual guide is included as it is known to always set defaults successfully.
Setting the default browser, Music player and Video player are relatively simple one-off changes which need to be done using the Windows Settings App. Open the Windows Settings App, click Apps, then under "Web browser" select Firefox, do the same for "Music player" and "Video player" only this time selecting VLC.
For the rest of the defaults start by making empty files with the desired file type. You can use the bash script below to generate the files. For example, for gif files; right click the generated file gif.gif, click Properties, click the Change button next to "Opens with:", then navigate to the executable that you would like to handle that file type.
create_empty_files.sh
A simple bash script to generate empty files to set application defaults.
The goal of this section is to demonstrate how to modify the default wallpaper on a system level, replacing and/or adding the default GUI selection. The commands in this section will require an elevated command prompt.
First take basic permission ownership over the wallpaper you want to replace:
C:\> takeown /f C:\Windows\Web\Wallpaper\Windows\img0.jpg
Modify access control for the default wallpaper:
C:\> icacls C:\Windows\Web\Wallpaper\Windows\img0.jpg /reset
Replace the wallpaper with your own specified file:
C:\> copy <your wallpaper> C:\Windows\Web\Wallpaper\Windows\img0.jpg
After this, reboot, and go to Settings => Personalization and select your wallpaper.
The goal of this section is to demonstrate how to modify the default lockscreen image on a system level, replacing and/or adding the default GUI selection. The commands in this section will require an elevated command prompt.
First enable the lock screen with a reg add command:
Run to enable the lock screen image on the sign-in window:
Take basic permission ownership over the image you want to replace:
C:\> takeown /f C:\windows\WEB\wallpaper\Screen\img100.jpg
Modify access control for the default lock screen image:
C:\> icacls C:\windows\WEB\wallpaper\Windows\img100.jpg /reset
Replace the lock screen image with your own specified file:
C:\> copy <your image> C:\Windows\WEB\wallpaper\Windows\img100.jpg
After this, go to Personalization => lockscreen and select your image. It should now show your personal wallpaper as the first image from the selection (far left).
To set the wallpaper to another image, only the registry edit and the copy commands will be needed as none of permissions need to be changed.
This marks the end of the AME guide, if you have any questions or concerns please place a message in the group chat, otherwise enjoy using your ameliorated Windows 10 install.
Note about this article
A packaged version of this guide, for offline use, is available here [Not yet available]