前言 #
书接上文,我们已经使用了 user.js 对我们的 Firefox 进行了许多配置
不过,对其自定义的方式远不止于此
本文就让我们来研究一下“企业策略”和可以锁定 about:config 配置项的 AutoConfig
参考:https://mozilla.github.io/policy-templates/
企业策略 - policies.json #
如何配置 #
这是另一个跨平台配置 Firefox 的方式,不过相对而言,其灵活性较低,且其本身面向的就是企业场景
我们需要在 Firefox 的安装目录新建一个 distribution 目录放置policies.json
Linux 视发行版而异,亦可放置在/etc/firefox/policies
MacOS 应该为Firefox.app/Contents/Resources/distribution
、
Windows 不必多说
防止 Firefox 更新超过指定版本 #
您可以将任何版本指定为 xx. Firefox 将更新所有次要版本,但不会更新超过主要版本. 您也可以将版本指定为 xx.xx Firefox 将更新所有补丁版本,但不会更新超过次要版本. 应指定存在或保证存在的版本。如果您指定的版本最终不存在,Firefox 将更新超过该版本.
{
"policies": {
"AppUpdatePin": "128.10.0"
}
}
添加自定义搜索引擎 #
以 StartPage 为例 (IconURL 亦可为 Base64 编码的图片数据)
{
"policies": {
"SearchEngines": {
"Add": [
{
"Name": "StartPage",
"URLTemplate": "https://www.startpage.com/search?q={searchTerms}",
"Method": "POST",
"IconURL": "https://www.startpage.com/favicon.ico",
"Alias": "@sp",
"Description": "StartPage",
"PostData": "",
"SuggestURLTemplate": ""
}
]
}
}
}
自动安装浏览器扩展 #
通过 policies.json ,我们可以使 Firefox 自动安装扩展,且使之无法卸载
这在一些场景相对来说很有用
首先,我们需要获取扩展在 AMO、addons.mozilla.org) 的“GUID”
我们可以使用
curl https://addons.mozilla.org/api/v5/addons/addon/ublock-origin/ | jq -r .guid
获取到uBlock0@raymondhill.net
policies.json:
{
"policies": {
"ExtensionSettings": {
"uBlock0@raymondhill.net": {
"installation_mode": "force_installed",
"install_url": "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"
}
}
}
}
这将自动下载 uBlock Origin 的 xpi 并且安装,由于设置了 “force_installed”,用户将无法卸载&禁用之 “installation_mode"可选有
allowed 允许用户安装扩展。这是默认行为。不需要install_url;将根据 ID 自动允许
blocked 阻止扩展的安装,并将其从设备中删除(如果已安装)
force_installed 扩展程序会自动安装,用户无法删除。此选项对默认配置无效,需要install_url
normal_installed 扩展会自动安装,但用户可以禁用。此选项对默认配置无效,需要install_url
结合updates_disabled
,我们可以达到锁定扩展版本的效果
{
"policies": {
"ExtensionSettings": {
"uBlock0@raymondhill.net": {
"installation_mode": "force_installed",
"install_url": "https://addons.mozilla.org/firefox/downloads/file/4573289/ublock_origin-1.66.0.xpi"
},
"updates_disabled": true
}
}
}
(URL 应该为特定版本的链接,可在 AMO 找到 https://addons.mozilla.org/firefox/addon/ublock-origin/versions/ 扩展页面底部的“Version History See all versions”可以跳转过去
对于本地 xpi 文件,我们应使用file://
引用
AutoConfig #
AutoConfig 的配置语法和 user.js 完全相同
我们用它主要做的是锁定配置项目和恢复配置项为默认值
文档于此处:https://support.mozilla.org/zh-CN/kb/autoconfigfirefox
首先我们要在 Firefox 安装目录创建defaults/pref/autoconfig.js
特别的,在 Linux ,一般在/usr/lib/firefox/defaults/pref/autoconfig.js
pref("general.config.filename", "firefox.cfg");
pref("general.config.obscure_value", 0);
第一行指定 AutoConfig 文件的名称。您可以指定您喜欢的任何名称, 但不能更改文件的位置。 第二行表示 AutoConfig 不应该被混淆。默认情况下, Firefox 希望该文件被字节移动13字节, 以便对其进行混淆。
然后在安装目录新建firefox.cfg
Linux 一般为/usr/lib/firefox/firefox.cfg
// IMPORTANT: Start your code on the 2nd line
之后只需编辑/usr/lib/firefox/firefox.cfg
可用操作有:
pref(prefName, value)——设置首选项的用户值。此函数将首选项显式设置为用户首选项。这意味着, 如果用户更改了该值, 则每次启动浏览器时都会重置它。 defaultPref(prefName, value)——设置首选项的默认值。这是用户未设置任何值时首选项的值。 lockPref(prefName, value) ——设置首选项的默认值并锁定它。这是人们最熟悉的功能, 当涉及到 AutoConfig 文件。锁定首选项可防止用户更改它, 在大多数情况下, 在首选项中禁用 UI, 这样用户就可以明显地禁用了首选项。 unlockPref(prefName)——解锁首选项。例如, 在某些情况下, 可能会锁定每个人的首选项, 然后为特定用户解除锁定。 getPref(prefName)——检索首选项的值。如果首选项不存在, 则显示错误。您应该只在您知道存在的首选项上使用此选项。 clearPref(prefName)——移除首选项的用户值, 将其重置为其默认值。 displayError(funcname, message)——以特定格式显示错误以便调试,例如:Netscape.cfg/AutoConfig failed. Please contact your system administrator. Error: [funcname] failed: [message] getenv(name)——允许您查询环境变量。这可以让你做一些事情, 比如获取用户名和其他系统信息。
例如锁定 RFP 为启用
lockPref("privacy.resistFingerprinting", true)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
我的 Firefox 自定义手记 - policies.json&AutoConfig篇[2] · 沉渊覆雪的博客
https://0o0.codeberg.page/posts/firefox/autojs/
作者: 沉渊覆雪
发布于: 2025年10月05日
更新于: 暂无更新
许可协议: CC BY-NC-SA 4.0
协议链接: https://creativecommons.org/licenses/by-nc-sa/4.0/
-----BEGIN PGP SIGNATURE-----
iHUEARYKAB0WIQSDlQpW540GLmVjTLm5X7MepujEFgUCaOLJxAAKCRC5X7MepujE
FirNAQCxpwkybrL4ZVyS4uDzwfvKK2KrfK71au+qvF0oUWu1TwD/VNWgkn1gkFk1
F40oHf8ZXvOIMRSYQfMc44ZJd08zVwU=
=71Sp
-----END PGP SIGNATURE-----