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

TarasPro

我是一位高级用户,并且具有一定的编程技能,但是我安装了一些firefox附加组件,我想在原始代码中添加一些额外的代码行。但是我只有.xpi文件。

我知道可以通过任何zip实用程序打开它。但是,当我在其中更改某些内容时,它不起作用。它将.js文件存储CONTENT文件夹中。有一个输出到文件的功能,我想格式化一个字符串,然后将其保存到文件中。

您不能不提及问题的开头,但是有一个主要目标和问题:如何在已安装的.xpi扩展名中重新编译或对.js文件进行任何更改以任何方式升级它们。

附加组件:

网址记录器

http-request-logger

nmaier

本质上,您只是再次压缩了东西(非SDK附加组件)。和您链接的那些加载项是非SDK加载项。

但是有一些陷阱:

  • 该扩展名可能已经过数字签名,如存在META-INF文件夹所示。修改内容当然会使签名无效。只需删除文件夹以使(已修改的)扩展名再次未签名即可。
  • 人们经常实际将外部文件夹拉上拉链。即生成的zip(.xpi)然后包含/some-addon-folder/install.rdf而不是仅仅/install.rdf确保不要压缩外部文件夹,而不要压缩其中的文件和子文件夹。
  • 一些zip工具生成的zip文件实际上已损坏。损坏程度足以被Firefox拒绝,但损坏程度却不足以破坏其他zip实用程序。确保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和目录结构,然后使用SDKcfx工具来构建新的XPI。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

修改现有的 DialogFragment

来自分类Dev

使用mkbootimg(cyanogenmod 12.1,lollipop)重新打包现有的boot.img

来自分类Dev

调试Firefox扩展-如何查看XPI中包含的所有JS和XUL文件?

来自分类Dev

在Silverstripe中扩展对象时,如何修改或删除现有的summary_fields?

来自分类Dev

CloudKit修改现有的CK订阅

来自分类Dev

如何修改现有的python文件

来自分类Dev

扩展现有的complexType

来自分类Dev

扩展现有的complexType

来自分类Dev

如何使用 Python 打包现有的 C++ 项目?

来自分类Dev

我可以使用任何现有的 Youtube API 访问和修改评论吗?

来自分类Dev

创建用户角色和权限以扩展现有的用户模型

来自分类Dev

如何在Xcode项目中添加和删除现有的自定义键盘扩展?

来自分类Dev

创建用户角色和权限以扩展现有的用户模型

来自分类Dev

如何在Xcode项目中添加和删除现有的自定义键盘扩展?

来自分类Dev

是否可以在不重新安装的情况下将现有的Firefox安装转换为ESR?

来自分类Dev

AWS CLI:将现有的cloudwatch警报附加到现有的自动扩展策略

来自分类Dev

AWS CLI:将现有的cloudwatch警报附加到现有的自动扩展策略

来自分类Dev

使用现有的ModelSerializer和JSONResponse

来自分类Dev

如何在Visual Studio扩展中查找和修改现有菜单命令

来自分类Dev

如何修改元素中现有的<content>?

来自分类Dev

修改现有的GWT应用程序

来自分类Dev

修改现有的表单值-GetChoices()无法正常工作

来自分类Dev

如何在Java中修改现有的jsonobject

来自分类Dev

通过x修改现有的哈希值并返回哈希

来自分类Dev

是否可以修改现有的TensorFlow计算图?

来自分类Dev

使用Terraform修改现有的IAM角色

来自分类Dev

修改现有的GWT应用程序

来自分类Dev

通过x修改现有的哈希值并返回哈希

Related 相关文章

  1. 1

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

  2. 2

    修改现有的 DialogFragment

  3. 3

    使用mkbootimg(cyanogenmod 12.1,lollipop)重新打包现有的boot.img

  4. 4

    调试Firefox扩展-如何查看XPI中包含的所有JS和XUL文件?

  5. 5

    在Silverstripe中扩展对象时,如何修改或删除现有的summary_fields?

  6. 6

    CloudKit修改现有的CK订阅

  7. 7

    如何修改现有的python文件

  8. 8

    扩展现有的complexType

  9. 9

    扩展现有的complexType

  10. 10

    如何使用 Python 打包现有的 C++ 项目?

  11. 11

    我可以使用任何现有的 Youtube API 访问和修改评论吗?

  12. 12

    创建用户角色和权限以扩展现有的用户模型

  13. 13

    如何在Xcode项目中添加和删除现有的自定义键盘扩展?

  14. 14

    创建用户角色和权限以扩展现有的用户模型

  15. 15

    如何在Xcode项目中添加和删除现有的自定义键盘扩展?

  16. 16

    是否可以在不重新安装的情况下将现有的Firefox安装转换为ESR?

  17. 17

    AWS CLI:将现有的cloudwatch警报附加到现有的自动扩展策略

  18. 18

    AWS CLI:将现有的cloudwatch警报附加到现有的自动扩展策略

  19. 19

    使用现有的ModelSerializer和JSONResponse

  20. 20

    如何在Visual Studio扩展中查找和修改现有菜单命令

  21. 21

    如何修改元素中现有的<content>?

  22. 22

    修改现有的GWT应用程序

  23. 23

    修改现有的表单值-GetChoices()无法正常工作

  24. 24

    如何在Java中修改现有的jsonobject

  25. 25

    通过x修改现有的哈希值并返回哈希

  26. 26

    是否可以修改现有的TensorFlow计算图?

  27. 27

    使用Terraform修改现有的IAM角色

  28. 28

    修改现有的GWT应用程序

  29. 29

    通过x修改现有的哈希值并返回哈希

热门标签

归档