uBlock Origin 回来了!
在 Chrome/Edge 相继淘汰了 Manifest V2 标准的老旧插件之后,首当其冲就是强大的广告过滤插件 uBlock Origin 被淘汰。原作者也不太愿意折腾,但终于有人出手了!@Appinn

一位名叫 r58Playz 的开发者,在原 uBlock Origin 的基础之上,利用 Chrome 给企业管理的扩展留了一个口子,做出了一个支持 Manifest V3 的非官方移植版本,保留了原版的完整功能。
唯一的代价是…启动略麻烦。
感谢 @风舞淼痕 同学的提醒,青小蛙开始还没看懂,没想到啊没想到。


如何安装 uBlock Origin MV3
首先需要 Chrome 138 或更高版本。
uBlock Origin MV3 有两种安装方式:
- 通过企业 Policy 强制安装,功能最完整,但 Windows/macOS 普通电脑配置起来非常麻烦,可参考官网地址
- 手动安装 CRX + Chrome 启动参数,普通用户推荐这种。
下面主要介绍第二种。
第一步:下载 uBlock Origin MV3
首先下载开发者提供的 CRX 文件:
目前提供的是基于 uBlock Origin 1.74.0 制作的版本。
它的扩展 ID 为:
blockddmmcjpfkbhanlgegpmjpfpfjka
后面会用到。
第二步:把扩展加入 Chrome 白名单
如果使用的是正式版 Google Chrome,还需要先通过 Chrome Policy 将这个扩展加入允许安装列表,否则手动安装后 Chrome 可能会再次将它禁用。
Windows
按 Win + R,输入:
regedit
打开注册表编辑器,进入:
HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome
在这里创建:
ExtensionInstallAllowlist
最终路径为:
HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome\ExtensionInstallAllowlist
然后在里面新建一个「字符串值」:
名称:1
数据:blockddmmcjpfkbhanlgegpmjpfpfjka
如果已经存在 1,就依次使用 2、3……
修改完成后彻底退出 Chrome,包括仍然驻留在后台的 Chrome 进程,然后重新启动。
打开:
chrome://policy
确认 ExtensionInstallAllowlist 已经生效。
macOS
macOS 同样需要设置 Chrome 的:
ExtensionInstallAllowlist
对应的配置位于:
/Library/Managed Preferences/com.google.Chrome.plist
其中需要加入:
ExtensionInstallAllowlist
blockddmmcjpfkbhanlgegpmjpfpfjka
注意,这里设置的是 Allowlist,并不是 ExtensionInstallForcelist。
普通、未受企业管理的 Mac 无法简单通过 plist 强制安装这个扩展,因此我们仍然需要使用下面的启动参数。
第三步:添加 Chrome 启动参数
这是整个安装过程最关键的一步。
需要让 Chrome 每次启动时都携带:
--allowlisted-extension-id=blockddmmcjpfkbhanlgegpmjpfpfjka
这个参数会让 Chromium 向这个 MV3 扩展开放 webRequestBlocking 权限。
Windows
找到平时使用的 Chrome 快捷方式,右键 →「属性」。
在「目标」最后面加一个空格,然后加入:
--allowlisted-extension-id=blockddmmcjpfkbhanlgegpmjpfpfjka
例如原来是:
"C:\Program Files\Google\Chrome\Application\chrome.exe"
修改为:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --allowlisted-extension-id=blockddmmcjpfkbhanlgegpmjpfpfjka
以后需要通过这个快捷方式启动 Chrome。
Chrome 启动后会提示正在使用不受支持的命令行参数,这是正常现象。
不要为了隐藏警告加入 --test-type,因为这个参数还会改变 Chrome 的其他行为。
macOS
先彻底退出 Chrome,然后可以通过终端测试:
open -a "Google Chrome" --args --allowlisted-extension-id=blockddmmcjpfkbhanlgegpmjpfpfjka
需要注意:
以后每次启动 Chrome,都必须带着这个参数。
所以实际长期使用时,可以制作一个带有该参数的启动脚本、快捷指令或其他启动器。
第四步:安装 CRX
现在打开:
chrome://extensions
打开右上角的:
开发者模式(Developer mode)
然后把第一步下载的:
uBlock0_1.74.0.crx
直接拖进这个页面。
Chrome 会询问是否安装扩展,确认即可。
第五步:打开 Allow User Scripts
安装完成后,进入 uBlock Origin 的扩展详情页面。
找到:
Allow User Scripts
将其打开。
这是因为这个 MV3 移植版本使用了 Chrome 的 chrome.userScripts API 来重新实现原版 uBlock Origin 的部分脚本注入功能。
第六步:等待 uBlock Origin 启动完成
刚刚启动时,uBlock Origin 图标可能会显示一个:
!
等待这个 ! 消失即可。
如果一直没有消失,可以进入:
chrome://extensions
手动重新加载一次 uBlock Origin。
至此,Manifest V3 版 uBlock Origin 就安装完成了。

