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 is essentially a big middle finger to anyone who decides to not "upgrade" to Windows 10, and it is especially unfortunate considering the extended support periods for Windows 7 and 8.1 won't be ending until January 4, 2020 and January 10, 2023 respectively.
Some people with older Intel and AMD processors are also affected! 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 Core i7-4930K
- Intel Pentium B940
- AMD FX-6300
- 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.
The tl;dr version is basically, inside a system file named 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.
- 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.
See FAQ.md.
This is a basic run-down of what wufuc does when you install it:
- 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.
- Once injected, wufuc will hook some functions where 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.
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, and also for his phnt headers.
- Duncan Ogilvie (@mrexodia) for x64dbg, its
patternfind.cpp
algorithm, and its issue template which I adapted for this project. - Tsuda Kageyu (@TsudaKageyu) for his excellent minhook library.