firefox 扩展 hack

edgy的firefox已经升到 2.0b1 了,不过这样以来原来的好多扩展都不能用了,等了几天也不见作者更近,郁闷......自己动手吧

扩展的.xpi文件其实都是zip压缩文件,这个简单,unzip xxx.xpi,ok,解压缩的文件中有一个install.rdf,这个文件定义了扩展名称,版本,支持的firefox版本以及其他的一些附加信息:

<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">

<Description about="urn:mozilla:install-manifest">
<em:id>{2722cbe5-82a8-4037-a8f5-e1cb2100e3b2}</em:id>
<em:name>Adsense Notifier</em:name>
<em:version>0.9.1</em:version>
<em:description>Displays your adsense earnings on the statusbar.</em:description>
<em:creator>Allen Holman</em:creator>
<em:homepageURL>http://code.mincus.com</em:homepageURL>
<em:iconURL>chrome://adsense/skin/adsense.png</em:iconURL>
<em:optionsURL>chrome://adsense/content/options.xul</em:optionsURL>
<em:aboutURL>chrome://adsense/content/about.xul</em:aboutURL>
<em:file>
<Description about="urn:mozilla:extension:file:adsense.jar">
<em:locale>locale/de-DE/adsense/</em:locale>
<em:locale>locale/en-US/adsense/</em:locale>
<em:locale>locale/it-IT/adsense/</em:locale>
<em:locale>locale/pl-PL/adsense/</em:locale>
<em:locale>locale/zh-CN/adsense/</em:locale>
<em:package>content/adsense/</em:package>
<em :s kin>skin/classic/adsense/</em :s kin>
</Description>
</em:file>

<!-- Firefox -->
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>1.0</em:minVersion>
<em:maxVersion>1.5.0.*</em:maxVersion>

</Description>
</em:targetApplication>

<!-- Flock -->
<em:targetApplication>
<Description>
<em:id>{a463f10c-3994-11da-9945-000d60ca027b}</em:id>
<em:maxVersion>1.0+</em:maxVersion>
<em:minVersion>1.0+</em:minVersion>
</Description>
</em:targetApplication>

</Description>
</RDF>

看到了么? 粗体表示出来的那两句,em:minVersion定义了所支持的firefox的最小版本,em:maxVersion所定义的是最大版本,不用多说了,把那

<em:maxVersion>1.5.0.*</em:maxVersion>

改成大于你的firefox版本就行了:

<em:maxVersion>3.5.0.*</em:maxVersion>

然后打包,注意还是要xpi结尾

zip -r xxx.xpi *

ok,现在用firefox打开新的xpi文件,安装成功

对于已经安装的扩展就更简单了:

cd ~/.mozilla/firefox/

然后是你的profile的文件夹名称,类似于xpciff4l.default这样的

cd xpciff4l.default/extensions

这里存放了所有已经安装的扩展,扩展的文件夹是一些类似于{2722cbe5-82a8-4037-a8f5-e1cb2100e3b2}的文件夹,都是已经解压缩好的插件,还是看这些文件夹下面的install.rdf文件,做做版本号的修改就行了

注意:这样修改只是让扩展可以运行,但并不能保证可以正常运行,目前我所常用的插件可以正常使用的有:

del.icio.us
external ip
compact menu
stop or reload button
web developer

不能用的只有  tab mix plus,不过这个插件可以去作者的网站上下到支持ff2的版本,mozilla主站上是没有的

还有,其实很多主题也可以用类似的方法修改,如果遇到显示不正常的话就要改主题的css了,比较麻烦的说

« links for 2006-09-19 links for 2006-09-13 »

1 Response to firefox 扩展 hack

gravatar Felix at September 18, 2006 3:16am

懒得自己改的话,可以用nightly test tools extension

Name (*)

Email Address (*)

Web Address

Other  Receive Email Notify

Comment