Как отключить проверку дополнений в мозиле. Как установить неподписанные дополнения в Firefox. Что при этом происходит

24.02.2024 Программы

Firefox все еще остается моим любимым браузером и обозревателем по умолчанию. Несмотря на всякие странные решения его разработчиков, пока что находятся альтернативные решения для их обхода. Начиная с версии 43, Firefox по умолчанию блокирует установку неподписанных дополнений. Безусловно, это было сделано из самых лучших побуждений, для обеспечения нашей безопасности, чтобы воспрепятствовать распространению вредоносных дополнений и тому подобные высокопарные бла-бла-бла. Разработчики дополнений обязаны предоставлять их в Mozilla на проверку и утверждение, после чего дополнения можно поставить через официальный каталог.

Многим пользователям подобное нововведение не понравилось, в том числе и мне. Я, например, использую несколько старых, но еще вполне рабочих дополнений, разработка которых прекращена много лет назад. А некоторые дополнения я сам модифицирую под свои нужны, естественно, после таких изменений цифровая подпись становится невалидной. К счастью, разработчики тогда оставили в настройках браузера параметр , позволяющий отключать проверку цифровых подписей устанавливаемых дополнений.



Начиная с версии 48, халява накрылась, Firefox перестал воспринимать этот параметр. Независимо от его значения, при попытке установить любое неподписанное расширение вы увидите предупреждение об опасности, а инсталляция будет заблокирована. Но есть способ, с помощью которого все-таки можно установить сторонние расширения в браузер Firefox.



Сперва надо переключить обновления Firefox на канал ESR (Extended Support Release). Это версия браузера с расширенным сроком поддержки, предназначенная для использования в организациях. Устанавливается прямо поверх текущей версии Firefox, все настройки остаются на месте, ничего не слетает.



Теперь переходим на страницу настроек, набрав в адресной строке about:config . Там находим параметр xpinstall.signatures.required и двойным щелчком переключаем его значение на false . Вот и все, теперь можно без проблем ставить любые обновления, в том числе неподписанные или модифицированные. Очередной идиотский закидон от "эффективных менеджеров" Firefox успешно преодолен.

Так случилось волею судьбы и игрищь разработчиков браузеров и авторов дополнений, что, к примеру, в браузере Mozilla Firefox осуществляется проверка дополнений, перед тем как их установить! И что во всех этих проверках печально, так это то, что накладывается запрет на установку того или иного расширения (дополнения) —

рассмотрим пример, когда Mozilla ни в какую не желает пропускать полюбившиеся большинству пользователей Элементы Яндекс.

«Дополнение не может быть загружено из-за ошибки соединения» — выдаёт такой вензель обозреватель Ферiфокс…

Научимся обходить проверку и запрет, или — вообще отключим в браузере Firefox всякую проверку дополнений. Вперёд..!


…такое вот предупреждение выдаётся охраной) как только мы пытаемся расширить функциональные возможности браузера:

Текст по пунктам:

отключим запрет проверки дополнений браузером Firefox

Для достижения этой цели придётся немого поработать с файлами браузера. Это не сложно! вы в этом убедитесь.

Нам потребуется текстовый редактор «Блокнот», который присутствует в любой операционной системе. С помощью него создадим пару файлов… Итак:

Откроем окно редактора и запишем в новый документ следующие строки:

// отключаем запрет установки дополнений try { Components.utils.import("resource://gre/modules/addons/XPIProvider.jsm", {}) .eval("SIGNED_TYPES.clear()"); } catch(ex) {}

Как только пропишите показанные выше код, документ нужно сохранить: на этом этапе поступим следующим образом…

присвоим файлу такое имя: (можно копировать)

В «Имя файла» вписываем config.php а в «Тип файла» выберем «Все файлы» и — сохраняем.

Идём по следующему пути:

C: Program Files\Mozilla Firefox

и в папку «Mozilla Firefox» помещаем (среди уже имеющихся) созданный файл.

Первый этап закончен!

Второе что необходимо…

Напишем следующий js-файл сценария: имя ему — config-prefs.js

Вписываем в блокнот следующую команду браузеру:

// отключаем запрет установки дополнений (файл в связке с config.js) pref("general.config.obscure_value", 0); pref ("general.config.filename", "config.js");

Всё эти манипуляции проделываем аналогично первой инструкции…

