是否有可能将Firefox插件从XPI解码到XUL?

时间:2011-04-28 16:30:10

标签: firefox firefox-addon xul decompiling xpi

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

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

3 个答案:

答案 0 :(得分:7)

XPI只是放一个ZIP文件,所以你只需要提取其内容并阅读文件......

答案 1 :(得分:3)

您要查看的大部分代码都位于扩展程序的chrome目录中,通常位于jar文件中。您只需要一个可以提取zip文件的文件提取器。一旦你提取了xpi(它只是一个带有xpi扩展名的zip文件),打开chrome子文件夹,看看那里有什么。如果它是一个jar文件,请提取它的内容(.jar文件也只是具有不同扩展名的zip文件)。从那里,可能有一个内容文件夹,应该有大部分的xul,css,js等。

答案 2 :(得分:3)

刚刚了解到Ubuntu中还有xpi-unpack和相应的xpi-pack(来自sudo 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中所述)