私はMozilla Firefoxの独自のファイルフォーマット.jsonlz4
を手に入れようとしています。これは例えばsessionstore-backups/recovery.jsonlz4
に使われていますが、役に立ちません。
データ、特にクラッシュしたセッションのテキスト領域に入力した長いテキストを取り戻すにはどうすればよいですか。それは私のデータです!
実際に実行可能な解決策をもたらすGoogleの結果はほとんどありませんが、 https://www.reddit.com/r/firefox/comments/2ps6wg/jsonlz4_bookmark_backups/ によると、次のサイトが最も確実に機能するようです。 :
about:config
で、devtools.chrome.enabled
設定をデフォルトのfalse
から値true
に切り替えます。
open スクラッチパッド Firefox内から:
firefoxのScratchpad内のメニューバーで、EnvironmentからContentを---に変更してくださいブラウザ(このステップを省略すると、次のステップでException: ReferenceError: OS is not defined
のようなエラーが発生します)
firefoxのScratchpadには、次のようなコードを使用してください。
var file = "/Users/…/sessionstore-backups/recovery.baklz4";
//OS.File.read(file, { compression: "lz4" }).then(bytes =>
// OS.File.writeAtomic(file + ".uncompressed", bytes));
OS.File.read(file, { compression: "lz4" }).then(bytes => {
OS.File.writeAtomic(file + ".uncompressed.stringify",
JSON.stringify(JSON.parse(new TextDecoder().decode(bytes)),null,1))
});
JSON.stringify
の最後のパラメータは、各行に使用されるスペース数を処理します。 0を入れると1行に全部が表示され、1を入れると行が適切に分割されます(2を入れると無駄な空白が増えすぎてファイルのサイズが大きくなります)。
Run
ボタンをクリック
Terminalアプリ内からfgrep :textarea /Users/…/sessionstore-backups/recovery.baklz4.uncompressed.stringify
を実行します
残念ながら、非標準ヘッダのため、標準ツールは機能しません。それを変えるための オープンな提案 があります。どうやらMozillaのヘッダは標準のlz4フレームフォーマットが存在する前に考案されました。標準のlz4ブロックをラップします。
とは言っても、 同じバグレポート にはいくつかの代替方法があります。簡単にリストします。
dd if=original.jsonlz4 of=stripped.lz4 bs=8 skip=1
で)そしてそれはあなたに有効なlz4ブロックを残すべきです。これはlz4フレームとは異なることに注意してください。ほとんどのプログラミング言語はブロックを簡単にデコードできるライブラリを持っていますが、それを行うためのあらかじめ作られたツールを見つけるのはもっと難しいです。 liblz4-tool
パッケージはフレームフォーマットのみを受け付けます。この目的のために特別に設計された次の無料のオンラインツールを使用して、{profile-dir} /sessionstore-backups/recovery.jsonlz4ファイルからURLを抽出できました。
https://www.jeffersonscher.com/ffu/scrounger.html
同じサイトが{profile-dir}/bookmarkbackupsディレクトリからjsonlz4ファイルを復号化するための同様のツールを提供しています。