重新打包和/或修改现有的Firefox扩展XPI



我是一名高级用户,有一些程序员技能,但我已经安装了一些firefox插件,我想在原始代码中添加一些额外的代码行。但我只有.xpi文件。

我知道它可以被任何zip实用程序打开。但当我在里面换东西的时候,它就不起作用了。它将.js文件存储在CONTENT文件夹中。有一个输出到文件的函数,我想格式化一个正在保存到文件中的字符串。

您可以不提问题的开头,但有一个主要目标和问题:如何重新编译或应用对已安装.xpi扩展中的.js文件的任何更改?任何升级它们的方法。

附加组件:

url记录器

http请求记录器

本质上,您只需再次压缩内容(非SDK插件(。您链接的那些加载项是非SDK加载项。

但是也有一些陷阱:

  • 扩展名可能已进行了数字签名,如存在META-INF文件夹所示。修改内容当然会使签名无效。只需删除文件夹即可使(修改后的(扩展名再次未签名
  • 很多时候,人们实际上会把外层文件夹拉上拉链。即,所得到的zip(.xpi(然后包含/some-addon-folder/install.rdf而不仅仅是/install.rdf。请确保不要压缩外部文件夹,只压缩其中的文件和子文件夹
  • 一些zip工具生成的zip文件本质上是损坏的;破坏到足以被Firefox拒绝,但没有破坏到足以让其他zip实用程序破坏。确保zip有效,如果有疑问,请切换您使用的zip实用程序
  • 还记得实际压缩东西,而不是7zip、rar、tar.gz或其他什么。(

这是正确的压缩:

$ unzip -l http_request_logger-0.1-fx.xpi 
Archive:  http_request_logger-0.1-fx.xpi
  Length     Date   Time    Name
 --------    ----   ----    ----
      240  07-29-11 11:45   chrome.manifest
        0  07-29-11 11:42   components/
     1558  07-29-11 11:47   components/httpRequestLogger.js
     1021  07-30-11 12:39   install.rdf
 --------                   -------
     2819                   4 files

这没有正确压缩(通过使用OSX压缩菜单项产生(:

$ unzip -l http_request_logger-0.1-fx.zip 
Archive:  http_request_logger-0.1-fx.zip
  Length     Date   Time    Name
 --------    ----   ----    ----
        0  05-16-14 01:54   http_request_logger-0.1-fx/
      240  07-29-11 11:45   http_request_logger-0.1-fx/chrome.manifest
        0  05-16-14 01:54   __MACOSX/
        0  05-16-14 01:54   __MACOSX/http_request_logger-0.1-fx/
      187  07-29-11 11:45   __MACOSX/http_request_logger-0.1-fx/._chrome.manifest
        0  07-29-11 11:42   http_request_logger-0.1-fx/components/
     1558  07-29-11 11:47   http_request_logger-0.1-fx/components/httpRequestLogger.js
        0  05-16-14 01:54   __MACOSX/http_request_logger-0.1-fx/components/
      187  07-29-11 11:47   __MACOSX/http_request_logger-0.1-fx/components/._httpRequestLogger.js
     1021  07-30-11 12:39   http_request_logger-0.1-fx/install.rdf
      187  07-30-11 12:39   __MACOSX/http_request_logger-0.1-fx/._install.rdf
      187  05-16-14 01:54   __MACOSX/._http_request_logger-0.1-fx
 --------                   -------
     3567                   12 files

(除了__MACOSX垃圾,现在是http_request_logger-0.1-fx/install.rdf(

我建议你也阅读设置扩展开发环境,特别是关于代理文件的部分。(

当涉及到SDK加载项时(如harness-options.json文件所示(,重新压缩可能有效,也可能无效。最好只复制一个基于.xpi内容的package.json和目录结构,并使用SDK cfx工具构建一个新的XPI。

相关内容

  • 没有找到相关文章