三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Brigadier怎么用?一条命令自动下载并安装Mac的Boot Camp驱动

Brigadier怎么用?一条命令自动下载并安装Mac的Boot Camp驱动

Brigadier怎么用?一条命令自动下载并安装Mac的Boot Camp驱动

【免费下载链接】brigadierFetch and install Boot Camp ESDs with ease.项目地址: https://gitcode.com/gh_mirrors/bri/brigadier

Brigadier是一款用Python写成的开源小工具,核心功能只有一个:自动从Apple软件更新服务器找到并下载与你的Mac型号完全匹配的Boot Camp驱动包,替你完成多层解包,还能在Windows上一键静默安装。本文用"拆快递"的方式讲透它的工作原理,再带你从零上手到批量部署,全程附真实命令。

先搞懂问题:Boot Camp驱动为什么这么难自己装?

装过Windows的Mac用户都懂这种体验:系统装好了,触控板没反应、Wi-Fi连不上、键盘背光不亮——因为苹果把Windows驱动藏得很深。

难点一:型号对不上号。每台Mac都有一个型号标识符,像MacBookPro15,1这种。苹果发布的Boot Camp驱动是"按型号分批"的,装错型号的包,部分驱动会拒绝安装。

难点二:包装层层嵌套。苹果官方下载的是.pkg扁平安装包,里面套着PayloadPayload是gzip压缩的,解开是cpio归档,再解开才得到一个WindowsSupport.dmg镜像,镜像里才是真正的驱动文件。这一层层拆开,像拆一盒套了好几层的快递,纯手动操作至少十几步。

难点三:下载源分散。同一个型号在不同时期对应不同版本的Boot Camp包,去Apple支持页面翻找很容易下错旧版。

Brigadier把这三件事全部接管了:自动读取本机型号(或用--model指定)、自动从Apple的软件更新目录挑出最新匹配的包、自动用7-Zip完成四层解包。你要做的,只是敲一条命令。

拆解Brigadier的三大环节

Brigadier的工作流程可以概括为三步,看懂了它,用起来心里就有底:

  1. 认机型:在macOS上调用system_profiler、在Windows上调用wmic读取本机型号标识符;也可以用--model参数手工指定。
  2. 找货源:拉取Apple软件更新服务器的index.sucatalog目录文件,扫描其中所有Boot Camp ESD产品,匹配当前型号,若有多个版本则自动选发布时间最新的那个。
  3. 拆包装:Windows下依次解出.pkg(xar格式)→Payload(gzip)→Payload~(cpio)→WindowsSupport.dmg,最终把驱动文件铺到输出目录;macOS下则用系统自带的pkgutiltar完成同等工作。

第一步上手:首次运行只需一条命令

把项目克隆到本地:

git clone https://gitcode.com/gh_mirrors/bri/brigadier cd brigadier

这是获取源码的方式;Windows用户如果不想装Python,也可以直接下载项目预编译好的brigadier.exe使用。

在Windows上安装当前机器的Boot Camp驱动:

brigadier.exe --install

这条命令会检测硬件型号、下载对应的ESD包、解包、找到BootCamp.msi并静默执行安装,装完自动清理临时文件和下载产物。需要注意,它只支持64位Windows——这是源码里写死的限制。

在macOS上先跑一次"只下载不解包到底"的试探:

chmod +x brigadier ./brigadier

不加任何参数时,工具只做下载与解包,不执行安装。macOS下的输出结果是解出一个WindowsSupport.dmg文件,方便你刻盘或复制到Windows使用。跑通这条命令,就等于确认了"型号识别→目录匹配→下载"这条链路是通的。

第二步进阶:把驱动包下载到指定目录

不想立刻安装、只想先把驱动备在U盘里的人,用--output-dir指定存放位置:

./brigadier --model MacBookPro15,1 --output-dir /Volumes/USB/bootcamp

这句的意思是:不管本机是什么型号,就按MacBookPro15,1这个型号去下载,解包结果放进U盘的bootcamp目录。两个参数的作用分别是"指定型号"和"指定落盘位置",配合使用就是一套最标准的离线驱动包制作流程。

如果在同一批型号上反复操作,还可以一次性传入多个型号:

./brigadier --model MacBookPro15,1 --model iMacPro1,1 --model Macmini8,1 --output-dir ./drivers

工具会按型号依次下载,每个型号的结果单独放在以BootCamp-产品编号命名的子目录里,方便日后按型号归档。这正是IT管理员批量准备驱动的典型用法。

