为chrome添加本地扩展插件集以及简单的定制

上网、浏览、聊天、下载等
回复
zrqlx126
帖子: 401
注册时间: 2007-06-22 18:52

为chrome添加本地扩展插件集以及简单的定制

#1

帖子 zrqlx126 » 2025-07-24 18:47

  近期,准备将firefox浏览器更换为chrome浏览器,在定制和安装扩展插件上遇到一些问题,经过查询文档和测试,基本满足要求,现将过程简要列出,以飨各位。
  一、从网站获取扩展插件
  根据google的政策,由于要从Manifest V2迁移到Manifest V3,所以目前chrome浏览器禁止第三方商店和本地插件,以及Manifest V2版本插件的安装。Manifest V3提供了更多的安全性,但也同时给予了更多的限制。事实上这种行为也是一种垄断,引起了部分争议。目前,部分扩展插件的开发者,为确保功能实现,并不打算迁移到Manifest V3版本,也有些开发者开发了精简版予以替代。不过好在国内还有crx搜搜之类的第三方商店,可以通过配置策略暂时启用Manifest V2版本的扩展插件,不过需要注意的是139版本开始,将彻底淘汰Manifest V2插件。
  在这里,我们就从crx搜搜上下载插件,并生成一个信息清单,当然魔法上网的还可以在商店下载,不在讨论之列。我们除了从网站下载扩展插件,还需要获取两个关键信息,扩展插件的ID和版本,同时还需要注意Manifest版本。当然也可以在“管理扩展程序”中打开开发者模式,提取插件ID和版本。crx文件本质上就是加密头文件和zip文件的组合,可以通过编程提取头文件中的信息,换算扩展插件的ID和版本,这个方法不在讨论之列。有关信息可以查阅官方文档https://developer.chrome.google.cn/docs ... authuser=7
1.png
2.png
  二、从本地安装扩展插件
  根据官方文档的说明,插件下载后,需要创建一个以插件ID为名称的json文件,当然你还可以使用本地xml文件进行,只需要写一个xml文件并将文件指向本地插件文件,这个不在讨论之列。需要注意的是创建的json文件中,external_crx要指向本地crx插件,external_version需要填入插件的版本。官方给出了两个可用的位置。为了方便查阅和修改,这里我们将下载的插件也以其ID进行命名,连同创建的json文件一同放置在/usr/share/google-chrome/extensions/目录中,目录不存在则手动创建。有关信息可以查阅官方文档https://developer.chrome.google.cn/docs ... authuser=7
3.png
  三、创建chrome策略文件
  遵上所述,针对Manifest V2版本的扩展插件,我们需要通过策略进行启用,同时我们禁止chrome检查默认浏览器,并禁止登陆google账户,这样浏览器看起来更清爽。需要注意的是策略文件也是一个json文件,写错将无法被浏览器加载。这里我们分别生成三个文件,BrowserSignin.json、DefaultBrowserSettingEnabled.json和ExtensionManifestV2Availability.json,我们编辑好后将其放置在/etc/opt/chrome/policies/managed/这个目录中,目录不存在则手动创建。有关策略API,可以查阅官方文档https://developers.google.cn/chrome/pol ... w?hl=zh-cn
4.png
  四、定制浏览器profiles
  所谓定制主要就是修改和编辑浏览器用户目录中的Preferences偏好文件,这也是一个json文件。需要注意的是除了复制用户目录中的Extensions文件夹,Preferences文件中的extensions节点,保存了已安装扩展插件的信息,需要完整复制整个节点。部分插件扩展程序有基于有声明式网络请求(Declarative Net Request)API 生成的动态规则集,定制时还需要将用户目录中的'DNR Extension Rules'文件夹也一并复制。为了将定制的profiles用于所有新建用户,我们需要将上述定制修改的文件以及文件夹,放置在/etc/skel/.config/google-chrome/目录中,目录不存在则手动创建。还需要注意一点,虽则crx文件可被解压,但其并未经过浏览器加载和解密。其内容与用户目录中的Extensions文件夹中的相应扩展插件内容略有不同,不可相互替换。
5.png
  至此,这就是这个笨办法的实现方式,当然更高级的是编写js脚本文件进行定制,由于能力有限,这里不在讨论之列。最后,给出一个打包好的chrome插件包,文件名为myubuntu-chrome-extensions_138.0_all.deb,可以前往https://www.123912.com/s/ZId7Vv-R9FOd下载测试。各位有更好的办法和实现方式,也请留言一起探讨。
回复