是否可以将 firefox 插件从 XPI 绑定格式解码为本地语言 XUL?
我只是想学习如何制作插件。所以,我认为如果我可以解码一个 Firefox 插件,那么我就可以学习插件架构!
是否可以将 firefox 插件从 XPI 绑定格式解码为本地语言 XUL?
我只是想学习如何制作插件。所以,我认为如果我可以解码一个 Firefox 插件,那么我就可以学习插件架构!
XPI 只是简单地放置一个 ZIP 文件,因此您可以提取其内容并读取文件...
您要查看的大部分代码都在扩展程序的 chrome 目录中,通常在 jar 文件中。您所需要的只是一个可以提取 zip 文件的文件提取器。解压缩 xpi(它只是一个带有 xpi 扩展名的 zip 文件)后,打开 chrome 子文件夹并查看其中的内容。如果它是一个 jar 文件,请提取它的内容(.jar 文件也只是具有不同扩展名的 zip 文件)。从那里,可能有一个内容文件夹,其中应该包含大部分 xul、css、js 等。
刚刚了解到在 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
)