Top Menu

如何自建crx下载和更新服务器

在chrome客户端可以通过policy策略指定安装非官方来源的crx,但是chrome的crx请求地址不能是直接的crx下载链接,还需要一个服务器来解析请求并返回成对应的crx下载地址。

chrome请求crx流程

  1. 根据policy中的update_url发送请求
  2. 根据返回的xml解析crx实际下载地址
  3. 检查返回的crx版本是否和xml中的一致
  4. 根据policy中的安装方式安装crx

chrome对多个同一update_url的crx请求会合并到一个请求,即多个x参数和合并,这就表示,在url请求参数内会存在多个同key的不同值,而通常的url解析函数都不允许存在重复key,需要用正则或字符串分割方法手动解析url,否则会丢失请求。

例如policies.json中包含两个crx请求,update_url是同一个地址

这时chrome就会给这个地址发送这样一个请求

解析后,如下

可以看到有两个key为x的参数

继续解析这个x参数,在foreach里使用字符=作为分隔符将x字符串后的内容分割出来。并使用urldecode函数解密字符串

接着继续解析需要的参数

获得crx_id和crx_v在后续操作中使用

使用另一个foreach循环组装xml文件

在浏览器访问

输出如下

在chrome中测试,注意这里的version需要和codebase中的crx对应,否则无法安装。

可以通过白名单来写死crx和版本的对应关系

如何使用

目前提供的插件列表

  • Video-Styler–brightness-and-more【bfmgdnjlifbmedglimhnbhgkefanaiep】
  • Adblock-Plus—free-ad-blocker【cfhdojbkjhnklbpkdaibdccddilifddb】
  • Proxy SwitchyOmega【padekgcemlokbadohgkifijomclgjgif】

policies.json位置

编辑policies.json,增加ExtensionSettings设置

设置插件信任源

设置预安装插件

保存policies.json,打开chrome后自动安装插件。

2 comments

  • Hello, guest

Powered by WordPress. Designed by WooThemes