从Chrome网上应用店下载CRX文件时出现错误:CRX_HEADER_INVALID。

16

当我通过以下链接获取任何CRX扩展文件:

https://clients2.google.com/service/update2/crx?response=redirect&prodversion=49.0&x=id%3D<EXTENSION_ID>%26installsource%3Dondemand%26uc

在Chrome 73.0.3683.86版本上,我在Web商店使用任何ID都会出现CRX_HEADER_INVALID错误,但是在旧版本的Chrome上则没有问题。

此外,我可以通过第三方网站下载CRX文件,但是当我在chrome://extensions/处添加时,也会出现CRX_HEADER_INVALID错误。

这些情况都适用于我使用最新版本的Chrome时。有人知道问题出在哪里吗?

3个回答

16
  1. 解压已下载的CRX文件,例如使用7zip软件
  2. 在Chromium扩展页面上打开开发者模式
  3. 点击“下载未打包的扩展程序”,并选择你的文件夹

1
好的,它确实可以这样工作,但这并不是解决问题的方法 - 如何在尝试加载.crx扩展时修复新Chrome中的CRX_HEADER_INVALID错误。另一个方法是使用旧版本的Chrome:https://www.reddit.com/r/chrome/comments/91roxd/how_to_downgrade_from_chrome_68_to_chrome_67/ - KulaGGin
  1. 点击“下载未打包的扩展程序”按钮。对于我的Chrome版本105.0.5195.125,应该点击“加载未打包的扩展程序”按钮。
- Rick

5

为什么会出现这个错误?

根据Chrome企业版更新日志

  • CRX2停用

    从Chrome 70开始,所有未进行强制安装的扩展必须以CRX3格式打包。已在Chrome Web Store中签名和托管的扩展已自动转换。

    从Chrome 75开始,此限制还将适用于强制安装的扩展。使用自定义脚本或Chrome 64.0.3242.0之前版本的版本打包的私人托管扩展必须进行重新打包

    如果您的组织正在强制安装以CRX2格式打包的私人托管扩展,并且您不进行重新打包,则它们将在Chrome 75中停止更新。扩展程序的新安装将失败。

然而,在Chrome 73中,似乎Google已经强制应用了此更改并推出了一个新的策略选项,仅适用于更新。

但是,它说所有扩展都已自动转换,所以...

为什么在您的情况下会出现这个错误?

根据此(非)错误的解析

从M73开始,Chrome只允许安装使用CRX3包签名的扩展程序。然而,Webstore包含CRX2和CRX3版本的副本(以适应不能处理CRX3的旧版Chrome),并且默认情况下将提供CRX2。

[...]包正在使用旧的终端点,将检索CRX2,并且较新版本的Chrome将禁止安装。[...]下载库需要更新其代码以请求CRX3,然后这将在所有现代Chrome版本中工作(CRX3已经支持几个版本了)。

因此,问题在于您使用了过时的URL来下载扩展。请参见此答案获取当前的URL格式。


1

这是一个令人惊叹的工具 https://johankj.github.io/convert-crx-to-zip/。谢谢。 - focus zheng

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接