无法卸载macOS预装软件是因SIP启用且应用位于只读系统分区;可行方案包括:一、关SIP后挂载系统卷删除;二、删/Applications中可写副本;三、用pkgutil卸载注册信息;四、find命令清理残留文件。

如果您尝试卸载 macOS 系统预装的自带软件(如“股票”“播客”“邮件”“备忘录”等),但发现无法通过常规拖拽方式删除,则是因为系统完整性保护(SIP)默认启用,且这些应用被锁定在受保护的只读系统分区中。以下是多种可行的终端命令相关卸载方案:
一、关闭 SIP 后挂载并删除系统级应用
该方法通过禁用系统完整性保护,重新挂载系统卷为可写状态,从而允许直接删除 /System/Applications 目录下的预装应用。操作涉及系统底层,需谨慎执行。
1、重启 Mac 并立即按住 Command + R 进入恢复模式(Apple Silicon 机型则长按电源键直至出现启动选项,选择“选项”后点击“继续”)。
2、顶部菜单栏选择“实用工具” > “终端”,在终端中依次输入以下两条命令并回车:
csrutil disable
csrutil authenticated-root disable
3、执行 reboot 重启进入正常系统。
4、打开“终端”,运行 csrutil status 和 csrutil authenticated-root status,确认两行均显示 disabled。
5、运行 diskutil list,识别系统卷的 IDENTIFIER(例如 disk3s1)。
6、创建本地挂载点:mkdir ~/mount。
7、执行挂载命令(将 disk3s1 替换为实际标识符):sudo mount -o nobrowse -t apfs /dev/disk3s1 ~/mount。
8、进入挂载后的系统应用目录:cd ~/mount/System/Applications。
9、列出当前应用:ls,确认目标应用名称(如 Podcasts.app)。
10、执行删除命令(以播客为例):sudo rm -rf Podcasts.app。
11、重建系统快照(路径中 hadesr 需替换为您的用户名,可用 whoami 查看):sudo bless --mount "/Users/hadesr/mount/System/Library/CoreServices" --setBoot --create-snapshot。
12、重启系统,验证应用是否已从“启动台”和“应用程序”文件夹中消失。
二、使用 sudo rm -rf 直接删除 /Applications 中的预装应用副本
部分预装应用(如 iMovie、GarageBand)会同时存在于 /Applications 和 /System/Applications,且前者为可写副本。此方法仅适用于存在独立可写安装路径的预装应用,不触发 SIP 报错,风险较低。
1、打开“终端”应用程序。
2、确认目标应用是否位于用户可写区域:ls /Applications | grep -i "garageband\|imovie\|pages"。
3、若返回结果含对应 .app 名称(如 GarageBand.app),执行删除:sudo rm -rf /Applications/GarageBand.app。
4、输入管理员密码后回车,等待命令完成。
5、检查“访达”>“应用程序”文件夹及“启动台”,确认图标已移除。
三、利用 uninstall 命令调用系统卸载服务
macOS 内置了基于 pkgutil 的卸载机制,适用于通过 Installer 包安装的预装组件(如某些随系统更新追加的工具)。该命令不修改 /System 分区,但可清理注册信息与关联收据。
1、在“终端”中运行:pkgutil --pkgs | grep -i "stock\|podcast\|news",查找匹配的包标识符(如 com.apple.pkg.iTunesX)。
2、获取包内容路径:pkgutil --pkg-info-plist com.apple.pkg.iTunesX,观察 InstallPath 字段。
3、执行卸载指令:sudo pkgutil --forget com.apple.pkg.iTunesX(仅注销记录,不删文件)。
4、若需同步清除收据文件,手动定位并删除:sudo rm /private/var/db/receipts/com.apple.pkg.iTunesX.*。
四、通过终端配合 find 命令全局清理残留文件
即使主程序被删除,用户数据、缓存、偏好设置等仍可能散落在系统各处。此方法用于卸载后深度清理,避免磁盘空间浪费与配置冲突。
1、在“终端”中执行以下命令,搜索当前用户下所有含目标软件名的文件夹或文件(以“Stocks”为例):
find ~/Library -name "*Stocks*" -depth 1 2>/dev/null
2、对返回的每条路径,逐个确认后执行删除,例如:
rm -rf ~/Library/Application\ Support/Stocks
rm -f ~/Library/Preferences/com.apple.stocks.plist
rm -rf ~/Library/Caches/com.apple.stocks
3、检查系统级路径(需管理员权限):sudo find /Library -name "*Stocks*" 2>/dev/null。
4、对确认无误的系统级残留项,使用 sudo rm -rf 删除(如 /Library/ScriptingAdditions/Stocks.osax)。










