Pregunta

¿Es posible decodificar un complemento de Firefox del formato de enlace XPI al idioma nativo XUL?

Solo estoy tratando de aprender a hacer un complemento. Entonces, creo que si puedo decodificar un complemento de Firefox, ¡puedo aprender arquitectura de complemento!

¿Fue útil?

Solución

La mayor parte del código que querrá ver está en el directorio Chrome de la extensión, generalmente en un archivo JAR. Todo lo que necesita es un extractor de archivos que pueda extraer archivos zip. Una vez que extrae el XPI (es solo un archivo zip con una extensión XPI), abra la subcarpeta de Chrome y vea qué hay allí. Si es un archivo JAR, extraiga su contenido (los archivos .JAR también son solo archivos zip con una extensión diferente). A partir de ahí, probablemente haya una carpeta de contenido, que debería tener la mayoría de los Xul, CSS, JS, etc.

Otros consejos

XPI simplemente se pone un archivo zip, por lo que puede extraer su contenido y leer los archivos ...

Acabo de aprender que también hay XPI-Unpack y correspondiente xpi-pack en Ubuntu (a través de sudo apt-get install mozilla-devscripts); parece tomar el desempaquetado de ambos .xpi e incluido .jar archivos en cuenta ..

¡Salud!

Editar: Nota Sin embargo, puede tener problemas de permiso con xpi-unpack; Aquí hay un ejemplo de registro de línea de comando que tenía:

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: en realidad, resulta que otros archivos también pueden carecer de permisos:

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

... Tan mejor para ver todo: sudo chmod -R 755 colt-dir/ antes de tratar de hacer cambios y empacar (como en xpi-pack colt-dir colt-2.xpi)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top