在看这篇文章之前,你可以有两个选择:

  1. 网上下载 Chrome插件伴侣 这一工具,一键离线安装插件( 注意:博主非工具作者,不保证此工具安全性,请自行分析 ),然后关闭此文章。
  2. 继续看下去搞懂原理,然后自己手动离线安装插件或编写一个属于自己的离线安装工具。

手动化安装方法

首先进入 Chrome 扩展程序的管理页面,在地址栏敲入 chrome://extensions/ 即可进入。

然后把右上角的 开发者模式 打开(刚不是说无需这个模式吗?别急,暂时的。),拖入插件进行添加,复制插件的 ID 后关闭 开发者模式 即可。如图所示:

接着关闭 Chrome ,将以下内容复制粘贴到记事本上保存,将文本后缀名 .txt 改为 .reg ,双击运行。

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\ExtensionInstallWhitelist]
"1"="ijaojehcgjneognjmhdiidbfhpgfkkgp" 

若要添加多个插件, "1"="ijaojehcgjneognjmhdiidbfhpgfkkgp" 以此类推往下添加 "2"="插件ID" "3"="插件ID" ……

最后重新打开 Chrome 后插件就可以正常使用了,如安装的插件没有立即启用,可直接到扩展程序管理页面里手动开启。

自动化编程思路

获取插件公钥和版本号

这里需要从 .crx 包头提取公钥和版本号(制作插件时命名的版本号)以作备用。

CRX 包的头信息

头信息包含作者的公共密钥和扩展程序的签名,签名以 SHA-1 算法使用作者的私有密钥从 .zip 文件生成。头信息要求字节顺序为小端序并以4字节对齐。下表按顺序描述 .crx 的头信息:

字段 类型 长度 描述
magic number char[] 32 位 Cr24 Chrome 要求每一个 .crx 包的开头包含此常量。
version unsigned int 32 位 2 *.crx 文件格式的版本(当前为2)。
public key length unsigned int 32 位 pubkey.length RSA 公共密钥的长度,以字节为单位。
signature length unsigned int 32 位 sig.length 签名的长度,以字节为单位。
public key byte[] pubkey.length pubkey.contents 作者的 RSA 公共密钥内容,以 X509 SubjectPublicKeyInfo 块的格式表示。
signature byte[] sig.length sig.contents ZIP 内容使用作者私有密钥的签名,该签名使用 RSA 算法以及 SHA-1 散列函数创建。
43 72 32 34   # "Cr24" -- the magic number
02 00 00 00   # 2 -- the crx format version number
A2 00 00 00   # 162 -- length of public key in bytes
80 00 00 00   # 128 -- length of signature in bytes
...........   # the contents of the public key
...........   # the contents of the signature
...........   # the contents of the zip file

获取插件ID

插件的 ID 可以从插件的公钥得到,经过如下计算:

graph LR
  公钥 --> Base64 
  Base64 --> SHA256
  SHA256 --> Base16
  Base16 --> 插件ID

示例代码:

def build_id(pub_key_pem):
    pub_key_der = base64.b64decode(pub_key_pem)  
    sha = hashlib.sha256(pub_key_der).hexdigest()
    prefix = sha[:32]       
    extension_id = ""
    ord_a = ord('a')  
    for old_char in prefix:
        code = int(old_char, 16)
        new_char = chr(ord_a + code)
        extension_id += new_char
    return extension_id

重命名和移动插件

将插件重命名为 插件ID.crx ,移动到 AppData\Local\ChromeExtensionCache (没有就新建)处作为插件存放路径。

在注册表添加插件信息, chrome 启动时会自动安装。

在注册表 HKEY_CURRENT_USER\Software\Google\Chrome\Extensions 添加以插件ID命名的项,以及插件存放路径 path 、插件版本号 version 两个字符串值,而 version 值就是从 .crx 包头获取的版本号。如图:

添加白名单

在注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\ExtensionInstallWhitelist 添加以数字命名的字符串值,其数值数据为插件ID。(与上述的手动化安装方法中导入 .reg 一样,只是编程时直接操作注册表即可)

如果安装插件部署安装成功后又卸载掉了插件,第二次安装时就不会自动安装,这是因为 AppData\Local\Google\Chrome\User Data\Default 目录下的 Secure Preferences 记录了该插件的卸载信息,要想解决这个问题,一是直接删除 Secure Preferences 文件(这会导致 Chrome 的个人设置偏好丢失,即恢复出厂设置),二是修改 Secure Preferences ,将该插件的卸载信息剔除掉(太麻烦)。

