正如我們此前所報道的那樣,微軟已經停止向基于“下一代處理器”的 Windows 7 / Windows 8.1 系統平臺推送更新(比如 英特爾 Kaby Lake 和 AMD Ryzen),甚至還誤傷了 AMD 家的六代 APU 。顯然,微軟極力希望大家升級到最新的 Windows 10 平臺。但是對于想停留在 Windows 7 / 8.1 環境中的七代酷睿用戶來說,其實還有一個繼續接收更新的變通方法。
一位名叫 zeffy 的 Github 開發人員發現,還是有辦法去突破微軟的封鎖的。
zeffy 先是下載了出現問題的 .msu 安裝包(其系統對應的是 windows6.1-kb4012218-x64_590943c04550a47c1ed02d3a040d325456f03663.msu),然后將它解壓出來、整理二進制文件、并與系統上已安裝的進行對比。
在經過大量的調查工作之后,他終于找到了罪魁禍首,它們是 —— IsDeviceServiceable(void) 和 IsCPUSupported(void) 。有鑒于此,zeffy 給出了如下解決方案:
① 給動態鏈接庫(dll)打補丁,將 0x26C948 的 dword_600002EE948 值(見此行)從 0x01 改為 0x00,以便 IsDeviceServiceable(void) 跳過整個實體,并立即回復 1(表明 CPU 可支持)。
—— 這是首要推薦的方法,但請注意只能在 Windows 7 x64 版本中使用。
② 給動態鏈接庫(dll)打補丁,清理 IsDeviceServiceable(void) 中所有高亮的指令(見此行),以啟用注冊表 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdateTestScan 下的 ForceUnsupportedCPU(類型為 REG_DWORD)。
—— 如果沒有,就自建一個,將設定值從 0x00000001(強制不支持 CPU)改為 0x00000000,以變更默認行為。之后可能需要重啟計算機,以應用此更改。
—— 需要注意但是,此行為暫無明文可證,未來版本中可能會被移除。
最后,修改有風險,操作需謹慎。為防意外,請不要輕易在生產環境中嘗試;且在修改 dll 文件前,請務必做好充分的備份工作。