6

是否可以将 firefox 插件从 XPI 绑定格式解码为本地语言 XUL?

我只是想学习如何制作插件。所以,我认为如果我可以解码一个 Firefox 插件,那么我就可以学习插件架构!

4

3 回答 3

8

XPI 只是简单地放置一个 ZIP 文件,因此您可以提取其内容并读取文件...

于 2011-04-28T16:45:31.233 回答
5

您要查看的大部分代码都在扩展程序的 chrome 目录中,通常在 jar 文件中。您所需要的只是一个可以提取 zip 文件的文件提取器。解压缩 xpi(它只是一个带有 xpi 扩展名的 zip 文件)后,打开 chrome 子文件夹并查看其中的内容。如果它是一个 jar 文件,请提取它的内容(.jar 文件也只是具有不同扩展名的 zip 文件)。从那里,可能有一个内容文件夹,其中应该包含大部分 xul、css、js 等。

于 2011-05-07T16:51:53.167 回答
3

刚刚了解到在 Ubuntu中也有xpi-unpack和对应的(通过);似乎将解包和包含文件都考虑在内..xpi-packsudo apt-get install mozilla-devscripts.xpi.jar

干杯!

编辑:但是请注意,您可能有权限问题xpi-unpack; 这是我拥有的示例命令行日志:

user@PC:Desktop$ xpi-unpack colt.xpi colt-dir
Unpacking colt.xpi
Unpacking ./chrome/colt.jar
Unpacked xpi file.
user@PC:Desktop$ ls -la colt-dir/chrome/colt.jar\!/
total 16
drwxr-xr-x  4 user user 4096 2011-07-05 09:52 .
drwxr-xr-x  3 user user 4096 2011-07-05 09:52 ..
d---------  2 user user 4096 2010-09-12 05:15 content
d--------- 25 user user 4096 2011-01-08 17:08 locale

user@PC:Desktop$ stat -c '%n %a' colt-dir/chrome/colt.jar\!/
colt-dir/chrome/colt.jar!/ 755
user@PC:Desktop$ stat -c '%n %a' colt-dir/chrome/colt.jar\!/content/
colt-dir/chrome/colt.jar!/content/ 0

user@PC:Desktop$ sudo chmod -R 755 colt-dir/chrome/colt.jar\!/ 

user@PC:Desktop$ ls -la colt-dir/chrome/colt.jar\!/
total 16
drwxr-xr-x  4 user user 4096 2011-07-05 09:52 .
drwxr-xr-x  3 user user 4096 2011-07-05 09:52 ..
drwxr-xr-x  2 user user 4096 2010-09-12 05:15 content
drwxr-xr-x 25 user user 4096 2011-01-08 17:08 locale

EDIT2:实际上,其他文件也可能缺少权限:

user@PC:Desktop$ ls -la colt-dir/
total 28
drwxr-xr-x 4 user user 4096 2011-07-05 09:52 .
drwxr-xr-x 5 user user 4096 2011-07-05 10:04 ..
drwxr-xr-x 3 user user 4096 2011-07-05 10:04 chrome
---------- 1 user user 1337 2011-06-23 00:05 chrome.manifest
drwxr-xr-x 3 user user 4096 2011-07-05 09:52 defaults
---------- 1 user user 1969 2011-06-23 00:05 install.rdf
---------- 1 user user 1275 2010-09-12 05:04 LICENSE.txt
user@PC:Desktop$ stat -c '%n %a' colt-dir/install.rdf 
colt-dir/install.rdf 0

...所以最好 chmod 一切:sudo chmod -R 755 colt-dir/在尝试进行更改和打包之前(如xpi-pack colt-dir colt-2.xpi

于 2011-07-05T07:44:34.077 回答