Проходим по такому пути до папки pref, чтобы и туда подкинуть созданный файлик:

С: Program Files\Mozilla Firefox\defaults\pref

Всё, ребята! запрет проверки и установки дополнений отключен. Теперь браузер бузить и запрещать устанавливать полюбившееся расширение не станет.

Для тех пользователей, которым эта работа показалась сложной, есть ещё одно решение задачи — обход запрещения установки дополнений:

способ запрета проверки и установки дополнений в консоли браузера Firefox

Поступим так:

Воспользуемся скрытыми настройками браузера Mozilla Firefox — есть и такие!

В адресной строке браузера (не в строке поисковых запросов, а в той которая в самом верху окна браузера) пропишите следующий вензель:

…жмите смело клавишу «Enter»

К сведению:

Браузер выдаст такое милое окошко, в котором предложит быть аккуратнее - осторожнее! —

для получения доступа к «скрытым» настойкам, как вы понимаете, нужно пообещать быть внимательным!

Соглашаемся!!

нас перенесёт в святая-святых браузера - в длиннущую ленту технических регулировок: что нам здесь нужно..?

А вот что: в «поиске» по ленте настроек (она в самом сверху) запишем такое замысловатое предложение:

xpinstall.signatures.required

Система браузера быстренько отыщет искомое!

Проведите курсор вправо по строке xpinstall.signatures.required до логического true — теперь внимание!! кликните пару раз на это самое слово)) это нужно для того чтобы поменять значение на false .

Кому интересно: true -разрешение, false — запрет! это если просто.

Перезагружайте браузер и пользуйтесь на славу всякими установками дополнений))

А мы продолжим, и узнаем:

как обойти запрет Firefox и установить дополнение

Это просто! …скачаем само дополнение в виде файла себе на комп, а уж потом вручную установим его из файла.

Чтобы скачать дополнение, нужно перейти на его официальную страничку.

Большинство адресов дополнений, не зависимо от того запрещены они или нет к установке, можно узнать на страничке настроек дополнений, в самом браузере Firefox — верхнее меню «инструменты» — «дополнения».

Так как мы сегодня рассматриваем пример с Элементами Яндекс, переходим на официальную страничку - если нужно, вот ссылка https://element.yandex.ru/?from=wizard___one

И на страничке дополнения всё просто..!

Наводим курсор на «Установить» кликаем правую кнопку мышки и в выпавшем меню выбираем «Сохранить как» — далее следует указать путь для сохранения системой файла.

В итоге в папочке компа (ту что указали) появится такой забавный файлик YandexElement.xpi — это и есть программка дополнения, только в виде файла.

Ну и, думаю, догадались…

Переходим на страничку дополнений (путь по меню показан выше) — в верхнем правом углу выбираем «шестерёнку» (значок может отличаться из-за темы оформления вашего браузера) — кликаем…

можно выбрать слева в вертикальном меню «Службы», и затем найти и кликнуть по «шестерёнке — настройкам»

…итак — в выпавшем меню выбираете «Установить дополнение из файла» — указываете системе ваш скачанный файлик и — мгновение… установка. Готово!

Перезагружайте браузер. …и пользуйтесь на здоровье..!

Вот вы и научились устанавливать дополнения без всяких запрещений (или расширения, кому как угодно-с)

Больше браузер никаких предупреждений не выдаст.

Советую добавить статью в закладки и возвращаться, ибо если вы решите переустановить браузер или саму ОС — описанные настройки нужно будет повторить…

Однако бывает и так, что какое-то экзотическое, но требуемое для пользователя, расширение (дополнение) никак невозможно установить в браузер, из-за проверки обозревателем так называемой «Подписи». И это бывает часто: разработчики дополнений не спешат за обновами браузера…

В этом случае здорово поможет «менеджер браузеров», — и всего-то нужно установить на компьютере пару различных версий Фаерфокс, которые, кстати, можно запускать одновременно!! — вот по ЭТОЙ ссылке подробности…

МИГ подписки - ЭРА полезных знаний!!


!..подписываясь -
мы расстаёмся с невежеством..!

