uBlock Origin 回来了!第三方开发者将其完整功能移植到 Manifest V3
2026-9-5 08:57:12 Author: www.appinn.com(查看原文) 阅读量:5 收藏

uBlock Origin 回来了!

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

uBlock Origin 回来了!第三方开发者将其完整功能移植到 Manifest V3 1

一位名叫 r58Playz 的开发者,在原 uBlock Origin 的基础之上,利用 Chrome 给企业管理的扩展留了一个口子,做出了一个支持 Manifest V3 的非官方移植版本,保留了原版的完整功能。

唯一的代价是…启动略麻烦。

感谢 @风舞淼痕 同学的提醒,青小蛙开始还没看懂,没想到啊没想到。

uBlock Origin 回来了!第三方开发者将其完整功能移植到 Manifest V3 2
uBlock Origin 回来了!第三方开发者将其完整功能移植到 Manifest V3 3

如何安装 uBlock Origin MV3

首先需要 Chrome 138 或更高版本

uBlock Origin MV3 有两种安装方式:

  1. 通过企业 Policy 强制安装,功能最完整,但 Windows/macOS 普通电脑配置起来非常麻烦,可参考官网地址
  2. 手动安装 CRX + Chrome 启动参数,普通用户推荐这种。

下面主要介绍第二种。

第一步:下载 uBlock Origin MV3

首先下载开发者提供的 CRX 文件:

目前提供的是基于 uBlock Origin 1.74.0 制作的版本。

它的扩展 ID 为:

blockddmmcjpfkbhanlgegpmjpfpfjka

后面会用到。

第二步:把扩展加入 Chrome 白名单

如果使用的是正式版 Google Chrome,还需要先通过 Chrome Policy 将这个扩展加入允许安装列表,否则手动安装后 Chrome 可能会再次将它禁用。

Windows

Win + R,输入:

打开注册表编辑器,进入:

HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome

在这里创建:

ExtensionInstallAllowlist

最终路径为:

HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome\ExtensionInstallAllowlist

然后在里面新建一个「字符串值」:

名称:1
数据:blockddmmcjpfkbhanlgegpmjpfpfjka

如果已经存在 1,就依次使用 23……

修改完成后彻底退出 Chrome,包括仍然驻留在后台的 Chrome 进程,然后重新启动。

打开:

确认 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

现在打开:

打开右上角的:

开发者模式(Developer mode)

然后把第一步下载的:

直接拖进这个页面。

Chrome 会询问是否安装扩展,确认即可。

第五步:打开 Allow User Scripts

安装完成后,进入 uBlock Origin 的扩展详情页面。

找到:

Allow User Scripts

将其打开。

这是因为这个 MV3 移植版本使用了 Chrome 的 chrome.userScripts API 来重新实现原版 uBlock Origin 的部分脚本注入功能。

第六步:等待 uBlock Origin 启动完成

刚刚启动时,uBlock Origin 图标可能会显示一个:

等待这个 ! 消失即可。

如果一直没有消失,可以进入:

手动重新加载一次 uBlock Origin。

至此,Manifest V3 版 uBlock Origin 就安装完成了。

uBlock Origin 回来了!第三方开发者将其完整功能移植到 Manifest V3 4

为什么安装这么麻烦?

因为这个版本并没有把 uBlock Origin 改造成适用于 Manifest V3 的广告拦截器。

原版 uBlock Origin 最重要的能力之一,是通过:

实时检查浏览器的网络请求,然后由自己的过滤引擎决定:

请求
 ↓
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 OriginuBlock Origin Lite这个 uBlock Origin MV3
作者Raymond HillRaymond Hill第三方开发者
ManifestV2V3V3
Chrome 新版✅,但需要特殊安装
过滤引擎uBO 原版DNR 重写uBO 原版
webRequestBlocking
自定义过滤很受限✅ 基本保留
动态过滤基本保留
Scriptlet / CSS部分通过 MV3 API 重新实现
安装难度以前很简单很简单很麻烦
官方 uBO官方姊妹项目非官方移植

原文:https://www.appinn.com/ublock-origin-mv3/


文章来源: https://www.appinn.com/ublock-origin-mv3/
如有侵权请联系:admin#unsafe.sh