Как отключить проверку подписи для дополнений Firefox?
начиная с версии 42 Firefox по умолчанию отказывается устанавливать неподписанные дополнения. Как отключить эту проверку?
5 ответов
отключить проверку аддонов можно только в еженощно и разработчик канал. Другими словами, это невозможно в бета-версиях и стандартных выпусках.
- на
about:config
(введите его в адресной строке) - Set
xpinstall.signatures.required
tofalse
.
чтобы завершить приведенный выше ответ, я открываю firefox-автоконфигурация, которая состоит из установки на <FIREFOX INSTALLATION DIR>/default/prefs
и на <FIREFOX INSTALLATION DIR>
это способ отключить xpinstall.signatures.required
(и другие параметры тоже) окончательно и автоматически, когда Firefox открыт (протестирован с Firefox 45.0.1)
вы увидите это содержимое в 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);
начиная с Firefox 47: выпуск и бета-версии Firefox для рабочего стола не позволят устанавливать неподписанные расширения без переопределения.
для получения дополнительной информации см. Mozilla Wiki страница по подписанию расширения.
отключить проверку подписи надстройки в версиях Firefox
я изначально нашел это решение для отключения принудительной проверки подписи надстройки в этот блог, который является исходным источником для (несколько измененного) кода в этом ответе. Внесение этих изменений позволит вам установить неподписанные надстройки в профили с помощью изменяемого дистрибутива Firefox. Для большинства людей это будет ваша основная установка Firefox. Однако, если у вас есть установлено несколько версий, вам нужно будет сделать это изменение в каждой установке. Однако, как только вы внесете изменения, они останутся через обычные обновления Firefox.
вам нужно будет добавить несколько файлов в каталоге установки Firefox. Вы можете найти список примеров каталога установки для Windows, Linux и Mac OS на mozillaZine. Наиболее распространенные каталоги установки являются:
- окна
- C:\Program Файлы \ Mozilla Firefox\
- C:\Program файлы (x86)\Mozilla Firefox\
- Linux
- / usr / lib / firefox -
- на OSX
- / Приложения / Firefox.app
добавить первый файл
вы должны добавить код ниже в файл <Install directory>/defaults/pref/disable-add-on-signing-prefs.js
(Windows: <Install directory>\defaults\pref\disable-add-on-signing-prefs.js
):
//This file should be placed in the defaults/pref directory (folder)
//within the Firefox installation directory with the with the name:
// disable-add-on-signing-prefs.js
pref("general.config.obscure_value", 0);
pref("general.config.filename", "disable-add-on-signing.js");
добавить второй файл
вам также нужно добавить код ниже в качестве файла <Install directory>/disable-add-on-signing.js
(Windows:<Install directory>\disable-add-on-signing.js
):1
//This file should be placed in the Firefox installation directory
//(folder) with the with the name:
// disable-add-on-signing.js
Components.utils.import("resource://gre/modules/addons/XPIProvider.jsm", {})
.eval("SIGNED_TYPES.clear()");
Components.utils.import("resource://gre/modules/addons/XPIInstall.jsm", {})
.eval("SIGNED_TYPES.clear()");
результаты
С текущей версией Firefox я использую это решение некоторое время, чтобы установить несколько расширений, которые я построил для собственного использования, и протестировать новые версии расширений, над которыми я работаю (когда я хочу протестировать в версия вместо Firefox Developer Edition или еженощно).
Примечание: на about:addons
в Firefox мая показать (при некоторых условиях) надстройку как включенную (не серую), но иметь текст, указывающий, что надстройка "не может быть проверена и была отключена". Текст не точен! Надстройка включена и функционирует.
как это работает
внутри resource://gre/modules/addons/XPIProvider.jsm
the const SIGNED_TYPES
определяется как Set
. Для того, чтобы надстройка требовала подписи, ее тип должен быть членом этого Set
. The Set.prototype.clear()
метод используется для очистки всех записей из Set
. Это приводит к отсутствию дополнительных типов, требующих подписи (код 1, код 2).
если вы хотите, вы можете индивидуально отключить проверку подписи для любого из типов:"webextension"
, "extension"
, "experiment"
или "apiextension"
.
удалить the META-INF каталог из любого измененного расширения
дополнительные файлы в разделах выше, выключить требование расширения должны быть подписан. Если файлы подписи существуют, подпись все равно будет проверена. Таким образом, если вы изменили расширение из того, которое было опалено, и не удалили файлы подписи, расширение не пройдет проверку подписи. Другими словами, фактически проверка любого существующего подписи-это отдельный шаг от требования о том, что подпись должна существовать.
если вы изменили расширение, которое было подписано (вы можете сказать, что оно было подписано существованием META-INF каталог в корневом каталоге расширения), затем вам нужно будет удалить файлы сигнатур. Вы можете сделать это, удалив META-INF и все файлы, содержащиеся в этом каталоге.
1. Этот код в блоге помещает этот вызов в try{}catch(){}
блок. В этом нет необходимости. Единственная эффективная вещь, которая делает это, - это предотвратить сообщение об ошибке в Консоли Браузера (Ctrl- Shift-J или Cmd- Shift-J на OSX). Нет никакого дополнительного кода, который требуется запустить, если это не удастся. Кроме того, я предпочел бы иметь возможность видеть ошибку в консоли браузера, если это не удается, чтобы знать, что это, по сути, не удалось. Не имея try{}catch(){}
не имеет негативных последствий и позволяет отслеживать проблему, если в какой-либо будущей версии Firefox надстройки начинают отключаться из-за того, что они не подписаны.
решение@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
секунды (т. е. один раз в день)