Если что-то не ясно и остались вопросы, делитесь ими в комментариях...

    Каталог дополнений для Nvda в формате "nvda-addon".В каталоге 199 дополнений (Nvda-addon)Каталог обновлен: 10 Октябрь 2019 ... в каталоге Nvda.ru можно скачать новые и старые версии программ экранного доступа NVDA.Скачайте на... Синтезатор речи RHVoice с голосовыми модулями на восьми языках в трёх вариантах:Дополнении Nvda-addonДля программы экранного... Архив устаревших или переставших работать дополнений для Nvda Обновлен: 1 Июля 2019 г.. В текущий... Синтезатор речи NewFon в виде Nvda-addon + Sapi5 для программы экранного доступа Nvda.Обновлено 06 Март... При помощи представленных на странице словарей можно сделать лучше произношение синтезаторов речи Vocalizer.Словари подходят не... Пакеты синтезаторов речи Vocalizer Expressive2 второго поколения для программы экранного доступа Nvda в виде одного... Комплекты синтезаторов речи на движке Sapi5 которые также можно использовать в программе экранного доступа Nvda.Здесь... Синтезаторы речи Vocalizer Expressive2 (Второго покаления) для программы экранного доступа Nvda в виде дополнений.Качество синтезаторов... Синтезаторы речи Acapela group в бесплатной программе экранного доступа Nvda для незрячих и слабовидящих, можно... Синтезаторы речи Ivona2 в программе экранного доступа Nvda можно использовать по одному через Microsoft Sapi5 ... Синтезаторы речи для программы Nvda в виде дополнений "nvda-addon" от разных разработчиков.Captain Old / NewDirect ...

В свете последних событий связанных с релизом Mozilla Firefox 48, который навёл шухеру среди части пользователей, в связи с обязательным наличием подписи у расширений, люди столкнувшиеся с этой проблемой встали перед выбором, либо:

  1. не пользоваться неподписанными расширениями (плохой вариант);
  2. использовать небрэндированные сборки;
  3. идти окольными путями, пытаясь отключить проверки любыми способами, некоторые из которых предложены в следующих комментариях:
    https://geektimes.ru/post/279132/#comment_9480372
    https://geektimes.ru/post/279132/#comment_9480382
  4. подписать необходимое расширение самостоятельно.
Как вы уже догадались, здесь пойдёт речь о последнем способе. Если мы не планируем распространять расширения через официальный каталог, то подпись мы можем получить без ручных проверок, т.е. легко и просто.

Для этого нам понадобятся:
  1. учётная запись на addons.mozilla.org
  2. установленный nodejs версии >= 0.10
  3. npm версии >=3.0.0 (npm up npm)
  4. jpm для nodejs (npm install jpm).
Будем рассматривать процесс подписания на примере расширения «Random Agent Spoofer». Данное расширение содержит список юзер-агентов, которые довольно быстро устаревают, а обновляется дополнение не часто. В свою очередь, в официальном репозитории файлы с нужными нам данными обновляются регулярно и возникает закономерное желание пустить их в дело.

Итак, учётную запись зарегистрировали, программное окружение установлено, можно приступать.

Берём подопытное расширение и распаковываем его в отдельную папку, в нашем случае используем слепок репозитория, расположенного по адресу https://github.com/dillbyrne/random-agent-spoofer .
Получим следующую структуру каталогов:
test\
lib\
doc\
data\
.gitignore
LICENSE
package.json
README.md

Если используется готовое собранное расширение, то в корне папки где оно распаковано, необходимо удалить файлы «bootstrap.js» и
«install.rdf», они создаются программой сборки, а при модификации уже подписанных дополнений ещё и папку «META-INF». Т.к. мы имеем дело с ещё не собранным дополнением, то это не требуется. Следующим шагом будет редактирование файла «package.json», расположенного опять же в корне каталога распакованного расширения. В нашем случае его начало выглядит так:
{
"name": "random-agent-spoofer",
"title": "Random Agent Spoofer",
"id": "jid1-AVgCeF1zoVzMjA@jetpack",
"description": "Allows the use of various browser profiles (including useragent ,platform, oscpu, accept headers and other options), which it can randomly switch between after a chosen period of time has expired",
"author": "dbyrne",
...
}

Если в нём содержится параметр «id» его надо либо изменить, либо удалить. В противном случае, мы получим ошибку при попытке подписи о том, что не являемся его владельцем.
Далее командуем следующее «заклинание» для сборки расширения в архив:

Jpm xpi --addon-dir <путь к папке куда распаковали>

Или просто:

Jpm xpi , если текущий каталог это и есть корень распакованного расширения.

