如何使用命令行解压jsonlz4文件(Firefox书签备份)?

如何使用命令行解压jsonlz4文件(Firefox书签备份)?

似乎有各种 JavaScript+浏览器特定的解压缩方法,但是没有某种方法可以将 jsonlz4 文件转换为unlz4可以读取的内容吗?

答案1

我能够使用以下命令解压 jsonlz4lz4json

apt-get install liblz4-dev
git clone https://github.com/andikleen/lz4json.git
cd lz4json
make
./lz4jsoncat ~/.mozilla/firefox/*/bookmarkbackups/*.jsonlz4

答案2

将此脚本保存在文件中,例如mozlz4

#!/usr/bin/env python
from sys import stdin, stdout, argv, stderr
import os
try:
    import lz4.block as lz4
except ImportError:
    import lz4

stdin = os.fdopen(stdin.fileno(), 'rb')
stdout = os.fdopen(stdout.fileno(), 'wb')

if argv[1:] == ['-c']:
    stdout.write(b'mozLz40\0' + lz4.compress(stdin.read()))
elif argv[1:] == ['-d']:
    assert stdin.read(8) == b'mozLz40\0'
    stdout.write(lz4.decompress(stdin.read()))
else:
    stderr.write('Usage: %s -c|-d < infile > outfile\n' % argv[0])
    stderr.write('Compress or decompress Mozilla-flavor LZ4 files.\n\n')
    stderr.write('Examples:\n')
    stderr.write('\t%s -d < infile.json.mozlz4 > outfile.json\n' % argv[0])
    stderr.write('\t%s -c < infile.json > outfile.json.mozlz4\n' % argv[0])
    exit(1)

答案3

现在,Linux 和 Windows 都有更简单的解决方案,可以使用命令行程序来解压缩这些烦人的.jsonlz4文件.mozlz4

为了Debian/Ubuntu,现在有lz4json包裹

sudo apt install lz4 lz4json

它提供lz4jsoncat

姓名

lz4jsoncat - mozilla lz4json 格式的解压缩工具

概要

lz4jsoncat somefile.mozlz4 > somefile.json

描述

lz4jsoncat 可以解压 Firefox 书签备份和会话恢复生成的 lz4json 文件。数据被转储到 stdout。

为了视窗(或Linux),还有莫兹兹4。有可用的二进制文件发布页面

答案4

实际上几乎所有 Firefox 配置文件lz4文件是莫兹兹4文件。这意味着它们具有相同的“文件格式标头”。除了一个文件。我谈论webext.sc.lz4文件。它有mozJSSCLz40v001\0文件头,也许还有一些sc包装,可以将文件组打包到字节流上。

有一个 Firefox 插件可以读取或压缩.mozlz4文本文件mozlz4-编辑

相关内容