2011-04-28 6 views
5

Возможно ли расшифровать аддон firefox из формата привязки XPI на родной язык XUL?Возможно ли расшифровать аддон Firefox от XPI до XUL?

Я просто пытаюсь научиться создавать аддон. Итак, я думаю, что если я смогу декодировать аддон Firefox, тогда я смогу изучить архитектуру аддона!

+1

Вы можете найти аддон, источник которого легко доступен. – compman

+1

Или прочитайте [документацию] (https://developer.mozilla.org/en/building_an_extension). –

ответ

2

Большая часть кода, который вы хотите посмотреть на это в каталоге хромированной внутренней линии, как правило, в файл jar. Все, что вам нужно - это экстрактор файлов, который может извлекать zip-файлы. Как только вы извлечете xpi (это всего лишь zip-файл с расширением xpi), откройте хромированную подпапку и посмотрите, что там. Если это файл jar, извлеките его содержимое (файлы .jar также являются только zip-файлами с другим расширением). Оттуда, там, наверное, папка содержание, которое должно иметь большую часть XUL, CSS, JS и т.д.

+0

Ах, мое плохое; Файлы jar также являются только zip-файлами. Просто переименуйте его в .zip и используйте приложение unzip. – yuttadhammo

7

XPI просто поместить ZIP-файл, так что вы можете просто извлечь его содержимое и читать файлы ...

3

Просто узнал, что есть также xpi-unpack и соответствующие xpi-pack в Ubuntu (через sudo apt-get install mozilla-devscripts); кажется, распаковывает как .xpi, так и включает .jar файлов.

Приветствия!

Редактировать: обратите внимание, что у вас могут возникнуть проблемы с разрешением xpi-unpack; вот лог пример командной строки я имел:

[email protected]:Desktop$ xpi-unpack colt.xpi colt-dir 
Unpacking colt.xpi 
Unpacking ./chrome/colt.jar 
Unpacked xpi file. 
[email protected]: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 

[email protected]:Desktop$ stat -c '%n %a' colt-dir/chrome/colt.jar\!/ 
colt-dir/chrome/colt.jar!/ 755 
[email protected]:Desktop$ stat -c '%n %a' colt-dir/chrome/colt.jar\!/content/ 
colt-dir/chrome/colt.jar!/content/ 0 

[email protected]:Desktop$ sudo chmod -R 755 colt-dir/chrome/colt.jar\!/ 

[email protected]: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: На самом деле, оказывается, другие файлы могут отсутствовать разрешения тоже:

[email protected]: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 
[email protected]: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)

+1

Почему бы просто не использовать диспетчер архива? Он показывает содержимое расширений. – NoBugs