Skip to content

Commit 8900860

Browse files
author
AMIT
committed
Initial commit
0 parents  commit 8900860

File tree

71 files changed

+4004
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+4004
-0
lines changed

README.md

+93
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# EVA
2+
3+
A highly structured & technical hardware, BIOS & Windows optimization guide dedicated for performance, privacy & latency enthusiasts.
4+
5+
Contact: https://twitter.com/amitxv
6+
7+
8+
[![Discord](https://discord.com/api/guilds/994887453599076422/widget.png?style=shield)](https://discord.gg/yrAnChXXZw)
9+
10+
## Content Overview
11+
12+
- [Introduction](#introduction)
13+
- [Abstract](#abstract)
14+
- [Requirements](#requirements)
15+
- [Physical Setup](#physical-setup)
16+
- [Pre-Installation Instructions](#pre-installation-instructions)
17+
- [Post-Installation Instructions](#post-installation-instructions)
18+
- [Research](#research)
19+
20+
## Introduction
21+
22+
EVA is no longer a custom Windows ISO. Instead, i have created a guide in hope of teaching you how to create your own image & optimize other aspects of your setup. Nothing in this guide is branded, i have chosen to use the old project's name so that it acts as a direct replacement. On that note, i advise against using the custom images from the old project as they have been recreated with malicious content by other people.
23+
24+
The setup & build process is similar to [AME's](https://ameliorated.info) in terms of debloating via Linux, i have used elements of their shell script in my own.
25+
26+
You should follow this guide with the mindset of configuring something (e.g usb port layout, graphics driver etc) once & do not intend on re-configuring it later on. The guide is structured so that modifications can be made without reverting other changes in the future. Configure everything once in stone & leave as is.
27+
28+
It is important to note that you should be comfortable with reinstalling Windows if anything goes wrong.
29+
30+
## Abstract
31+
32+
[What is System Latency | NVIDIA GeForce](https://www.youtube.com/watch?v=h69JR51pZbU)
33+
34+
[Why System Latency Matters - ft n0thing | NVIDIA GeForce](https://www.youtube.com/watch?v=muvToLXJSks)
35+
36+
[Applied Sciences Group: High Performance Touch | Microsoft Research](https://youtu.be/vOvQCPLkPt4?t=51)
37+
38+
The objective is to end up with a relatively *bare*, reliable & consistent system by tuning the BIOS & operating system to reduce unnecessary interrupts & [context switching](https://en.wikipedia.org/wiki/Context_switch), prevent other applications from stealing execution time from our realtime application (games) & most importantly, correctly configuring our hardware.
39+
40+
Some elements of this guide are not directly performance related & are just personalization related as i cover configuring the operating system from start to finish. Very rarely, some elements may also be highly opinionated however i have tried my best to provide technical references, evidence, my own research & a valid justification to the information provided to prevent making changes that would otherwise make your system perform worse than stock. Feel free to challange any given information so that it can be reviewed.
41+
42+
The guidance is currently updated & have been tested on the following versions of Windows:
43+
44+
- Windows 7 SP1
45+
46+
- Windows 10 21H2
47+
48+
49+
## Requirements
50+
51+
- USB Storage Device (8gb minimum)
52+
- [Ventoy]
53+
- [Linux Mint Xfce Edition]
54+
- Familiarity with the command-line interface (or the will to learn!)
55+
- Ethernet & at least one SSD/NVME (wake up, it's not 2006 anymore)
56+
57+
## Physical Setup
58+
59+
- See [docs/physical-setup.md]
60+
61+
## Pre-Installation Instructions
62+
63+
- See [docs/pre-install.md]
64+
65+
## Post-Installation Instructions
66+
67+
- See [docs/post-install.md]
68+
## Research
69+
70+
- See [docs/research.md]
71+
72+
## Credits
73+
74+
The following projects & people deserve recognition for their research, knowledge & overall contribution to the community. Please note that this guide may contain information similar to those of the projects listed below however it is not my intention to directly copy from them, in some circumstance it is unavoidable.
75+
76+
- [AME](https://ameliorated.info/)
77+
- [Bored](https://github.com/BoringBoredom/PC-Optimization-Hub)
78+
- [Calypto](https://docs.google.com/document/d/1c2-lUJq74wuYK1WrA_bIvgb89dUN0sj8-hO3vqmrau4/edit)
79+
- [Phlegm](https://twitter.com/getggos)
80+
- [Revision](https://sites.google.com/view/meetrevision)
81+
- [Timecard](https://github.com/djdallmann/GamingPCSetup/)
82+
83+
[Ventoy]: https://github.com/ventoy/Ventoy/releases
84+
85+
[Linux Mint Xfce Edition]: https://linuxmint.com/edition.php?id=294
86+
87+
[docs/physical-setup.md]: ./docs/physical-setup.md
88+
89+
[docs/pre-install.md]: ./docs/pre-install.md
90+
91+
[docs/post-install.md]: ./docs/building.md
92+
93+
[docs/research.md]: ./docs/research.md

debloat.sh

+91
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
cd "$(dirname "$0")"
2+
3+
if [[ -d "Program Files" ]] && [[ -d "Windows/System32" ]]
4+
then
5+
echo info: valid windows installation detected, continuing
6+
else
7+
echo error: directory does not appear to be the root directory of a windows installation
8+
echo info: exiting
9+
exit 1
10+
fi
11+
12+
wildcard_names=(
13+
"flashplayer"
14+
"backgroundtaskhost"
15+
"gamebarpresencewriter"
16+
"mobsync"
17+
"smartscreen"
18+
"wsclient"
19+
"wscollect"
20+
"searchui"
21+
"comppkgsrv"
22+
"upfc"
23+
"applocker"
24+
"autologger"
25+
"clipsvc"
26+
"clipup"
27+
"DeliveryOptimization"
28+
"DeviceCensus"
29+
"diagtrack"
30+
"dmclient"
31+
"dosvc"
32+
"EnhancedStorage"
33+
"hotspot"
34+
"invagent"
35+
"msra"
36+
"sihclient"
37+
"slui"
38+
"startupscan"
39+
"storsvc"
40+
"usoapi"
41+
"usoclient"
42+
"usosvc"
43+
"WaaS"
44+
"windowsmaps"
45+
"windowsupdate"
46+
"wsqmcons"
47+
"wua"
48+
"wus"
49+
"defender"
50+
"onedrive"
51+
"mcupdate_AuthenticAMD"
52+
"mcupdate_GenuineIntel"
53+
"skype"
54+
"microsoftedge"
55+
"edge"
56+
"usocore"
57+
"usocoreworker"
58+
"securitycenter"
59+
)
60+
61+
rm -rf "Program Files/Windows Defender"
62+
rm -rf "Program Files (x86)/Microsoft"
63+
rm -rf "Program Files (x86)/Windows Defender"
64+
rm -rf "Program Files/Windows Defender Advanced Threat Protection"
65+
rm -rf Windows/System32/wua*
66+
rm -rf Windows/System32/wups*
67+
rm -rf "Windows/diagnostics/system/Apps"
68+
rm -rf "Windows/diagnostics/system/WindowsUpdate"
69+
rm -rf "Windows/System32/smartscreenps.dll"
70+
rm -rf "Windows/System32/SecurityHealthAgent.dll"
71+
rm -rf "Windows/System32/SecurityHealthService.exe"
72+
rm -rf "Windows/System32/SecurityHealthSystray.exe"
73+
rm -rf Windows/WinSxS/Temp/PendingDeletes/*
74+
75+
for i in "${wildcard_names[@]}"
76+
do
77+
echo info: removing $i
78+
find . -iname *$i* -exec rm -rf "{}" \;
79+
done
80+
81+
echo info: searching for files that are supposed to be removed
82+
echo info: if anything appears while searching here, it is likely that the process failed
83+
84+
for i in "${wildcard_names[@]}"
85+
do
86+
echo info: searching for $i
87+
find . -iname *$i*
88+
done
89+
90+
echo info: done
91+
exit 0

docs/building.md

+202
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
# Build Instructions
2+
3+
## Content Overview
4+
5+
- [Requirements](#requirements)
6+
- [Downloading an Image](#downloading-an-image)
7+
- [Preparing the Build Environment](#preparing-the-build-environment)
8+
- [Stripping Non-Essential Editions](#stripping-non-essential-editions)
9+
- [Mounting the Image](#mounting-the-image)
10+
- [Integrating Updates](#integrating-updates)
11+
- [Enable .NET 3.5](#enable-net-35)
12+
- [Enable Legacy Components for older games](#enable-legacy-components-for-older-games)
13+
- [Integrating & Obtaining Drivers](#integrating--obtaining-drivers)
14+
- [Integrating Required Files](#integrating-required-files)
15+
- [Remove Provisioned Appx Bloatware](#remove-provisioned-appx-bloatware)
16+
- [Replacing Wallpapers](#replacing-wallpapers)
17+
- [Unmount & Commit](#unmount--commit)
18+
- [Insert DISM Apply-Image Script](#insert-dism-apply-image-script)
19+
- [Convert to ISO](#convert-to-iso)
20+
21+
## Requirements
22+
23+
- [7-Zip](https://www.7-zip.org)
24+
- [win-wallpaper](https://github.com/amitxv/win-wallpaper/releases)
25+
- Place the ``win-wallpaper.exe`` in ``C:\Windows``
26+
- Deployment Tools from the [Windows ADK](https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install)
27+
28+
## Downloading an Image
29+
30+
- Use the [download links spreadsheet](https://docs.google.com/spreadsheets/d/1zTF5uRJKfZ3ziLxAZHh47kF85ja34_OFB5C5bVSPumk/edit#gid=0) to download stock Windows images.
31+
32+
- For Windows 7 i recommend ``en_windows_7_professional_with_sp1_x64_dvd_u_676939.iso``
33+
34+
- Ensure to cross-check the hashes for the image with other online sources such as the [adguard hash database](https://files.rg-adguard.net/version/f0bd8307-d897-ef77-dbd6-216fefbe94c5?lang=en-us) to verify that the image is genuine & not corrupted
35+
36+
## Preparing the Build Environment
37+
38+
- Extract the image to a directory of your choice with 7-Zip. In the examples below, i have chosen ``C:\ISO``
39+
40+
- Open CMD as Administrator & configure these variables below. These variables are temporary for this session & will be discarded if you close the terminal window so ensure to keep it open throughout the build process.
41+
42+
```bat
43+
set "EXTRACTED_IMAGE=C:\ISO"
44+
45+
set "MOUNT_DIR=C:\temp"
46+
47+
if exist "%MOUNT_DIR%" (rd /s /q "%MOUNT_DIR%")
48+
49+
mkdir "%MOUNT_DIR%"
50+
```
51+
52+
- If the environment was configured correctly, these two commands below should return ``true``.
53+
54+
```bat
55+
if exist "%EXTRACTED_IMAGE%" (echo true) else (echo false)
56+
57+
if exist "%MOUNT_DIR%" (echo true) else (echo false)
58+
```
59+
60+
## Stripping Non-Essential Editions
61+
62+
- Remove every edition except the pro edition, by retrieving the indexes of every other edition & removing it with the commands below.
63+
64+
```bat
65+
DISM /Get-WimInfo /WimFile:"%EXTRACTED_IMAGE%\sources\install.wim"
66+
DISM /Delete-Image /ImageFile:"%EXTRACTED_IMAGE%\sources\install.wim" /Index:[INDEX]
67+
```
68+
69+
- Once completed, the only edition available should be the pro edition at index 1.
70+
71+
## Mounting the Image
72+
73+
- Mounting the image with the command below will allow us to carry out a few tasks.
74+
75+
```bat
76+
DISM /Mount-Wim /WimFile:"%EXTRACTED_IMAGE%\sources\install.wim" /Index:1 /MountDir:"%MOUNT_DIR%"
77+
```
78+
79+
## Integrating Updates
80+
81+
- Windows 7 Recommended Updates:
82+
83+
```
84+
KB2670838 - platform update + directX 11.1
85+
KB2864202 - required for the generic USB driver (if you use it)
86+
KB4474419 - SHA signing update
87+
KB4490628 - SHA signing update
88+
KB2990941 - NVME/M.2
89+
KB3087873 - NVME/M.2
90+
```
91+
92+
- Windows 10 Recommended Updates:
93+
94+
- Download the latest non-security update along with the servicing stack for that specific update. Use the official [Windows Update history page](https://support.microsoft.com/en-us/topic/windows-10-update-history-93345c32-4ae1-6d1c-f885-6c0b718adf3b) to get the relevant updates
95+
96+
- Download the updates from the [Microsoft Update Catalog](https://www.catalog.update.microsoft.com/Home.aspx) by searching for the KB identifier. Place the updates somewhere easily accessible such as ``C:\updates``.
97+
98+
- Integrate the updates into the install wim with the command below.
99+
100+
- Note: The Servicing Stack must be installed before installing the Cumulative Update, this generally only applies to Windows 10
101+
102+
```bat
103+
DISM /Image:"%MOUNT_DIR%" /Add-Package /PackagePath="C:\updates\KB2670838.msu"
104+
```
105+
106+
## Enable .NET 3.5
107+
108+
- Windows 10+ Only:
109+
110+
```bat
111+
DISM /Image:"%MOUNT_DIR%" /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:"%EXTRACTED_IMAGE%\sources\sxs"
112+
```
113+
114+
## Enable Legacy Components for older games
115+
116+
- Windows 10+ Only:
117+
118+
```bat
119+
DISM /Image:"%MOUNT_DIR%" /Enable-Feature /FeatureName:DirectPlay /All
120+
```
121+
122+
## Integrating & Obtaining Drivers
123+
124+
- This is generally required for users installing Windows 7 to integrate USB/ NVME drivers so that setup can proceed.
125+
126+
- Place all of the drivers to be integrated somewhere easily accessible such as ``C:\drivers`` & use the command below to integrate them into the install wim.
127+
128+
```bat
129+
DISM /Image:"%MOUNT_DIR%" /Add-Driver /Driver:"C:\drivers" /Recurse
130+
```
131+
132+
## Integrating Required Files
133+
134+
- Open the mounted directory with the command below.
135+
136+
```bat
137+
explorer "%MOUNT_DIR%"
138+
```
139+
140+
- Clone the repository & place the ``prerequisites`` folder & ``debloat.sh`` in the mounted directory.
141+
142+
## Remove Provisioned Appx Bloatware
143+
144+
- Windows 10+ Only.
145+
146+
- This command removes the majority of Windows Apps such as Microsoft Store, Maps, Camera etc that nobody uses & potentially jeopardizes privacy.
147+
148+
```bat
149+
for /f "tokens=3" %i in ('DISM /Image:"%MOUNT_DIR%" /Get-ProvisionedAppxPackages ^| findstr "PackageName"') do (DISM /Image:"%MOUNT_DIR%" /Remove-ProvisionedAppxPackage /PackageName:%i)
150+
```
151+
152+
## Replacing Wallpapers
153+
154+
- Run the command below to replace all backgrounds & user profile images with solid black images.
155+
156+
- Note: Also use the ``--win7`` argument if building Windows 7
157+
158+
```bat
159+
win-wallpaper.exe --dir "%MOUNT_DIR%" --rgb #000000
160+
```
161+
162+
## Unmount & Commit
163+
164+
- Run the command below to save the changes to the image.
165+
166+
```bat
167+
DISM /Unmount-wim /MountDir:"%MOUNT_DIR%" /Commit
168+
```
169+
170+
## Replace Windows 7 Boot Wim
171+
172+
- Windows 7 Only:
173+
174+
- As you are aware, Windows 7 lacks driver support for modern hardware & you should have already integrated drivers into the install.wim however we have not yet touched the boot.wim (installer). We *could* integrate the same drivers into the boot.wim as we did before but in my experience this still leads to a problematic installation. Instead, we can use the Windows 10 boot.wim which already has modern hardware support to install our Windows 7 install.wim.
175+
176+
- The process is quite simple:
177+
178+
- Download the [latest Windows 10 image](https://www.microsoft.com/en-gb/software-download/windows10) & extract it, i would recommend renaming the extracted folder to avoid confusion
179+
180+
- Replace ``sources\install.wim`` in the extracted Windows 10 image with the Windows 7 ``install.wim``
181+
182+
## Insert DISM Apply-Image Script
183+
184+
- Open the extracted directory with the command below.
185+
186+
```bat
187+
explorer "%EXTRACTED_IMAGE%"
188+
```
189+
190+
- Place the ``install.bat`` script in the directory.
191+
192+
## Convert to ISO
193+
194+
- Use the following commands to convert the extracted image to a ISO which will be created on the desktop:
195+
196+
```bat
197+
set "OSCDIMG=C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg\oscdimg.exe"
198+
199+
"%OSCDIMG%" -lfinal_iso -m -u2 -b"%EXTRACTED_IMAGE%\boot\etfsboot.com" "%EXTRACTED_IMAGE%" "%userprofile%\desktop\final_iso.iso"
200+
201+
"%OSCDIMG%" -n -d -m "%EXTRACTED_IMAGE%" "%userprofile%\final_iso.iso"
202+
```

0 commit comments

Comments
 (0)