Disabling soldered Wi-Fi in software

fox8091 · October 19, 2023

Laptops with soldered Wi-Fi chipsets can be a huge pain, as when the Wi-Fi chipset dies, it renders the machine near unusable. This was the case for a system owned by a friend of mine, leading to consistent hangs during the boot process under Windows and kernel hangs under Linux. They managed to solve the issue for Linux by blacklisting the kernel driver (ath10k_pci in the case of the Qualcomm Atheros QCA6174 in their system), however, they were unable to solve the issue under Windows. Given that I have decent experience with Windows internals, and have previously dealt with device blacklisting as used for Hackintosh setups (macOS running on non-Apple hardware), I offered to help.

Laptop failing to boot

My first thought was to block driver installation for the affected device with the PreventInstallationOfMatchingDeviceIDs Group Policy. This allowed Windows to boot, however, it immediately threw a MACHINE_CHECK_EXCEPTION BSOD when connected to the internet due to Windows attempting to probe the device during Windows Update. My next idea was to blacklist Windows driver updates via DriverSearchPlaces_SearchOrderConfiguration (Or more accurately in this case, by setting the backing registry key HKLM\SOFTWARE\Policies\Microsoft\Windows\DriverSearching\SearchOrderConfig to 0). While both of these seemed to help, neither entirely prevented Windows Update from attempting to install drivers for the Wi-Fi card. To deal with this, an additional Windows Update for Business Group Policy, ExcludeWUDriversInQualityUpdate, needed to be enabled. Following this, the laptop happily booted into Windows, even when connected to the internet.

Laptop booted into Windows

All in all, this was a fun deep-dive into Windows policy options, and a great exercise in working around hardware issues in software. If you happen to face similar issues, the registry file to enable these tweaks is provided here. Do note however that this is not entirely plug and play, as PCI\\VEN_168C&DEV_003E must be replaced with the hardware ID for your Wi-Fi chipset.

If you have any questions or comments regarding this endeavour, please feel free to reach out via the email provided at the bottom of the page.