Windows 10 AME Documentation New!

Note about this article
A packaged version of this guide, for offline use, is available here [Not yet available]

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 1809 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.

It is also recommended that anyone attempting to reproduce the steps in this guide be moderately versed with Linux and consequently also not afraid of using the command line.

Contents

  1. Windows 10 1809 Installation
  2. Updating Windows
  3. Cleanin-Up Basic UI Elements
  4. Install OpenSSH server (optional)
  5. Run Amelioration Script (Pre)
  6. Linux: Run 'Search and Destroy' Script
  7. Run Amelioration Script (Post)
  8. Setup Classic-Shell
  9. Modify Windows Explorer
  10. Run the latest hardentools from Security Without Borders
  11. Set Application Defaults
  12. Setting the default wallpaper for desktop and lock screen

Installation of Windows 10 1809

Firstly, you will need to grab a clean ISO of Windows 10 build 18.09. 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 the installation, you will be asked to provide a product key.
Simply 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 you have acquired one, please enter your key instead, as this generic key is does not activate Windows; it only allows for the installation and use under a 30 day trial period.

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 if you did not use the key within a short time period.

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.

Post Install Procedure - After the initial installation perform the following steps:

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!

Video: Windows 10 Post Install
During the initial post-install setup, select your default language, skip any network setup (it will ask twice, click no on the second prompt), and add a user with the name "user" as a local account.

Extracting and Installing Updates

Before further changing the operating system, we recommend to install Microsoft’s security updates. Both the Servicing Stack Update (SSU) and Cumulative Update are required to properly install updates. The SSU can be found here and the Cumulative Update here. The Cumulative Update includes all updates released since for the initial release of 1809, this means that only the latest Cumulative Update is required to obtain updates included in prior Cumulative Updates. For a full list of update options, as well as updates proceeding this guide, Microsoft’s website has a complete and updated list.

Proceed at your own risk when installing updates outside of the scope of this guide, as amelioration features with respect to privacy may be in jeopardy.

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-KB4493510-x64.cab and Windows10.0-KB4490481-x64_PSFX.cab files to the root of the C: drive, or a location of your choice:

C:\> dism /online /add-package /packagepath=Windows10.0-KB4493510-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=Windows10.0-KB4490481-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. I just use the arrow keys since that will not put text on the screen. Cleaning up the cache currently takes longer than installing updates.


Install the Media Feature Pack

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 needed 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:

C:\> dism /online /add-package /packagepath=<path to .cab>

Cleaning-Up Basic UI Elements

Given that 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 or SnD 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 SnD scripts are executed.


Cleaning-up the Start Menu and Taskbar

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.

Video: Cleaning up the Start Menu and Taskbar
Remove all tiles from the Start Menu and all links except for Windows Exporer from the taskbar. Set the taskbar to never combine and set the systemtray to show all icons.

Install OpenSSH server (optional)

Build 1809 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:

Download the latest build of OpenSSH. For a list of the latest releases follow this link.
(We used v7.7.2.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:

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

Note that this will automatically generate host keys under %programdata%\ssh if they don't already exist. Because of this, we can't distribute AME with the server already enabled.

The sshd service should also be configured to auto-start at boot. In an elevated powershell window type:

C:\> Set-Service sshd - StartupType Automatic

Run Amelioration Script (Pre)

At this stage we are ready to begin the amelioration process, which is sctructured 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.

BAT File 34 KiB [ MD5 Sum ]
Version 2019-02-01

Run the amelioration_2018-12-11.bat as Administrator and enable internet access.

Once opened, run option 1 Pre-Amelioration from the main menu. This may take several minutes to complete.

The script may prompt you for AllowCortana, type yes to continue. The script will also likely generate errors; this is fine, it is just unable to remove some of the built-in apps with powershell.

After this completes, run option 3 to install .NET 3.5 which cannot be done in post after the SnD script has been executed.

Run option 4 Manual User Permission Adjustment which will open the netplwiz GUI for configuring Windows user permissions:

After logging back in, change the password of the default user.
In an elevated command prompt, type the following:

C:\> net user user *

Linux: Run 'Search and Destroy' Script

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 Search and Destroy, or SnD, 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.

The script is written in bash, and commented to reasonably document various deleted components.
Download the script:


Linux Search and Destroy script

Linux-side component for the amelioration process, commented for documentation purposes.

SH File 566 KiB [ MD5 Sum ]
Version 2018-12-30

Boot into Linux and mount your Windows drive.
Place SnD.sh in the root directory of your Windows drive, and execute it with root permissions:

$ sudo .SnD.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.


Run Amelioration Script (Post)

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_2018-12-11.bat as Administrator and enable internet access.

Run option 2 Post-amelioration from the main menu, and install programs


Setup Classic-Shell

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:

Video: Configuring Start Menu replacement Classic-Shell
While most of these configurations are optional, we have tried to align classic-shell with sensible theming. These are the settings applied in the AME release.

Enable: Show all settings, go to the Skin tab:

Go to the Main Menu tab:

Go to the Menu Look tab:


Modify Windows 10 Explorer

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.

RAR File 278 KiB [ Source/Mirror ]
Version 1.1.8

Do not run this application as administrator. It will prompt you

Use the following settings:


Install and Configure Cygwin

Get Cygwin, "a Unix-like environment and command-line interface for Microsoft Windows" from their website and install at least lynx or wget 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 us to use bash natively, as well as various other ported Unix and Linux tools.

Video: Install and configure Cygwin with apt-cyg
This video covers the complete guide on how to install and configure Cygwin with apt-cyg, as well as other AME specific modifications.

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: lynx nano wget

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

Run the latest hardentools from Security Without Borders

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:

  1. Uncheck the powershell and cmd.exe box (unless desired)
  2. Click Harden!
  3. Click OK when finished

Set Application Defaults

The application defaults for the newly installed programs need to be set manually, as functionality pertaining this, usually applied automatically by the given program, has been disabled or otherwise broken in newer 1809 releases of Windows 10.

Setting the default browser is a one-off change, which needs to be done using the Windows Settings App. Open the Windows Settings App, click Apps, then under "Web browser" select Firefox.

For the rest of the defaults start by making empty files with the desired file type. For example for gif files, create an empty text file then rename that file sample.gif. Right click that file, click Properties, click the Change button next to "Opens with:", then navigate to the executable that you would like to handle that file type.

File types

File Type Handler Locations


Setting the default wallpaper for desktop and lock screen

Modifying the default Wallpaper

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.

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.


Modifying the default Lock Screen Image

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.

First enable the lock screen with a reg add command:

C:\> reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Personalization" /v NoLockScreen /t REG_DWORD /d 0 /f

Run to enable the lock screen image on the sign-in window:

C:\> reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\System /v DisableLogonBackgroundImage" /t REG_DWORD /d 0 /f

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).