スクリプトを作成していますが、~/.mozilla/firefox/installs.ini
別のバージョンのFirefoxをダウンロードして実行したときに同じIDを持つ2つのセクションが含まれていることを確認しましたprofiles.ini
。私が理解したところ、これはFirefoxがすべてのインストール方法でデフォルトでロードするプロファイルを知る方法です(そのファイルのプロファイル名を変更すると、そこに置いたプロファイルがロードされ始めましたが、firefox
そのIDを含むスタートアップフォルダでconfig /iniファイルが見つかりません。
Firefoxは各インストールでどのプロファイルをロードするかをどのように知ることができますか(どのプロファイルからロードするのかわからない場合)~/.mozilla/firefox/profiles.ini
。見つかったインストール(実行可能ファイルを含むフォルダ)から特定のIDに対応するインストールをどのように選択できますか(例:firefox
実行権限を持つファイルの検索)。 Web 検索ではその情報が見つかりません。firefox
~/.mozilla/firefox/installs.ini
答え1
したがって、これは部分的な答えにすぎませんが、すべてのインストールのデフォルトプロファイルはおよびで作成されたinstalls.ini
プロファイルですprofiles.ini
。
たとえば、新しいMX Linux Live USBを「焼いた」とします。 Firefoxを起動しましたが、iniファイルの内容は次のとおりです。
demo@mx1:~/.mozilla/firefox
$ cat installs.ini
[6AFDA46A1A8AD48]
Default=ja0llll6.default-release
Locked=1
demo@mx1:~/.mozilla/firefox
$ cat profiles.ini
[Profile1]
Name=default
IsRelative=1
Path=83agh85a.default
Default=1
[Profile0]
Name=default-release
IsRelative=1
Path=ja0llll6.default-release
[General]
StartWithLastProfile=1
Version=2
[Install6AFDA46A1A8AD48]
Default=ja0llll6.default-release
Locked=1
ロードされた設定ファイルはja0llll6.default-release
。 Firefoxabout:profiles
ページで他のプロファイルのデフォルトプロファイルを変更しました。現在の内容は次のとおりです。
demo@mx1:~/.mozilla/firefox
$ cat installs.ini
[6AFDA46A1A8AD48]
Default=83agh85a.default
Locked=1
demo@mx1:~/.mozilla/firefox
$ cat profiles.ini
[Profile1]
Name=default
IsRelative=1
Path=83agh85a.default
Default=1
[Profile0]
Name=default-release
IsRelative=1
Path=ja0llll6.default-release
[General]
StartWithLastProfile=1
Version=2
[Install6AFDA46A1A8AD48]
Default=83agh85a.default
Locked=1
ご覧のとおり、デフォルト値が切り替わり83agh85a.default
ましinstalls.ini
たprofiles.ini
。
このDefault=1
項目は(Firefox> = 67の場合)何を言っているのかを示します。以前基本設定ファイル(下記リンク記事を参照)
いくつかのインストールセクションがinstalls.ini
いつprofiles.ini
。
ini
たとえば、私のローカルコンピュータのファイルの内容は次のようになります。
nico@xantico:~/.mozilla/firefox$ cat installs.ini
[46F492E0ACFF84D4]
Default=s25g8abr.dev-edition-default
Locked=1
[4F96D1932A9F858E]
Default=waxl9k8u.default
Locked=1
nico@xantico:~/.mozilla/firefox$ cat profiles.ini
[Install46F492E0ACFF84D4]
Default=s25g8abr.dev-edition-default
Locked=1
[Install4F96D1932A9F858E]
Default=waxl9k8u.default
Locked=1
[Profile1]
Name=default-release
IsRelative=1
Path=v6gmyi1u.default-release
[Profile0]
Name=default
IsRelative=1
Path=waxl9k8u.default
Default=1
[General]
StartWithLastProfile=1
Version=2
他の情報がない場合は、どのプロファイルが使用されたかを知る方法はありません。クリップオプティマイザの情報が「現在の」ハッシュを特定するのに役立つかもしれません。
この記事を読むのは面白いかもしれません(しかし、理解するのは簡単ではなく、この問題を解決する方法を理解できません)。
https://support.mozilla.org/en-US/kb/understanding-length-profile-installation
答え2
私は一日中この同じ問題に取り組んでおり、数時間の試行錯誤と不完全で誤解を招く数多くの文書と無駄なGoogleの結果を調査したところ、ついに答えを見つけました。
各インストール名の16進文字列は、インストールパス文字列を整数の配列に変換し、Googleの64ビットシティハッシュ関数を使用してダイジェストすることによって取得されます。
以下は、ハッシュ関数スイートに関するGoogleの発表とホワイトペーパーのリンクです。 https://opensource.googleblog.com/2011/04/introducing-cityhash.html
これはC ++、Go、およびRustのいくつかの実装です。
https://github.com/google/cityhash
https://github.com/bradenhilton/cityhash/blob/main/cityhash.go
https://docs.rs/fasthash/latest/fasthash/city/index.html
Firefoxはnsis/Contrib/CityHash/cityhash/city.cppに独自のバージョンを実装しています。
答え3
現在のFirefoxプロファイルフォルダを取得するには、次のように入力します。
awk -F= '{if(NF){if($1=="Path")path=$2;if($1=="Default")def=$2}else{if(def==1){print "~/.mozilla/firefox/"path;exit}}}' ~/.mozilla/firefox/profiles.ini
これが役に立つことを願っています。