博主个人觉得比较舒服的做法是 重新打包插件,即每次安装该插件前,都经过 解包-->打包 这一步骤。因为插件在不指定密钥进行打包时会自动生成随机密钥,而公钥又是从密钥中获得,所以插件ID也会是随机的,随着插件ID的更新, Secure Preferences 中该插件对应的插件ID卸载信息就会失效,从而达到每次安装都是 第一次 的效果。

和手动打包不同,通过编程的方式打包当然不可能傻傻地去操作 Chrome 界面,这里用到一个 Chrome 的打包命令,可指定一个密钥打包,也可不指定,这会随机生成一个后缀为 .pem 的密钥(当然,也可以自己生成一个)。命令如下:

chrome.exe --pack-extension=C:\myext --pack-extension-key=C:\myext.pem
开始  在看这篇文章之前,你可以有两个选择:网上下载Chrome插件伴侣这一工具,一键离线安装插件(注意:博主非工具作者,不保证此工具安全性,请自行分析),然后关闭此文章。 继续看下去搞懂原理,然后自己手动离线安装插件或编写一个属于自己的离线安装工具。手动化安装方法  首先进入Chrome扩展程序的管理页面,在地址栏敲入chrome://extensions/即可进入。  然后把右上角的开发者模式打开(刚不是说无需这个模式吗?别急,暂时的。),拖入插件进行添加,复制插件的ID...
Chrome 可称宇宙最强浏览器,它的市场份额接近70%,如果把使用Blink内核,基于Chromium的, 如,Opera,360,UC,QQ,百度,猎豹等一系列换壳浏览器加上,市场份额估计更高! 纯净地 Chrome 不宜食用,需要佐料。 正确的做法,是自己安装扩展(小名叫做 插件 ),满足自己的特殊需求。 全地球人都知道,国内无法打开 Chrome 插件 商店。 不过,国内有很多下载站,用户可以自行搜索,下载 插件 ,然后 离线安装 。 但是,事情出现了变化。 最新版本的 Chrome 浏览器,主版本号为67,发布日期大概是2018.05.30。 对 Chrome 插件 安装策略进行了大幅度地调整——只允许在 Chrome 应用商店安装 插件 。 其它安装方式,如,内联安装, 离线安装 均已被取消。 ———————————————— 版权声明:本文为CSDN博主「qq_42690685」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_42690685/article/details/81039700
参考:https://github.com/dmlc/decord https://www.bilibili.com/video/av843220125/ ****安装: pip install decord 1、读取使用 from decord import VideoReader from decord import cpu, gpu vr = VideoReader('D:\clip4clip\msvd_data\YouTubeClips\_1vy2HIN60A_32_40.avi', ctx=cp
这两点浪费了大量新手的上手时间和后续重复安装的时间。 星愿浏览器(基于Chromium内核)完美的解决了以上两个问题。 兼容 chrome 支持的所有 插件 ,包括商店和第三方 插件 站,用户下载之后,自动检测提示安装。如果是已经存在本地的,直接把文件拖到浏览器里就能安装。非常,非常,非常的方便。
要在 Chrome 浏览器中进行 离线安装 Chrome 插件 ,您可以按照以下步骤进行操作: 1. 首先,找到您需要安装的 插件 离线安装 文件。这个文件通常是一个后缀为. crx 的文件。 2. 将 插件 离线安装 文件的后缀. crx 改为.rar,并解压缩得到一个文件夹。 3. 打开 Chrome 浏览器,并在地址栏中输入 " chrome ://extensions/",进入 Chrome 扩展程序管理页面。 4. 在扩展程序管理页面的右上角,找到并启用"开发者模式"选项。 5. 一旦开发者模式被启用,您将看到一个"加载正在开发的扩展程序"的选项。点击这个选项。 6. 在弹出的文件选择窗口中,选择刚才解压得到的文件夹,并确认添加。 7. 确认后,即可成功添加 离线安装 插件 。 请注意, 离线安装 插件 可能存在一些风险,请确保您从可信赖的来源获取 插件 文件,并且仔细检查 插件 的权限和功能以确保安全性。此外, 离线安装 插件 可能无法自动更新,您可能需要手动更新 插件 以获取最新版本的功能和修复。 希望这些步骤对您有帮助!如果您还有其他问题,请随时提问。