Similar to mini PCIe, we get into the fun little realm of manufacturer lock-in, specifically that your manufacturer may have a whitelist that only supports their brand of wireless cards. Do your research on your hardware to see if there's a whitelist.
The whitelist is as follows:
Lenovo(7th gen and older)
6th and 7th gen systems should have a BIOS update that remove the whitelist
The other thing to keep in mind is that M.2 wireless cards come in 2 variant:
Do your research to see what slot your hardware has(and don't mix up E key with mini PCIe).
Asus and Lenovo users should also see the Bluetooth section with regards to support, as 7th gen chipsets make things a bit more complicated.
Fenvi BCM94360NG(A+E Key, natively supported as based off of genuine Apple Airport card)
Dell DW1830 (A+E Key, quite wide so make sure your laptop has room)
Fenvi AC1200 (A+E Key, natively supported as based off of genuine Apple Airport card)
Dell DW1560 (A+E Key)
Lenovo Lite-On WCBN802B(04X6020)(E Key)
AzureWave AW-CB162NF(A+E Key)
Lenovo Foxconn T77H649(A+E Key)
Lite-On WCBN808B(A+E Key)
Dell DW1820A (A+E Key)
Note: The BCM94350ZAE chipset doesn't support power management correctly in macOS so needs to be disabled via property injection. This is not guaranteed to fix support on laptops, do not buy just for a laptop:
pci-aspm-default | Data | <00>
To find the PciRoot, run gfxutil in terminal and look for
14e4:43a3(PCI ID for the BCM94350ZAE):
All cards presented here besides the Fenvi and Apple Airport cards require the following:
BrcmPatchRAM3 for 10.14+ (must be paired with BrcmBluetoothInjector)
BrcmPatchRAM2 for 10.11-10.14
BrcmPatchRAM for 10.10 or older