스크립트를 작성 중인데 ~/.mozilla/firefox/installs.ini
이제 다른 버전의 Firefox를 다운로드하여 실행할 때 동일한 ID를 가진 두 개의 섹션이 포함되어 있는 것을 확인했습니다 profiles.ini
. 제가 이해한 바로는 이것이 Firefox가 모든 설치 방법에서 기본적으로 로드할 프로필을 아는 방법입니다( 해당 파일에서 프로필 이름을 변경하면 거기에 넣은 프로필이 로드되기 시작했습니다. 하지만 firefox
해당 ID가 포함된 시작 폴더에서 config/ini 파일을 찾을 수 없습니다 .
Firefox는 각 설치에 대해 어떤 프로필을 로드할지 어떻게 알 수 있습니까(어떤 프로필에서 로드할지 모르는 경우) ~/.mozilla/firefox/profiles.ini
? 발견된 설치(실행 파일이 있는 폴더) 중에서 특정 ID에 해당하는 설치를 어떻게 선택할 수 있습니까(예: firefox
실행 권한이 있는 파일 검색 ) ? 웹 검색으로는 해당 정보를 찾을 수 없습니다.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
. 이제 Firefox about: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비트 City 해시 함수를 사용하여 다이제스트하여 얻습니다.
다음은 해시 함수 제품군에 대한 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
이게 도움이 되길 바란다.