mac可通过终端命令kextstat直接查看内存中实际加载的全部内核扩展,毫秒级响应且不受sip静默拦截影响;配合grep、awk等过滤可精准定位第三方驱动、按关键词筛选并导出桌面文本供比对。

Mac如何快速查看所有的内核扩展加载情况,需绕过图形界面直接调用系统底层命令,因为“系统报告”仅展示部分已注册项,而真实运行中的驱动必须通过内核状态快照获取——kextstat输出的是当前内存中实际加载的kext列表,不依赖缓存或UI渲染,毫秒级响应,且能暴露被SIP拦截但未报错的静默失败项。
基础查看:列出全部已加载内核扩展
打开“终端”(访达 → 应用程序 → 实用工具 → 终端),输入以下命令并回车:
kextstat
该命令会立即打印所有正在运行的内核扩展,每行含索引、引用计数、地址、Bundle ID(如com.apple.driver.AppleUSBHost)、版本及路径。注意:【若某第三方kext已安装但未出现在此列表中,说明它根本未被内核加载,而非“没启用”】。
聚焦排查:只看第三方驱动(排除苹果官方)
方法一:过滤掉所有com.apple.开头的系统驱动
kextstat | grep -v com.apple
方法二:增强可读性,仅显示Bundle ID、版本和路径,并去重排序
kextstat | awk '$4 !~ /^com\.apple\./ {print $4, $5, $6}' | sort -u
这一步能立刻识别出你手动安装的USB串口芯片(如CH340)、雷电扩展坞控制器、NTFS读写驱动等真实外设关联项。如果输出为空,代表当前无第三方kext处于活跃状态——不是没装,就是被阻止加载了。
精准定位:按关键词快速筛选特定驱动
第一步:确认驱动名常见变体(CH340驱动可能注册为ch340、CH34x、wchusbserial)
第二步:执行带-i参数的模糊匹配,避免大小写遗漏
kextstat | grep -i ch340
第三步:验证是否多关键词共存(例如Realtek网卡常同时含rtl8152与usbnet)
kextstat | grep -i "rtl8152\|usbnet"
第四步:检查驱动是否加载成功但绑定失败(仅kextstat有记录,不代表设备可用)→ 此时需配合ioreg -p IOUSB -l | grep -i product确认硬件是否被IOKit识别。
导出保存:生成桌面文本文件供离线比对
执行以下任一命令,结果将自动保存到桌面:
完整原始列表:kextstat > ~/Desktop/kext_full_$(date +%Y%m%d).txt
精简第三方列表(含时间戳,避免覆盖):
kextstat | grep -v com.apple > ~/Desktop/third_party_drivers_$(date +%Y%m%d_%H%M).txt
文件生成后双击即可用“文本编辑”打开。注意:【不要用预览打开.txt文件,它会强制转码导致中文路径乱码】。











