As you may already know, Microsoft has locked the ability to receive updates for Intel's Kaby Lake and AMD's Ryzen CPUs owners for those who have Windows 7 or Windows 8.1 installed with these CPUs. This is a very unpleasant move from the software corporation for users who have no desire to accept the upgrade to Windows 10. Here is a trick to bypass this limitation and install all updates including the ones that are prevented from being installed on such devices.
Microsoft ended mainstream support for Windows 7 in January 2015. End of mainstream support means the operating system receives security updates but not minor functionality changes. Windows 8.1 is still under mainstream support but Microsoft is ditching customers of this operating system entirely with this hostile move. Microsoft wants everyone running Windows 10 as soon as possible whereas many Windows users have no plans to ever use Windows 10, not even in the future. Once their current hardware stops working, they will be forced to install and use Windows 10 to remain secure and protected.
Many users are not happy with this restrictive policy. A GitHub developer, "zeffy", decided to change this situation. He discovered the ability to install the "locked" update packages on modern hardware by patching some files. On his GitHub page, he has described in detail how he discovered special programming functions, 'IsDeviceServiceable(void)' and 'IsCPUSupported(void)', which are located in the wuaueng.dll DLL library included in the OS. These functions perform a hardware check and are responsible for locking out the CPU so updates cannot be installed.
The author provides ready-to-use patches to "unlock" your Intel Kaby Lake or AMD Ryzen CPU-based PC with Windows 7 or Windows 8.1 installed. Here are the instructions:
Tip: Here's how to tweak your PC to ensure top performance for a specific type of task, be it gaming, document work or something else.
IsCPUSupported(void) is only ever called by IsDeviceServiceable(void), which is called by five other functions. Luckily, there are a couple of easy ways to kill this CPU check.
- Patch wuaueng.dll and change dword_600002EE948 which is at file offset 0x26C948, from 0x01 to 0x00. This makes IsDeviceServiceable(void) jump over its entire body and return 1 (supported CPU) immediately. This is my preferred method. Note: These offsets are only for the Windows 7 x64 version.
- Patch wuaueng.dll and nop out all the instructions highlighted in IsDeviceServiceable(void), this will enable the usage of the ForceUnsupportedCPU of type REG_DWORD under the Registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Test\Scan (you will most likely have to create this registry key). Set this value to 0x00000001 to force unsupported CPUs, and back to 0x00000000 to change the behaviour back to default. You will probably need to restart your PC or restart the wuauserv service in order for changes to apply. This behaviour is undocumented and could be removed in future updates.
The only downside of these solutions is that you have to re-apply a new patch whenever wuaueng.dll gets updated.
To grab the patches, go to the zeffy's GitHub page and read the introduction carefully.
Keep in mind that this is a temporary solution. Unquestionably, Microsoft will "fix" this ability as soon as possible and lock the Windows Update ability with a more complicated implementation. The company is not interested in supporting Windows 7 or Windows 8.1 on recent CPUs even if they run just fine.