Некоторые дополнения были отключены firefox как включить. Подписываем расширения Firefox



В свете последних событий связанных с релизом 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

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

В свете последних событий связанных с релизом 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

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

    Каталог дополнений для 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 ...

Прежде чем разместить дополнительные расширения на своём официальном интернет портале «addons.mozilla.org » обязательно проверяют все разработки на соответствие с жёсткими критериями, отвечающим всем требованиям безопасности. В случае, если проверка дала положительные результаты, специалисты технической поддержки Mozilla подписывают проверенные приложения своей уникальной цифровой подписью. Данная процедура даёт приложениям право быть установленными в веб-браузер пользователя. Расширения могут быть размещены и на иных сетевых ресурсах, но они также должны отвечать всем требованиям безопасности и конфиденциальности Firefox, иначе они не смогут получить соответствующее разрешение на размещение в интернет сети под знаком партнёра Mozilla Foundation.

О цифровой подписи расширений

Проще говоря, наличие цифровой подписи гарантирует безопасную работу расширения, следовательно, и браузера. Вся ваша личная информация при использовании такого расширения не попадёт в третьи руки и будет в полной сохранности.

Абсолютно все дополнения, работа которых направлена на увеличение возможностей интернет – поисковика должны иметь подпись. Исключениями являются расширения, которые меняют внешний вид панельки инструментов и различные языковые пакеты.

Как отключить проверку дополнений

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

Для начала скачайте и установите немного другую версию интернет – поисковика Mozilla Firefox. Такую как «Developer Edition» или «Nightly», они позволяют обходить требования на наличие подписей дополнительных расширений. Теперь вам нужно будет слегка изменить настройку конфигурации.

Для этого запустите браузер и в поисковой строке наберите «about:config», без кавычек и нажмите кнопку «Enter» или на вспомогательной строчке слово «Посетить»;

Затем у вас откроется окошко, информация в котором, предупреждает о возможных рисках, жмём по кнопочке «Я принимаю на себя риск»;

В открывшемся окошке найдите параметр «xpinstall.signatures.required» (или просто копируем и вставляем его в строку поиска);

Нажимаем правой кнопкой мышки по параметру и выбираем пункт «Переключить» (или можно дважды кликнуть левой кнопкой мыши).

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

Также вы можете установить другие неофициальные версии браузера Mozilla Firefox, которые тоже позволят менять настройки проверки подписей плагинов.

43-я версия Mozilla Firefox на каналах Stable и Beta блокирует установку неподписанных расширений.

Для отмены проверки подписи у расширений можно изменить настройки:

  • в адресной строке введите about:config и перейдите на страницу;
  • нажмите кнопку "Я обещаю, что буду осторожен" на странице предупреждения;
  • в поле "Поиск" введите название параметра: xpinstall.signatures.require ;
  • найдите его в списке и дважды нажмите на него, чтобы значение "true" изменилось на "false"

Отключение проверки подписи через пользовательские скрипты

В Firefox 48 для Stable и Beta каналов, Mozilla отменила действие параметра xpinstall.signatures.require. На каналах Dev, Nightly и ESR, а так же в сборке Firefox Unbranded, которая представляет собой стабильную версию, параметр ещё доступен.

Все расширения представленные в основном репозитории Mozilla, подписаны в отличае от расширений из сторонних источников.

На сегодня существует множество расширений, предоставляемых приложениями, на платформах разработки Github и Bitbucket, а так же старые расширения, которые больше не поддерживаются разработчиками и не могут быть подписаны. Все они не могут быть установлены в Firefox Stable или Beta стандартными средствами.

Этот способ подразумевает создание двух файлов в основной директории, откуда запускается Firefox.

1. Файл config.js

1.1. Создайте текстовый файл;
1.2. Вставьте в него код:

//
try {
Components.utils.import("resource://gre/modules/addons/XPIProvider.jsm", {})
.eval("SIGNED_TYPES.clear()");
}
catch(ex) {}

1.3. Переименуйте его в "config.js". Убедитесь, что он называется config.js а не config.js.txt;
1.4. Переместите его в директорию с установленным Firefox:

  • Windows - "C:\Program Files\Mozilla Firefox\ " или "C:\Program Files (x86)\Mozilla Firefox\ ";
  • Linux - "/usr/lib/firefox-<версия> " или "/usr/lib64/firefox-<версия> ";
  • OSX - "/Applications/Firefox.app/ ".

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

2. Файл config-prefs.js

2.1. Создайте второй текстовый файл;
2.2. Вставьте в него код:

pref("general.config.obscure_value", 0);
pref("general.config.filename", "config.js");

2.3. Переименуйте в config-prefs.js;
2.4. Переместите в "<корневая директория Firefox>\defaults\pref\ "
например "C:\Program Files\Mozilla Firefox\defaults\pref\ ";
2.5 Перезапустите Firefox.

Теперь вы можете устанавливать расширения с подписью и без в Firefox Stable или Beta.

Что при этом происходит

Код в файле config.js, загружает один из конфигурационных файлов Firefox и удаляет информацию из константы "Signed_Types" в этом файле. Эта константа определяет типы дополнений и расширений, которые должны быть подписаны для установки.

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

Код во втором файле указывает Firefox загрузить файл config.js при запуске.

Странно что это на столько просто, учитывая то что обязательная подпись расширений используется для повышения безопасности.