Ist es möglich, ein Firefox -Addon von XPI nach Xul zu dekodieren?
-
26-10-2019 - |
Frage
Ist es möglich, ein Firefox -Addon aus dem XPI -Bindungsformat an die Muttersprache XUL zu dekodieren?
Ich versuche nur zu lernen, wie man ein Addon macht. Also, ich denke, wenn ich ein Firefox -Addon dekodieren kann, kann ich Addon -Architektur lernen!
Lösung
Der größte Teil des Code, den Sie sich ansehen möchten, befindet sich im Chrome -Verzeichnis der Erweiterung, normalerweise in einer JAR -Datei. Alles, was Sie benötigen, ist ein Datei -Extraktor, der Zip -Dateien extrahieren kann. Sobald Sie den XPI extrahiert haben (es handelt sich nur um eine ZIP -Datei mit einer XPI -Erweiterung), öffnen Sie den Chrom -Unterordner und sehen Sie, was da ist. Wenn es sich um eine JAR -Datei handelt, extrahieren Sie den Inhalt (.Jar -Dateien sind auch nur Zip -Dateien mit einer anderen Erweiterung). Von dort aus gibt es wahrscheinlich einen Inhaltsordner, in dem die meisten Xul, CSS, JS usw. sein sollten.
Andere Tipps
XPI wird einfach eine ZIP -Datei platzieren, sodass Sie einfach den Inhalt extrahieren und die Dateien lesen können ...
Ich habe gerade gelernt, dass es auch gibt xpi-unpack und entsprechend xpi-pack
in Ubuntu (über sudo apt-get install mozilla-devscripts
); Scheint beides zu enttäuschen .xpi
und enthalten .jar
Dateien in Berücksichtigung ..
Prost!
Bearbeiten: Beachten Sie jedoch, dass Sie möglicherweise Erlaubnisprobleme haben xpi-unpack
; Hier ist ein Beispiel -Befehlszeilenprotokoll, das ich hatte:
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: Tatsächlich fehlt auch andere Dateien auch die Berechtigungen:
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
... so am besten, alles zu chmod: sudo chmod -R 755 colt-dir/
Bevor Sie versuchen, Änderungen vorzunehmen und zu packen (wie in xpi-pack colt-dir colt-2.xpi
)