78 lines
5.5 KiB
Markdown
78 lines
5.5 KiB
Markdown
# wufuc [](https://ci.appveyor.com/project/zeffy/wufuc) [](https://gratipay.com/wufuc/)
|
|
|
|
[English](README.md) | [русский](README.ru-RU.md) | **Français**
|
|
|
|
[](https://pledgie.com/campaigns/34055)
|
|
|
|
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é.
|
|
|
|
## Téléchargements [](../../releases)
|
|
|
|
### Vous pouvez obtenir la dernière version stable [ici](../../releases/latest) !
|
|
|
|
Si vous vous sentez courageux, vous pouvez essayer le dernier build instable [ici](https://ci.appveyor.com/project/zeffy/wufuc). **À utiliser à vos propres risques !**
|
|
|
|
## Sponsors
|
|
|
|
### [Advanced Installer](http://www.advancedinstaller.com/)
|
|
|
|
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 !](http://www.advancedinstaller.com/)
|
|
|
|
## Reporter un problème [](https://isitmaintained.com/project/zeffy/wufuc)
|
|
|
|
Voir [CONTRIBUTING.md](CONTRIBUTING.fr-FR.md).
|
|
|
|
## Préface
|
|
|
|
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](https://blogs.windows.com/windowsexperience/2016/01/15/windows-10-embracing-silicon-innovation/) 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](../../issues/7), [Intel Core i5-M 560](../../issues/23), [Intel Core i5-4300M](../../issues/24), [Intel Atom D525](../../issues/34), [Intel Pentium B940](../../issues/63), et [AMD FX-8350](../../issues/32), tous empêchés de recevoir des updates.
|
|
|
|
## Méchant Microsoft !
|
|
|
|
Si vous êtes intéressés, vous pouvez lire mon écrit originel sur la découverte du check de CPU [ici (en anglais)](../../tree/old-kb4012218-19).
|
|
|
|
## Comment ça marche
|
|
|
|
De manière basique, dans le fichier `wuaueng.dll` il y a deux fonctions `IsDeviceServiceable(void)`](https://gist.github.com/zeffy/e5ec266952932bc905eb0cbc6ed72185) et [`IsCPUSupported(void)`](https://gist.github.com/zeffy/1a8f8984d2bec97ae24af63a76278694). `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é (typiquement `netsvcs`), et s'injecte lui-même à l'intérieur.
|
|
- Une fois injecté, il applique un hook à `LoadLibraryEx` qui patche `wuaueng.dll` automatiquement à la volée quand il est chargé.
|
|
- Toute librairie `wuaueng.dll` précédemment chargée est aussi patchée.
|
|
|
|
### Plusieurs améliorations de mes méthodes par script batch :
|
|
|
|
- **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.
|
|
|
|
## FAQ
|
|
|
|
### Comment installer/désinstaller ?
|
|
|
|
Téléchargez simplement la [dernière version](../../releases/latest), et extrayez l'archive `wufuc` dans un dossier permanent (comme par exemple `C:\Program Files\wufuc`) puis exécutez `install_wufuc.bat` en tant qu'administrateur.
|
|
|
|
Pour désinstaller, exécutez `uninstall_wufuc.bat` en tant qu'administrateur.
|
|
|
|
### Comment mettre à jour quand une nouvelle version sort ?
|
|
|
|
À moins que cela ne soit précisé différemment, vous devriez avoir à faire :
|
|
|
|
- Exécutez `uninstall_wufuc.bat` en tant qu'administrateur.
|
|
- Copier les nouveaux fichiers dans le dossier permanent (comme par exemple `C:\Program Files\wufuc`) en écrasant les anciens fichiers.
|
|
- Exécutez `install_wufuc.bat` en tant qu'administrateur.
|
|
|
|
### Comment enlever l'ancien patch des versions < 0.6 et utiliser celui-ci à la place >
|
|
|
|
J'ai inclus un script appelé `repair_wuaueng.dll.bat`. Quand vous l'exécutez, il va lancer une commande `sfc scan` et rétablir tous les changements effectués à `wuaueng.dll`.
|