为什么安装这么麻烦?
因为这个版本并没有把 uBlock Origin 改造成适用于 Manifest V3 的广告拦截器。
原版 uBlock Origin 最重要的能力之一,是通过:
webRequestBlocking
实时检查浏览器的网络请求,然后由自己的过滤引擎决定:
请求
↓
uBlock Origin
↓
过滤规则
↓
允许 / 拦截
但 Manifest V3 对普通扩展限制了这项权限,Chrome 更希望广告拦截器使用 declarativeNetRequest,也就是提前把过滤规则交给浏览器,由 Chrome 自己负责拦截。
这也是 uBlock Origin Lite 采用的方案。
然而 Chrome 给企业管理的扩展留了一个口子:通过 Policy 安装的 MV3 扩展仍然可以获得 webRequestBlocking。
@r58Playz 利用了这个机制,把原来的 uBlock Origin 过滤引擎放进 Manifest V3 Service Worker 中继续运行。
而:
--allowlisted-extension-id
这个启动参数,可以绕过 Chromium 对 webRequestBlocking 的权限检查。
所以整个方案可以简单理解成:
Manifest V3
↓
利用 Chrome 保留的 webRequestBlocking 通道
↓
运行原版 uBlock Origin 过滤引擎
↓
保留完整的 uBlock Origin 功能
这也是为什么它安装起来比 uBlock Origin Lite 麻烦得多。
还有一个小区别
上面介绍的「CRX + 启动参数」方案虽然可以正常获得 webRequestBlocking,但和真正通过企业 Policy 安装仍然存在一点区别。
真正的 Policy 安装允许 webRequestBlocking 在 uBO 刚启动时返回 Promise,因此可以暂时把网络请求“扣住”,等过滤引擎准备完成后再处理。
普通用户使用启动参数安装时做不到这一点。
所以在 uBO 刚刚启动的短暂时间里,这个移植版会临时取消部分子资源请求,等过滤引擎启动完成以后,再重新加载受到影响的标签页。
过滤引擎启动完成后,正常的网页过滤仍然是同步进行的。
对于日常使用来说,主要区别基本集中在 Chrome 和 uBO 刚启动的这段时间。
uBlock 不同版本间主要区别
如果,你现在使用 uBlock Origin Lite 时感觉到足够了,就别折腾了,青小蛙觉得太麻烦了。
| uBlock Origin | uBlock Origin Lite | 这个 uBlock Origin MV3 | |
|---|---|---|---|
| 作者 | Raymond Hill | Raymond Hill | 第三方开发者 |
| Manifest | V2 | V3 | V3 |
| Chrome 新版 | ❌ | ✅ | ✅,但需要特殊安装 |
| 过滤引擎 | uBO 原版 | DNR 重写 | uBO 原版 |
webRequestBlocking | ✅ | ❌ | ✅ |
| 自定义过滤 | ✅ | 很受限 | ✅ 基本保留 |
| 动态过滤 | ✅ | ❌ | 基本保留 |
| Scriptlet / CSS | ✅ | 部分 | 通过 MV3 API 重新实现 |
| 安装难度 | 以前很简单 | 很简单 | 很麻烦 |
| 官方 uBO | ✅ | 官方姊妹项目 | ❌ 非官方移植 |