На выходе должен появиться файл собранного расширения.xpi, который и будем подписывать.

А теперь приготовим свой api-ключ, ради получения которого и регистрировались на addons.mozilla.org . Его можно увидеть по адресу addons.mozilla.org/ru/developers/addon/api/key в таком виде:

Издатель JWT: Секрет JWT:

Где Ваш персональный ключ. И в заключение, собственно, сам акт подписания осуществляем скомандовав:

Jpm sign --api-key --api-secret --xpi <путь к расширению полученному на предыдущем шаге>

Если всё пройдёт без ошибок и автоматическая проверка будет пройдена, то в текущем каталоге мы получим подписанное расширение, в котором и нуждались.

Полезные ссылки:
Документация по jpm: developer.mozilla.org/en-US/Add-ons/SDK/Tools/jpm
Signing Api: olympia.readthedocs.io/en/latest/topics/api/signing.html

Всем спасибо за внимание, удачи!

6 ответов

Отключите проверку подписи надстроек в релизных (всех) версиях Firefox

Версия Firefox 65+ (или около того)

Следующие инструкции отключат проверку подписи в Firefox для профиля Firefox, в который вы устанавливаете файлы. Вы собираетесь добавить некоторые файлы в каталог chrome в каталоге вашего профиля Firefox.

Я проверял это на Firefox 66.0. 3+.

IIRC, для Firefox 65 требовался немного другой код, я думаю, что оставил этот код в disable-add-on-signature.js, когда модифицировал его для Firefox 66, но я не уверен в этом.

Мы собираемся использовать технику, которая позволяет вам запускать произвольный код JavaScript в контексте браузера из файлов, хранящихся в каталоге вашего профиля Firefox. Я нашел, как это сделать из репозитория Haggai Nuchi GitHub: Firefox Quantum совместимый userChrome.js .

В Windows каталог вашего профиля Firefox будет %appdata%\Mozilla\Firefox\Profiles\ . Если у вас есть только один профиль, будет единственным каталогом в каталоге %appdata%\Mozilla\Firefox\Profiles . Если у вас есть несколько профилей, вам нужно выбрать те, в которые вы хотите установить этот хак.

Как только вы попадете в каталог своего профиля, вам нужно будет создать каталог с именем chrome , если он еще не существует. Вы будете добавлять 3 файла ниже в этот каталог:

  • userChrome.css
  • userChrome.xml
  • disable-add-on-signing.js

Затем вам понадобится следующий код в userChrome.css , который доступен из репозитория Haggai Nuchi GitHub:

/*Enable userChrome.js */ /* Copyright (c) 2017 Haggai Nuchi Available for use under the MIT License: https://opensource.org/licenses/MIT */ @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); toolbarbutton#alltabs-button { -moz-binding: url("userChrome.xml#js"); }

Вам понадобится userChrome.xml (слегка измененный по сравнению с версией, доступной в репозитории Haggai Nuchi GitHub):

Вам также понадобится disable-add-on-signing.js:

//This should be installed as the file disable-add-on-signing.js in // your profile "chrome" directory. //Earlier versions of Firefox try { Components.utils.import("resource://gre/modules/addons/XPIProvider.jsm", {}).eval("SIGNED_TYPES.clear()"); } catch(ex) {} try { Components.utils.import("resource://gre/modules/addons/XPIInstall.jsm", {}).eval("SIGNED_TYPES.clear()"); } catch(ex) {} try { Components.utils.import("resource://gre/modules/addons/XPIDatabase.jsm", {}).eval("SIGNED_TYPES.clear()"); } catch(ex) {} //Tested on Firefox 66 const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm"); XPCOMUtils.defineLazyModuleGetters(this, { XPIDatabase: "resource://gre/modules/addons/XPIDatabase.jsm", }); XPIDatabase.SIGNED_TYPES.clear(); console.log("Add-on signing disabled.");

После добавления этих файлов в каталог Chrome вашего профиля вам нужно будет перезапустить Firefox. Вы можете убедиться, что код запущен, выполнив поиск "подпись надстройки отключена". в консоли браузера .

Надстройки, которые были отключены или удалены Firefox, не будут автоматически включены. Вам нужно будет переустановить их. Вы можете установить их, перетащив файл *.xpi в окно Firefox и подтвердив, что вы хотите установить.

