Ce projet désactive le message de popup "Unsupported Hardware" pendant les mises à jour Windows, et permet de continuer à installer des updates sur les systèmes Windows 7 et 8.1, équipés de processeurs Intel Kaby Lake, AMD Ryzen, ou tout autre processor non supporté.
Vous pouvez obtenir la dernière version stable ici !
Si vous vous sentez courageux, vous pouvez essayer le dernier build instable ici. À utiliser à vos propres risques !
Les packages d'installation ont été créés avec Advanced Installer avec une license open source. L'interface utilisateur intuitive d'Advanced Installer m'a permis de créer un installeur complet avec un minimum d'effort. Plus de détails ici !
Voir CONTRIBUTING.fr-FR.md.
Le changelog des mises à jour Windows KB4012218 and KB4012219 incluait le message suivant:
Activation de la détection de la génération de processeur et du support matériel quand le PC essaie de scanner ou télécharger grâce à Windows Update.
Ces updates ont marqué l'implémentation d'un changement de politique qu'ils avaient annoncé quelques temps auparavant, et dans lequel Microsoft énonçait qu'ils ne supporteraient plus Windows 7 et 8.1 pour les nouvelles générations de processeurs Intel, AMD et Qualcomm.
C'est un majestueux doigt d'honneur à tous ceux qui ont décidé de ne pas "upgrader" vers la bouse connue sous le nom de Windows 10, en particulier en considérant que le support étendu de Windows 7 et Windows 8.1 ne se terminera pas avant le 4 janvier 2020 et 10 janvier 2023 respectivement.
Cela affecte également des gens avec des processeurs Intel et AMD plus vieux ! J'ai reçu des rapports d'utilisateurs pour Intel Atom Z530, Intel Core i5-M 560, Intel Core i5-4300M, Intel Atom D525, Intel Pentium B940, et AMD FX-8350, tous empêchés de recevoir des updates.
Si vous êtes intéressés, vous pouvez lire mon écrit originel sur la découverte du check de CPU ici (en anglais).
De manière basique, dans le fichier wuaueng.dll
il y a deux fonctions IsDeviceServiceable(void)
et IsCPUSupported(void)
. IsDeviceServiceable(void)
est un wrapper au dessus de IsCPUSupported(void)
qui met en cache le résultat qu'il reçoit et le réutilise pour les appels suivants.
Mon patch tire avantage de comportement à mettre en cache le résultat en assignant la valeur de la "première exécution" à FALSE
et le résultat en cache à TRUE
.
- Au boot du système, la tâche planifiée wufuc s'exécute en tant qu'utilsateur
NT AUTHORITY\SYSTEM
wufuc
détermine dans quel groupe de processus hôte le service Windows Update est exécuté (typiquementnetsvcs
), et s'injecte lui-même à l'intérieur.- Une fois injecté, il applique un hook à
LoadLibraryEx
qui patchewuaueng.dll
automatiquement à la volée quand il est chargé. - Toute librairie
wuaueng.dll
précédemment chargée est aussi patchée.
- Aucun fichier système n'est modifié !
- Patch avec une base heuristique, ce qui signifie que cela devrait continuer de fonctionner même si d'autres updates sortent.
- Le langage C était le plus adapté.
- Pas de dépendances externes.