macOS 系统更新后系统扩展激活失败解决方法

孙康

在 macOS 14 及后续版本,系统扩展的授权方式发生了变化,之前授权是在“系统设置” > “隐私与安全性”页面,现在将其更新到“系统设置” > “通用” > “登录项与扩展”页面。macOS 15.x 版本,页面底部的“扩展“部分细分为文件系统扩展、端点安全性扩展、网络扩展等,且授权不是统一的“允许”按钮,而是每个扩展旁边有独立的开关。

系统扩展激活失败问题详情

在从访达中打开应用,启动扩展时,系统会引导用户到系统设置页面授权扩展。但在授权时点击旁边开关按钮,没有要求用户输入密码验证的情况即显示授权失败。

系统扩展授权失败
系统扩展授权失败

当发现系统拓展激活失败后,首先想到查看系统日志,过滤扩展名查看有效信息。但日志量太大,而且基本没有有效信息,甚至在日志中查找不到用户点击授权的记录。实际上需要过滤authd进程日志,日志详细记录了用户点击授权后所作的系列检查和检查结果。

授权日志
授权日志

根据日志记录,用户的 ID 是 501,且用户没有使用密码。然后获取了系统扩展的授权规则(”com.apple.system-extensions.admin”),检查是否有权限启用,结果是用户没有权限,这里没有权限的原因是用户不是”root”用户。最后授权失败,错误码-60005(表示 errAuthorizationDenied),详细信息为:

1
Failed to authorize right 'com.apple.system-extensions.admin' by client '/System/Library/ExtensionKit/Extensions/SettingsSystemExtensionController.appex' [67869] for authorization created by '/System/Library/ExtensionKit/Extensions/SettingsSystemExtensionController.appex' [67869] (3,0) (-60005) (engine 691)

问题很简单,因为不是”root”用户所以没有权限,但想要在安装软件后首次启用系统扩展必须在 UI 上操作,而”root”用户只能在终端执行命令,这样就没办法授权。

系统拓展授权策略

下面需要检查一下系统扩展的授权规则是否有问题,下面的命令用于读取授权数据库的系统扩展管理相关项。命令的输出结果显示系统扩展的操作权仅限”root”用户,和日志的记录一致。

1
2
3
4
5
6
7
8
9
10
11
12
➜ security authorizationdb read com.apple.system-extensions.admin | plutil -p -

YES (0)
{
"class" => "rule"
"created" => 695120029.1478879
"modified" => 713695351.319139
"rule" => [
0 => "is-root"
]
"version" => 0
}

所以这是策略问题,需要修改策略允许非”root”用户有权授权系统扩展。可以执行下面的命令重置系统扩展的授权策略。

1
sudo security authorizationdb reset com.apple.system-extensions.admin

然后再查看系统扩展的授权策略状态。结果显示授权策略需要通过”authenticate-admin-nonshared”规则认证,而不是之前必须”root”用户才能授权。

1
2
3
4
5
6
7
8
9
10
11
12
13
➜  security authorizationdb read com.apple.system-extensions.admin | plutil -p -

YES (0)
{
"class" => "rule"
"comment" => "Authorize a 3rd party application which wants to manipulate system extensions."
"created" => 772015292.8023551
"modified" => 772015292.8023551
"rule" => [
0 => "authenticate-admin-nonshared"
]
"version" => 0
}

继续检查”authenticate-admin-nonshared”规则,规则显示授权方必须是管理员(”admin”用户组)用户,且必须通过认证(输入密码),即使是”root”用户也不能跳过认证。这是 macOS 的标准安全策略。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
➜  security authorizationdb read authenticate-admin-nonshared | plutil -p -

YES (0)
{
"allow-root" => 0
"authenticate-user" => 1
"class" => "user"
"comment" => "Authenticate as an administrator."
"created" => 772015292.8023551
"group" => "admin"
"modified" => 772015292.8023551
"session-owner" => 0
"shared" => 0
"timeout" => 30
"tries" => 10000
"version" => 1
}

结合来看,便是系统扩展的授权需要管理员用户认证后授权,即弹窗输入密码授权。然后再次打开系统设置,尝试授权系统扩展,正常弹窗要求输入密码,认证后授权成功。

  • Title: macOS 系统更新后系统扩展激活失败解决方法
  • Author: 孙康
  • Created at : 2025-06-21 12:00:00
  • Updated at : 2025-06-20 17:06:26
  • Link: https://conradsun.github.io/2025/0660b05398.html
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
macOS 系统更新后系统扩展激活失败解决方法