Если вы хотите получить файл *.xpi для какого-либо конкретного расширения из дополнений Mozilla, вы можете скачать его, щелкнув правой кнопкой мыши кнопку "Установить" и выбрав "Сохранить как" или "Удалить".

Firefox версии 57 или более ранней (или около того)

К сожалению, я не помню, с какой версией Firefox этот метод перестал работать. Я знаю, что использовал его на Firefox 54, 55, 52ESR и FF56. *.

Первоначально я нашел это решение для отключения принудительной проверки подписи надстройки в этом посте , который является исходным кодом (несколько измененного) кода в этом ответе. Внесение этих изменений позволит вам устанавливать неподписанные надстройки в профили, используя измененный вами дистрибутив Firefox. Для большинства людей это будет ваша основная установка Firefox. Однако, если вы установили несколько версий, вам нужно будет вносить эти изменения в каждую установку. Однако после внесения изменений они останутся через обычные обновления Firefox.

Вам нужно будет добавить пару файлов в каталог установки Firefox. Вы можете найти список примеров установочных каталогов для Windows, Linux и Mac OS на mozillaZine . Наиболее распространенные каталоги установки:

  • Windows
    • C:\Program Files\Mozilla Firefox\
    • C:\Program Files (x86)\Mozilla Firefox\
  • Linux
    • /USR/Lib/firefox- <версия>
  • OSX
    • /Applications/Firefox.app

Добавить первый файл

Затем вам нужно добавить приведенный ниже код в виде файла /defaults/pref/disable-add-on-signing-prefs.js (Windows: \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");

Добавить второй файл

Вам также необходимо добавить приведенный ниже код в виде файла /disable-add-on-signing.js (Windows: \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 try { Components.utils.import("resource://gre/modules/addons/XPIProvider.jsm", {}) .eval("SIGNED_TYPES.clear()"); } catch(ex) {} try { Components.utils.import("resource://gre/modules/addons/XPIInstall.jsm", {}) .eval("SIGNED_TYPES.clear()"); } catch(ex) {}

Результаты

Я использую эти решения уже много лет, чтобы установить несколько расширений, которые я создал для своего собственного использования, и для тестирования новых версий расширений, над которыми я работаю (когда я хочу протестировать в продакшен версии вместо Firefox Developer Edition или Ночной).

ПРИМЕЧАНИЕ. В about:addons Firefox может показывать (при некоторых условиях) надстройку как включенную (не выделенную серым цветом), но с текстом, указывающим, что надстройка "не может быть проверена и была отключена". Текст не точный! Надстройка включена и работает.

Как это устроено

Если вы хотите, вы можете отдельно отключить проверку подписи для любого из типов: "webextension" , "extension" , "experiment" или "apiextension" .

Удалите каталог META-INF из любого модифицированного расширения

Дополнительные файлы в разделах выше отключают требование, чтобы расширения были подписаны. Если файлы подписи существуют, подпись все равно будет проверена. Таким образом, если вы изменили расширение, которое было подписано, и не удалили файлы подписи, расширение не пройдет проверку подписи. Другими словами, фактически проверка любых существующих подписей является отдельным шагом от требования, что подпись должна существовать.

Если вы изменили расширение, которое было подписано (вы можете сказать, что оно было подписано существованием каталога META-INF в корневом каталоге расширения), вам потребуется удалить файлы сигнатур. Вы можете сделать это, удалив каталог META-INF и все файлы, содержащиеся в этом каталоге.

1. Код в блоге помещает этот вызов в блок try{}catch(){} . Там действительно нет необходимости делать это. Единственная эффективная вещь, которая делает это, - предотвращает сообщение об ошибке в консоли браузера (Ctrl - Shift - J или Cmd - Shift - J в OSX). Там нет никакого дополнительного кода, который желательно запустить в случае сбоя. Кроме того, я предпочел бы иметь возможность видеть ошибку в консоли браузера, если это не удается, чтобы знать, что на самом деле произошел сбой. Отсутствие try{}catch(){} не имеет никаких негативных последствий и позволяет отследить проблему, если в какой-то будущей версии Firefox дополнения начнут отключаться из-за отсутствия подписи.

Чтобы завершить ответ, приведенный выше, я обнаружил firefox-autoconfig , который состоит из установки файла autoconfig.js в /default/prefs и файла ci.clg в который является способом отключения 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);