コマンドラインを使用してjsonlz4ファイル(Firefoxブックマークバックアップ)を解凍するには?

コマンドラインを使用してjsonlz4ファイル(Firefoxブックマークバックアップ)を解凍するには?

JavaScript+ブラウザ固有の解凍方法がさまざまなようですが、jsonlz4ファイルを読みやすいファイルに変換する方法はありませんかunlz4

答え1

次のコマンドを使用してjsonlz4を解凍することができました。lz4json:

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

.jsonlz4今、これらの迷惑なファイルを解凍するためにコマンドラインプログラムを使用するLinuxとWindowsの両方のためのより簡単なソリューションがあります.mozlz4

~のためDebian/Ubuntu、あるlz4jsonパック:

sudo apt install lz4 lz4json

それは以下を提供しますlz4jsoncat

名前

lz4jsoncat - Mozilla lz4json形式の解凍ツール

要約

lz4jsoncat somefile.mozlz4> somefile.json

説明する

lz4jsoncatは、Firefoxブックマークのバックアップとセッションの復元によって作成されたlz4jsonファイルを解凍できます。データはstdoutにダンプされます。

~のためWindows(またはLinux)とモジズ4。利用可能なバイナリがあります公開ページ

答え4

実際、ほぼすべての Firefox プロファイルlz4ファイルはモジズ4文書。これは、同じ「ファイル形式ヘッダー」があることを意味します。 1つのファイルを除いて。私が話しているのはwebext.sc.lz4文書。これにはmozJSSCLz40v001\0ファイルヘッダーがあり、scファイルグループをバイトストリームに圧縮するいくつかのラップがあるかもしれません。

読み取りまたは圧縮できるFirefoxプラグインがあります。.mozlz4テキストファイルmozlz4 - 編集

関連情報