起因
最近自己DIY了一台电脑,在安装完火狐浏览器并登录账号后,发现去广告插件(我一直使用的是AdBlock Plus)并没有同步过来。在扩展中搜索倒是有显示,但一点详情就成了下面这个样子。
在网上搜索一番后得知,只要使用的是中国大陆 IP,那么都是无法访问官方商店中的广告屏蔽扩展的。原因很可能在于动了某些巨头们的”蛋糕“。既然如此,那就尝试自己解决吧。
尝试
官网下载
找到插件的官网:https://adblockplus.org,发现有获取
点击之后,会跳转到火狐对应的页面,不可用+1。
源码Release
在官网右下角有对应的源代码链接,点击进入gitlab。
发现里面有一个release项目,不知道里面有没有发布的插件。点进去一看,只是配置,没有发布的插件。
再点击进入adblockplusui去看看,点击里面的8 releases。进入后发现也没有发布的插件,只是源代码打包。。。
难不成真要利用源码来自己build?还是先想想其他方案吧,实在不行再说。
解决方案
灵机一动,想到能不能从其他电脑的火狐浏览器上复制已安装的插件。
利用ToDesk远程进入其他电脑。已知火狐浏览器插件格式为xpi,在Everything搜索框中输入*.xpi,得到搜索结果。
发现插件基本位于3个目录,即安装目录下的browser\features和distribution\extensions,还有用户目录下的AppData\Roaming\Mozilla\Firefox\Profiles\(某疑似为guid的字符串).default-release\extensions文件夹。最后一个目录应该是用户自己在火狐中安装的插件。可以看到其中的插件有一部分是比较规则的名称,另一部分则直接是GUID。
那么如何知道AdBlock Plus对应的是哪个文件呢。这种一般都有一个配置文件,通常在当前目录或者上层目录。打开用户插件目录,一眼看过去,发现全是插件文件。打开上层目录,简单翻看后就发现一个可疑文件,extensions.json。
利用VSCode打开该文件,美化后搜索AdBlock,一下就找到了。
不难发现,在插件目录下guid正是对应文件的id。接下来的事情就水到渠成了。将对应的文件复制到目标机拖入火狐浏览器进行安装,问题得以解决。
去广告另一种解决方案
除了在浏览器中去广告外,还可以通过在路由器中安装去广告插件,比如Adguard Home之类的。优点是支持全屋去广告,缺点是需要路由器为OpenWRT或者支持Docker并且需要一定动手能力。我已在用树莓派4安装的OpenWRT系统上和小米的AX9000中试验过。