Firefox或Thunderbird等Mozilla应用程序的扩展程序分发在XPI format,基本上是一个ZIP存档。因此,unzip
实用程序可以提取它。 bsdtar
也可以这样做。
但如果存档包含META-INF
目录,通常存储签名文件,则文件内容不会正确解压缩。只有在使用unzip
解压缩时,扩展程序才能正确显示为在Firefox中签名。
如果您想重新创建我的测试用例,请使用任何已签名的扩展名下载并解压缩这两个工具,例如Hide Tab Bar With One Tab。如果您在Firefox中点击此链接,则会建议您安装扩展程序,因此您可能希望使用curl
或wget
。
$ curl -LO 'https://addons.mozilla.org/firefox/downloads/latest/429664/addon-429664-latest.xpi'
$ mkdir bsdtar unzip
$ bsdtar -C bsdtar -xf addon-429664-latest.xpi
$ unzip -d unzip addon-429664-latest.xpi
$ diff -r bsdtar unzip
Files bsdtar/META-INF/manifest.mf and unzip/META-INF/manifest.mf differ
Files bsdtar/META-INF/mozilla.rsa and unzip/META-INF/mozilla.rsa differ
Files bsdtar/META-INF/mozilla.sf and unzip/META-INF/mozilla.sf differ
bsdtar
与unzip
的做法有何不同?这是一个错误吗?