Disables the "Unsupported Hardware" message in Windows Update, and allows you to continue installing updates on Windows 7 and 8.1 systems with Intel Kaby Lake, AMD Ryzen, or other unsupported processors.
Latest stable build - Most people will want this version.
Unstable builds - Probably contains bugs; do not report issues with these builds.
Click here for donation options!
The release notes for Windows updates KB4012218 and KB4012219 included the following:
Enabled detection of processor generation and hardware support when PC tries to scan or download updates through Windows Update.
These updates marked the implementation of a policy change they announced some time ago, where Microsoft stated that they would not be supporting Windows 7 or 8.1 on next-gen Intel, AMD and Qualcomm processors. This was essentially a big middle finger to anyone who decides to not "upgrade" to the steaming pile of 💩 known as Windows 10, especially considering the extended support periods for Windows 7 and 8.1 won't be ending until January 4, 2020 and January 10, 2023 respectively.
I've received user reports of the following CPUs all being blocked from receiving updates:
- Intel Atom Z530
- Intel Atom D525
- Intel Core i5-M 560
- Intel Core i5-4300M
- Intel Pentium B940
- AMD FX-8350
- AMD Turion 64 Mobile Technology ML-34
If you are interested, you can read my original write up on discovering the CPU check here.
- Enables Windows Update on PCs with unsupported processors.
- Written in C, the best programming language. 😎
- Completely free (as in freedom) software.
- Does not modify any system files.
- Byte pattern-based patching, which means it will usually keep working even after new updates come out.
- No dependencies.
Basically, inside a system file called wuaueng.dll
there are two functions responsible for the CPU check: IsDeviceServiceable(void)
and IsCPUSupported(void)
.
IsDeviceServiceable
simply calls IsCPUSupported
once, and then re-uses the result that it receives on subsequent calls.
My patch takes advantage of this behavior by patching a couple of boolean values and basically making Windows Update think that it has already checked your processor, and the result was that it is indeed supported.
- The installer registers a scheduled task that automatically starts wufuc on system boot/user log on.
- Depending on how the Windows Update service is configured to run, wufuc will:
- Shared process: inject itself into the service host process that Windows Update will run in when it starts.
- Own process: wait for the Windows Update service to start and then inject into it.
- After that, wufuc will install some API hooks when appropriate:
LoadLibraryExW
hook will automatically hook theIsDeviceServiceable()
function insidewuaueng.dll
when it is loaded.RegQueryValueExW
hook is necessary to provide compatibility with UpdatePack7R2. This hook not applied whenwuauserv
is configured to run in its own process.
There is a tutorial on the Advanced Installer website that explains how to do this.
install_wufuc.bat
and uninstall_wufuc.bat
both support two command line parameters that can be used alone, or combined to change the behavior of the scripts:
/NORESTART
- Automatically declines rebooting after the setup finishes./UNATTENDED
- Skips all prompts for user interaction, and automatically restarts unless/NORESTART
is also specified.
These must be used from an elevated command line prompt.
This only applies to wufuc version 0.8.0.x, which was only available for download for a short period of time. Other versions are unaffected.
There was a fundamental issue with the method I tried using in this version that caused very serious system instability, such as User Account Control breaking, getting a black screen with just a cursor at boot or after logging out, or very slow overall system performance from multiple services crashing repeatedly which would eventually end in a blue screen of death. Many of these issues unfortunately made uninstalling wufuc nearly impossible. I apologize for any inconvenience this version of wufuc may have caused.
- Boot into Safe Mode with Command Prompt.
- In the command prompt type
regedit
and press enter. - Navigate to the key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
- Expand the
Image File Execution Options
tree. - Locate the
svchost.exe
sub key, right-click it and press Delete. - Reboot, and you should be able to log in normally again.
- Open Add and Remove Programs, locate and run the normal wufuc uninstaller to complete the removal process.
The installer packages are created with Advanced Installer using an open source license. Advanced Installer's intuitive and friendly user interface allowed me to quickly create a feature complete installer with minimal effort. Check it out!
- Wen Jia Liu (@wj32) for his awesome program Process Hacker which has been absolutely instrumental in the development of wufuc, and also for his
phnt
headers. - Duncan Ogilvie (@mrexodia) for his
patternfind.cpp
algorithm from x64dbg.