第三步规模化:让Brigadier自己判断该装哪份驱动

企业镜像维护场景里最烦的一件事,是"一份系统镜像要适配多种Mac型号"。Brigadier的--install设计初衷就是解决这个问题的:它能在每次开机后自动识别当前这台机器是哪个型号,再拉取对应的驱动来装。

配合Sysprep的FirstLogonCommand,可以做到镜像第一次登录时自动完成驱动安装。源码里还专门处理了一个坑:当检测到当前工作目录是\Windows\system32时,会自动把输出目录改到系统盘根目录,因为从system32直接运行MSI会因系统目录重定向机制找不到安装组件。你不需要记这个细节,只要知道"在无人值守场景下它替你想到了这一步"即可。

另一个实用参数是--keep-files

brigadier.exe --install --keep-files

默认情况下--install装完就会删除解包出的驱动文件,加上这个参数后保留下来,方便下次重装或排查问题。

容易被忽略的隐藏技巧

技巧一:用配置文件切换内部软件更新服务器。在Brigadier同级目录放一个brigadier.plist,就能把默认的Apple目录地址换成企业内部镜像:

<?xml version="1.0" encoding="UTF-8"?> <plist version="1.0"> <dict> <key>CatalogURL</key> <string>https://sus.example.com/catalogs/others/index.sucatalog</string> </dict> </plist>

文件示例见仓库的plist-example/目录。这个配置的意义在于:内网部署时无需每台机器访问外网,既提速又可控。注意需要自己搭建软件更新服务器(SUS)并确保目录中包含Boot Camp ESD包。

技巧二:在虚拟机里测试安装。Boot Camp的MSI会校验当前硬件是否为合格的Mac,虚拟机里装不了。仓库的msi-transform/目录提供了绕过的办法——用一个VBS脚本把预先做好的set_nocheck.mst转换应用到MSI上:

cscript msi-transform/WiUseXfm.vbs "C:\Drivers\Apple\BootCamp.msi" msi-transform/set_nocheck.mst

这条命令会把NOCHECK调试属性写进安装包,让它在VMware或VirtualBox这类环境里也能装基本驱动。要说明的是:显卡等依赖特定硬件的驱动仍然装不上,它只适合验证安装流程。

技巧三:把工具打包成Windows单文件。目标机器没有Python环境时,用仓库里的build_windows_exe.py脚本借助PyInstaller产出独立的brigadier.exe,随镜像分发即可。需要注意构建环境是Python 2.7与配套的旧版PyInstaller,细节都写在脚本注释里。

避坑清单:常见误区一览

误区实际情况
以为任何Windows版本都能安装只支持64位Windows,32位不适用
装完驱动才发现网络不通工具依赖网络下载,首次使用前必须已有可用网络驱动
--model配合--install指定其他型号源码明确忽略该组合,因为MSI本身不允许跨型号安装
以为所有型号都有对应包目录里找不到匹配型号时会直接报错退出
期望静默安装百分之百成功部分Boot Camp 6组合与Windows 7存在兼容问题,这是上游MSI的局限

什么情况该用它,什么情况不该

适合用它的场景:需要反复为多台Mac准备Boot Camp驱动;要把驱动部署整合进无人值守流程;想用一个型号标识符快速拿到离线驱动包。它最大的价值是把"找对包+拆四层包装"这两件琐事自动化。

不适合用它的场景:对驱动安装细节要求零错误容忍的生产环境(源码自己承认"几乎没有错误处理");需要在32位Windows上安装;系统还没有任何可用网络驱动的全新Windows环境。这类需求要么先手动补网络驱动,要么考虑配合其他方案。

一个值得思考的问题

Brigadier把"下载驱动"这件小事做到了极致简化,但它同时也是一个提醒:再成熟的自动化工具,也逃不脱"被自动化对象"的制约——Boot Camp驱动的安装结果始终取决于苹果MSI安装器的行为,工具能做的只是把前面的路由和拆包做到最好。下一次当你准备在Windows上部署Mac驱动时,不妨先问自己一句:我是需要一个全自动的安装器,还是只需要一个可靠的"驱动取件员"?想清楚这个问题,你就能判断Brigadier是不是你需要的那个角色。

【免费下载链接】brigadierFetch and install Boot Camp ESDs with ease.项目地址: https://gitcode.com/gh_mirrors/bri/brigadier

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表