web-dev-qa-db-fra.com

Comment puis-je désactiver la vérification de signature pour les add-ons Firefox?

Depuis la version 42, Firefox, par défaut, refuse d'installer des modules complémentaires non signés. Comment désactiver cette vérification?

25
czerny

Il est uniquement possible de désactiver la vérification des addons dans Nightly et Developer channel. En d'autres termes, il s'agit de non possible dans les versions bêta et les versions standard}.

  1. Allez à about:config (entrez-le dans la barre d'adresse)
  2. Définissez xpinstall.signatures.required sur false.

Plus sur https://wiki.mozilla.org/Addons/Extension_Signing

32
czerny

À partir de Firefox 47: les versions bêta de Firefox pour Desktop ne permettent pas l’installation d’extensions non signées, sans substitution. 

Pour plus d'informations, consultez la page Mozilla Wiki sur la signature d'extensions .

4
Dalin

Pour compléter la réponse ci-dessus, je découvre firefox-autoconfig , qui consiste à installer un fichier autoconfig.js dans <FIREFOX INSTALLATION DIR>/default/prefs et un fichier ci.clg dans <FIREFOX INSTALLATION DIR> qui permet de désactiver xpinstall.signatures.required (ainsi que d'autres options ) définitivement et automatiquement à l’ouverture de Firefox (testé avec Firefox 45.0.1)

Vous verrez ces contenus dans autoconfig.js:

//
pref("general.config.filename", "ci.cfg");
pref("general.config.obscure_value", 0);

Et ces contenus dans 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);
4
Irrmich

C'est le code que j'ai trouvé dans le fil sur HackerNews concernant l'apocalypse de la signature complémentaire. Cela fonctionne dans Firefox 56 et les versions plus anciennes sans redémarrer.

  // 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();

Ce code doit être exécuté dans la console du navigateur ( et non console Web) accessible via le raccourci Ctrl+Shift+J. Il réactive instantanément tous les addons dont la vérification a échoué.

1
Athari

La solution de @ Makyen fonctionne mais désactivera complètement le contrôle des signatures:

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

Vous aurez pas des informations sur le fait que l'addon est signé ou non.

Au lieu de cela, je suggère ceci:

/* 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() {}");

Il vous avertira toujours lorsque vous essayez d'installer un addon non signé mais cela fonctionnera quand même. L'addon est marqué comme désactivé dans about:addons mais est en fait actif (vous pouvez le désactiver/l'activer manuellement comme un addon normal).

Comment ça marche:

  • mustSign() vérifie si la signature est requise pour ce type d’addon.

  • verifySignatures() est un rappel utilisé pour vérifier les signatures toutes les XPI_SIGNATURE_CHECK_PERIOD secondes (c'est-à-dire une fois par jour)

0
ysdx