◆

Chrome 安装本地 crx 谷歌插件方法

2023-02-02 01:370

从网上下载的谷歌插件如何安装到谷歌浏览器

有时候会从一些网站下载下来如 .crx 后缀的谷歌插件,但在最新的谷歌浏览器当中 以 .crx 后缀的谷歌插件并不能自动安装到谷歌浏览器当中。

具体表现是把 crx 文件拖到扩展管理页面上,浏览器提示「无法从此网站添加应用、扩展程序和用户脚本」,或者提示程序包无效,总之装不上。

这不是文件坏了,是浏览器的策略限制。出于安全考虑,浏览器只信任来自应用商店的插件安装,其他渠道的 crx 一律拒绝,理由是插件权限很大,能读写页面内容、拦截请求,来源不明的插件风险确实不低。这个限制在正式版上没有开关可以关掉,企业环境里能通过组策略配白名单,个人用户走不了这条路。

需要装本地插件的场景还是有的:插件从商店下架了但还想继续用、公司内部自己开发的插件不上商店、或者所在网络访问不了商店只能拿到离线包。

绕过去的思路是利用另一条通道——开发者模式下的「加载已解压的扩展程序」。这条通道本来是给插件开发者调试用的,接受的是一个包含 manifest.json 的普通目录,而不是打包文件。所以问题转化成:把 crx 变回目录。

crx 本质上就是一个 zip 压缩包,前面加了一小段包含签名和公钥的头部。改后缀直接解压能成,是因为主流解压工具会跳过无法识别的前导字节去找压缩包的目录结构。签名那部分丢掉不影响使用,因为按目录加载的方式压根不校验签名。

解决方法

  • 找到下载的谷歌插件文件,将 .crx 后缀强制改为 .zip 后缀,然后对文件进行解压,一般解压后的文件列表如下图。

改后缀时如果系统隐藏了扩展名,要先在文件夹选项里打开显示扩展名,否则会改成 xxx.crx.zip。解压建议解到一个单独的新目录里,别直接解在下载目录,方便下一步选取。

这张图是解压后的目录内容,重点确认里面有 manifest.json 这个文件。它是插件的清单文件,浏览器就是靠它识别这是不是一个合法插件。另外注意有些解压工具会多套一层同名目录,如果 manifest.json 在子目录里,下一步要选的是它所在的那一层,不是最外层。

crx 改名解压后的目录内容,包含 manifest.json
  • 打开谷歌浏览器,打开更多工具-扩展程序

从菜单进去就行,也可以在地址栏直接输入 chrome://extensions/ 到达同一个页面。

这张图是菜单的位置,路径是右上角三个点,展开后找到更多工具那一项,扩展程序在它的子菜单里。

Chrome 菜单中更多工具下的扩展程序入口
  • 打开右上角的开发者模式,点击加载已解压的扩展程序,选择解压好的插件,如果没有报错说明添加成功,否则就是解压后的插件文件是不对的

顺序是先开开发者模式,那个「加载已解压的扩展程序」按钮才会出现,开关关着的时候页面上压根看不到这个按钮。

这张图是开启开发者模式后的扩展管理页,右上角是那个开关,左上方多出来的一排按钮里第一个就是加载已解压的扩展程序。点它之后弹出的是目录选择器而不是文件选择器,要选中包含 manifest.json 的那个文件夹然后确认,不要试图去选某个具体文件。

扩展管理页开启开发者模式后出现的加载已解压的扩展程序按钮

加载失败的话,错误提示一般会直接说明原因,最常见的两种:一是选错了目录层级,提示找不到清单文件,回去确认 manifest.json 的实际位置;二是提示清单版本不受支持,这种情况是插件太老,用的还是早期的清单版本,而新版浏览器已经不再兼容,属于插件本身的问题,改目录没用。

最后提两个使用上的注意点。按目录加载的插件不会自动更新,作者发了新版得自己重新下载替换。另外每次启动浏览器都会提示「请停用以开发者模式运行的扩展程序」,这个提示没法关掉,属于开发者模式的固有行为,点关闭忽略即可,不影响插件工作。还有就是解压出来的那个目录不能删,浏览器每次启动都要从原路径加载,目录一旦被移动或删除,插件就失效了。

💬留言板0

还没有留言,来发表第一条吧~

PAGE LOAD / LIVEChrome 安装本地 crx 谷歌插件方法加载中