使用MiniZip库读取omni.jar归档文件

时间:2012-03-14 09:08:56

标签: c windows firefox archive ziparchive

Firefox将其默认配置信息存储在omni.jar(旧版本)或omni.ja(更高版本)中。 omn​​i.jar和omni.ja都只是zip文件格式。因此我们可以使用许多程序/库来压缩或解压缩它们。

我想获得Firefox的一些默认信息。所以我必须在那些omni文件中读取一些文件。我使用7zip程序查看omni或MiniZip / Zlib库的内容,以便在我的程序中读取omni。

对于更高版本的omni.ja,它读得很好。但对于旧版本,MiniZip无法打开omni.jar文件。然后我用7zip打开那些文件:omni.ja没问题,omni.jar失败了。但是对于其他一些程序,例如:WinRar,WinZip,......两个omni文件打开都很好。

我是google并获得了一些信息:使用旧版本,Firefox已经创建了没有zip标准的omni.jar文件(zip文件格式)。等等等等。但是为什么WinRar或WinZip可以阅读。

任何人都可以帮我获取MiniZip读取omni.jar文件而没有错误吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

解决方案非常简单:您的“旧”omni.jar已损坏。我的omni.jarPK开头。

我建议再次从official archive下载Firefox。

[编辑] 似乎Firefox的不同版本使用不同的工具来构建ZIP存档。 en-US版本使用类似ZIP的格式,不以PK开头。虽然理论上文件格式是有效的(它包含数据后跟条目列表),但几乎没有工具真正支持这种格式(因此WinZIP和WinRAR是例外)。

此意图通过将omni.jar重命名为omni.ja来反映:它未加密,它只是一种广泛支持的ZIP格式和US Firefox developers don't want to change this

其他开发人员(例如de版本)使用官方工具构建omni存档,以便可以使用任何工具修改这些版本。

您需要找到一种使用WinZIP / WinRAR更新存档的方法,或者您需要下载原始的firefox源并将补丁添加到构建过程中。