Boot Camp Support Software · Intel Macs
Windows drivers for your Mac, without Boot Camp Assistant.
Type your Mac's model identifier and get the exact driver package Apple built for it. The file comes straight from Apple's servers. Unpack it, run Setup.exe in Windows, and your trackpad, keyboard, Wi‑Fi and audio work.
Find your model identifier
Every Mac has a short code like MacBookPro14,3. It's different from the marketing name, “MacBook Pro (15‑inch, 2017)”, and only the code tells you exactly which drivers fit. Pick whichever way is easiest.
System Information
- Hold ⌥ Option and click the Apple menu.
- Click System Information…
- Under Hardware, read Model Identifier.
- Model Name:
- MacBook Pro
- Model Identifier:
- MacBookPro14,3
- Processor Name:
- Quad-Core Intel Core i7
One command
- Open Terminal (Spotlight: ⌘ Space, type “Terminal”).
- Paste this and press Return:
sysctl -n hw.model
It prints the identifier, for example MacBookPro14,3.
PowerShell
- Right-click Start and open Terminal or PowerShell.
- Paste this and press Enter:
(Get-CimInstance Win32_ComputerSystem).Model
Windows reads the same code from the Mac's firmware.
Identifiers like Mac14,2, MacBookAir10,1 or MacBookPro17,1 mean Apple silicon (M1 or newer). Those Macs can't run Boot Camp, so Apple never made Windows drivers for them. MDfW covers Intel Macs from 2006 to 2020.
Enter it and download
Type the identifier into the driver lookup at the top, exactly as shown, comma included. Upper or lower case doesn't matter.
The lookup matches it against every Boot Camp package Apple has published, as soon as you type.
Your browser saves BootCampESD.pkg from Apple, usually to your Downloads folder.
If Windows is already installed, put the file somewhere you can reach it from there.
If several packages list your model, MDfW picks the newest one. That's the same choice Boot Camp Assistant makes.
Get Setup.exe out of the package
The .pkg is a macOS installer, so Windows can't open it directly. The drivers sit three layers deep. Unpack them on whichever computer you have, then run Setup.exe from Windows.
- Install 7-Zip
It's free and opens Apple's package formats. Get it at 7-zip.org.
- Unpack the package
Right-click
BootCampESD.pkg› 7-Zip › Extract to "BootCampESD\". - Unpack the payload
In that folder, extract
Payloadthe same way. If you then see a file namedPayload~, extract that too. You end up withLibrary\Application Support\BootCamp\WindowsSupport.dmg. - Unpack the disk image
Extract
WindowsSupport.dmg. You get theBootCampand$WinPEDriver$folders. - Install
Open
BootCamp, right-clickSetup.exe› Run as administrator, and restart when it's done.
Prefer the command line? With 7-Zip installed, this does steps 2–4 in one go from the folder holding the package:
# PowerShell
$7z = "$env:ProgramFiles\7-Zip\7z.exe"
& $7z x -y -obc BootCampESD.pkg
& $7z x -y -obc bc\Payload
if (Test-Path bc\Payload~) { & $7z x -y -obc bc\Payload~ }
& $7z x -y -oWindowsSupport (Get-ChildItem bc -Recurse -Filter WindowsSupport.dmg).FullName
start WindowsSupport\BootCamp- Open Terminal and go to your Downloads
cd ~/Downloads
- Unpack the package and its payload
macOS includes everything needed.
pkgutil --expand BootCampESD.pkg bc mkdir bc_files && tar -xzf bc/Payload -C bc_files open "bc_files/Library/Application Support/BootCamp/WindowsSupport.dmg"
- Copy the drivers to a USB stick
A WindowsSupport disk opens in Finder. Copy its
BootCampand$WinPEDriver$folders to a USB stick formatted as ExFAT or MS-DOS (FAT). Windows can't read Mac-formatted drives. - Install in Windows
Plug the stick in, open
BootCamp, right-clickSetup.exe› Run as administrator, and restart.
This one script unpacks the package on any system. On a Mac it uses built-in tools. On Windows or Linux it uses 7-Zip. Save it as mdfw_extract.py next to the package, then run:
python3 mdfw_extract.py BootCampESD.pkg WindowsSupport
It prints the path to Setup.exe when it's done. Python 3.8 or newer, no extra packages.
#!/usr/bin/env python3
"""MDfW: unpack BootCampESD.pkg into the Windows driver folder (with Setup.exe).
python3 mdfw_extract.py BootCampESD.pkg [output_folder]
macOS: uses the built-in pkgutil, tar and hdiutil.
Windows / Linux: needs 7-Zip (7z on PATH, or installed in C:\\Program Files\\7-Zip).
Layout: BootCampESD.pkg (xar) -> Payload (gzip cpio) -> WindowsSupport.dmg -> BootCamp\\Setup.exe
"""
import os
import platform
import plistlib
import shutil
import subprocess
import sys
import tempfile
def find_7z():
for name in ("7z", "7zz", "7za"):
path = shutil.which(name)
if path:
return path
for base in (os.environ.get("ProgramFiles"), os.environ.get("ProgramFiles(x86)")):
if base and os.path.exists(os.path.join(base, "7-Zip", "7z.exe")):
return os.path.join(base, "7-Zip", "7z.exe")
sys.exit("7-Zip not found. Install it from https://www.7-zip.org and run again.")
def find_file(root, name):
for dirpath, _, files in os.walk(root):
if name in files:
return os.path.join(dirpath, name)
return None
def extract_drivers(pkg_path, out_dir):
"""Unpack pkg_path into out_dir and return the path to Setup.exe."""
os.makedirs(out_dir, exist_ok=True)
work = tempfile.mkdtemp(prefix="mdfw_")
try:
if platform.system() == "Darwin":
subprocess.run(["pkgutil", "--expand", pkg_path, os.path.join(work, "pkg")], check=True)
subprocess.run(["tar", "-xzf", os.path.join(work, "pkg", "Payload"), "-C", work], check=True)
dmg = find_file(work, "WindowsSupport.dmg")
info = plistlib.loads(subprocess.run(
["hdiutil", "attach", dmg, "-readonly", "-nobrowse", "-mountrandom", work, "-plist"],
check=True, capture_output=True).stdout)
mount = next(e["mount-point"] for e in info["system-entities"] if "mount-point" in e)
try:
shutil.copytree(mount, out_dir, dirs_exist_ok=True)
finally:
subprocess.run(["hdiutil", "detach", mount, "-quiet"])
else:
sevenzip = find_7z()
# pkg -> Payload -> Payload~ (cpio) -> WindowsSupport.dmg
for arc in ("BootCampESD.pkg", "Payload", "Payload~"):
src = pkg_path if arc == "BootCampESD.pkg" else os.path.join(work, arc)
if os.path.exists(src):
subprocess.run([sevenzip, "x", "-y", "-o" + work, src],
check=True, stdout=subprocess.DEVNULL)
dmg = find_file(work, "WindowsSupport.dmg")
if not dmg:
sys.exit("WindowsSupport.dmg was not found inside the package.")
subprocess.run([sevenzip, "x", "-y", "-o" + out_dir, dmg],
check=True, stdout=subprocess.DEVNULL)
finally:
shutil.rmtree(work, ignore_errors=True)
return find_file(out_dir, "Setup.exe")
if __name__ == "__main__":
if len(sys.argv) not in (2, 3):
sys.exit(__doc__)
pkg = os.path.abspath(sys.argv[1])
out = os.path.abspath(sys.argv[2] if len(sys.argv) == 3 else "WindowsSupport")
setup = extract_drivers(pkg, out)
print(f"Drivers extracted to: {out}")
print(f"Run this in Windows: {setup}" if setup else "Setup.exe not found in the output.")
Every supported model
Click an identifier to look it up. Within each family, a higher first number usually means a newer Mac.