Полезная информация

Общайтесь со знакомыми и друзьями в нашем сообществе в Facebook.

№103-08-2016 12:07:20

banbot
Moderator
 
Группа: Moderators
Зарегистрирован: 23-12-2007
Сообщений: 4673
UA: Firefox 51.0

Как отключить проверку цифровых подписей в дополнениях Firefox

Начиная с версии 48, Firefox игнорирует параметр xpinstall.signatures.required, который в значении false отключал проверку цифровых подписей дополнений. Пользователи столкнулись с проблемой: дополнения, не имеющие цифровой подписи, после обновления до 48-й версии были принудительно отключены. Разработан новый способ отключения проверки цифровых подписей для успешной работы дополнений, у которых цифровая подпись отсутствует.

Если после нижеуказанных действий дополнения всё ещё не работают, удалите их и установите заново.


  1. Создайте текстовый файл:

    • Для версии 55 и выше:

      Выделить код

      Код:

      //
      ["Provider", "Install"].forEach(name => {try {
          Components.utils.import(`resource://gre/modules/addons/XPI${name}.jsm`, {})
              .eval("SIGNED_TYPES.clear(); this;").eval(String.raw`"verifyZipSignedState" in this && (uuidg => {
                  var signedState = AddonManager.SIGNEDSTATE_NOT_REQUIRED;
                  var re = /\x06\x03U\x04\x03\x14[\s\S](\{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\}|[a-z0-9-\._]*\@[a-z0-9-\._]+)0\x82\x02"0\r\x06\t/i;
                  var bsp = Cu.getGlobalForObject(XPIProvider), til = bsp.eval("TemporaryInstallLocation");
                  var getId = file => {
                      var result, is = {close() {}}, sis = {close() {}};
                      var uri = bsp.getURIForResourceInFile(file, "META-INF/mozilla.rsa");
                      try {
                          is = Services.io.newChannelFromURIWithLoadInfo(uri, null).open();
                          sis = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream);
                          sis.init(is); var str = sis.readBytes(sis.available());
                          var match = str.match(re); if (match) result = match[1];
                      } catch(ex) {}
                      sis.close(); is.close();
                      return result || uuidg.generateUUID().toString();
                  }
                  verifyZipSignedState = function verifyZipSignedState(aFile, aAddon) {
                      if (aAddon.id || aAddon._installLocation == til)
                          return Promise.resolve({signedState, cert: null});
                      var root = !AppConstants.MOZ_REQUIRE_SIGNING && Services.prefs.getBoolPref(PREF_XPI_SIGNATURES_DEV_ROOT, false)
                          ? Ci.nsIX509CertDB.AddonsStageRoot : Ci.nsIX509CertDB.AddonsPublicRoot;
                      return new Promise(resolve => {
                          var callback = {openSignedAppFileFinished(rv, zipReader, cert) {
                              zipReader && zipReader.close();
                              resolve({signedState, cert: cert || {commonName: getId(aFile)}});
                          }};
                          gCertDB.openSignedAppFileAsync(root, aFile, callback.wrappedJSObject = callback);
                      });
                  }
              })(Cc["@mozilla.org/uuid-generator;1"].getService(Ci.nsIUUIDGenerator));`);
      } catch(ex) {}});
      

    • Для версии 54 и ниже:

      Выделить код

      Код:

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



    переименуйте его в config.js (js - вместо txt, переименуйте расширение) и перенесите в папку установки Firefox: C:\Program Files\Mozilla Firefox

  2. Создайте ещё один текстовый файл:

    Выделить код

    Код:

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

    переименуйте его в config-prefs.js и перенесите в папку: C:\Program Files\Mozilla Firefox\defaults\pref




Kyogre пишет:

при наличии этих двух файлов присутствует и отрицательный эффект - невозможно установить/обновить некоторые расширения и Firefox выдает ошибку "это дополнение не может быть установлено так как оно по-видимому повреждено". При возникновении этой ошибки закройте Firefox, удалите эти два файла (предварительно сделайте резервную копию файлов!) и запустите Firefox. Установите нужное вам дополнение, закройте Firefox и верните эти файлы обратно в папки.


Do you feel lucky, punk?

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2011 Mozilla Russia
Язык отображения форума: [Русский] [English]