自版本42以来,Firefox默认拒绝安装未签名的附加组件。如何禁用此验证?
答案 0 :(得分:35)
只能在Nightly和Developer频道中禁用插件验证。换句话说,在Beta版本和标准版本中 。
about:config
(将其输入地址栏)xpinstall.signatures.required
设为false
。答案 1 :(得分:5)
要完成上述答案,我发现firefox-autoconfig,其中包括在 autoconfig.js
和<FIREFOX INSTALLATION DIR>/default/prefs
文件中安装ci.clg
文件 <FIREFOX INSTALLATION DIR>
这是在Firefox打开时(使用Firefox 45.0.1测试)确定并自动禁用xpinstall.signatures.required
(以及其他选项)的方法
您会在 autoconfig.js
:
//
pref("general.config.filename", "ci.cfg");
pref("general.config.obscure_value", 0);
ci.cfg
中的内容:
// Disable checking if firefox is default browser
lockPref('browser.shell.checkDefaultBrowser', false);
// Disable restoring session
lockPref('browser.sessionstore.resume_from_crash', false);
// Disable extension signature check
lockPref('xpinstall.signatures.required', false);
// Allow extensions to be installed without user prompt
pref("extensions.autoDisableScopes", 0);
pref("extensions.enabledScopes", 15);
// Disable updater
lockPref("app.update.enabled", false);
// make absolutely sure it is really off
lockPref("app.update.auto", false);
lockPref("app.update.mode", 0);
lockPref("app.update.service.enabled", false);
// Prevent closing dialogs
lockPref("browser.showQuitWarning", false);
lockPref("browser.warnOnQuit", false);
lockPref("browser.tabs.warnOnClose", false);
lockPref("browser.tabs.warnOnCloseOtherTabs", false);
// Disable Add-ons compatibility checking
clearPref("extensions.lastAppVersion");
// Don't show 'know your rights' on first run
pref("browser.rights.3.shown", true);
//Disable plugin checking
lockPref("plugins.hide_infobar_for_outdated_plugin", true);
clearPref("plugins.update.url");
// Disable health reporter
lockPref("datareporting.healthreport.service.enabled", false);
// Disable all data upload (Telemetry and FHR)
lockPref("datareporting.policy.dataSubmissionEnabled", false);
// Disable crash reporter
lockPref("toolkit.crashreporter.enabled", false);
Components.classes["@mozilla.org/toolkit/crash-reporter;1"].getService(Components.interfaces.nsICrashReporter).submitReports = false;
// Browser Console command line
pref("devtools.chrome.enabled", true);
答案 2 :(得分:4)
从Firefox 47开始:Firefox for Desktop的发行版和Beta版将不允许安装未签名的扩展,没有覆盖。
有关详细信息,请参阅Mozilla Wiki page on Extension Signing。
答案 3 :(得分:1)
@ Makyen的解决方案有效但会完全禁用签名检查:
Components.utils.import("resource://gre/modules/addons/XPIProvider.jsm", {})
.eval("SIGNED_TYPES.clear()");
您不会获得插件是否已签名的信息。
相反,我建议:
/* Let unsigned addons live! */
Components.utils.import("resource://gre/modules/addons/XPIProvider.jsm", {})
.eval("function mustSign(aType) { return false; }");
Components.utils.import("resource://gre/modules/addons/XPIProvider.jsm", {})
.eval("XPIProvider.verifySignatures = function() {}");
当您尝试安装未签名的插件时,它仍然会发出警告,但无论如何都会有效。插件在about:addons
中被标记为已禁用,但实际上处于活动状态(您可以像普通插件一样手动禁用/启用它)。
工作原理:
mustSign()
检查此类插件是否需要签名。
verifySignatures()
是用于每隔XPI_SIGNATURE_CHECK_PERIOD
秒(即每天一次)检查签名的回调
答案 4 :(得分:1)
这是我在thread on HackerNews中找到的有关附加签名启示的代码。它可以在 Firefox 56 和更低版本中使用,而无需重新启动。
// For FF < v57 >...?
async function set_addons_as_signed() {
Components.utils.import("resource://gre/modules/addons/XPIProvider.jsm");
Components.utils.import("resource://gre/modules/AddonManager.jsm");
let XPIDatabase = this.XPIInternal.XPIDatabase;
let addons = await XPIDatabase.getAddonList(a => true);
for (let addon of addons) {
// The add-on might have vanished, we'll catch that on the next startup
if (!addon._sourceBundle.exists())
continue;
if( addon.signedState != AddonManager.SIGNEDSTATE_UNKNOWN )
continue;
addon.signedState = AddonManager.SIGNEDSTATE_NOT_REQUIRED;
AddonManagerPrivate.callAddonListeners("onPropertyChanged",
addon.wrapper,
["signedState"]);
await XPIProvider.updateAddonDisabledState(addon);
}
XPIDatabase.saveChanges();
}
set_addons_as_signed();
此代码需要在浏览器控制台(不是 Web控制台)中执行,可以通过快捷方式 Ctrl + Shift +访问 J 。它会立即重新启用所有未通过验证的插件。
答案 5 :(得分:0)
我发现一种似乎有效的更简单的方法是翻转 Firefox 用来确定是否强制执行签名的常量。这可能需要在每次 Firefox 更新后完成。
omni.ja
存档modules/AppConstants.jsm
,并将 MOZ_REQUIRE_SIGNING
下的值从 false
更改为 true
omni.ja
xpinstall.signatures.required
和 xpinstall.whitelist.required
在 about:config
下为 false,然后重启 firefox您未签名的插件现在应该安装了。