¿Cómo puedo desactivar la comprobación de firmas para complementos de Firefox?


Desde la versión 42, Firefox, por defecto, se niega a instalar complementos sin firmar. ¿Cómo deshabilito esta verificación?

Author: Makyen, 2015-08-12

5 answers

Solo es posible desactivar la verificación de complementos en los canales Nightly y Developer. En otras palabras, no es posible en versiones Beta y versiones estándar.

  1. Vaya a about:config (introdúzcalo en la barra de direcciones)
  2. Establezca xpinstall.signatures.required en false.

Más en https://wiki.mozilla.org/Addons/Extension_Signing

 32
Author: czerny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-25 22:47:19

Para completar la respuesta anterior, descubro firefox-autoconfig , que consiste en instalar un archivo autoconfig.js en <FIREFOX INSTALLATION DIR>/default/prefs y un archivo ci.clg en <FIREFOX INSTALLATION DIR> esa es una forma de desactivar xpinstall.signatures.required (y otras opciones también) de forma definitiva y automática cuando se abre Firefox (probado con Firefox 45.0.1)

Usted verá esos contenidos en autoconfig.js:

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

Y aquellos contenidos en 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
Author: Irrmich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-29 12:32:36

A partir de Firefox 47: las versiones release y Beta de Firefox for Desktop no permitirán que se instalen extensiones sin firmar, sin anulación.

Para obtener más información, consulte la página Wiki de Mozilla sobre la firma de extensiones.

 4
Author: Dalin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-07 20:39:04

Desactivar la firma de complemento de registro en la versión (todas) las versiones de Firefox

Inicialmente encontré esta solución para deshabilitar la comprobación forzada de firma de complemento en esta publicación de blog, que es la fuente original para el código (algo modificado) en esta respuesta. Realizar estos cambios te permitirá instalar complementos sin firmar en los perfiles utilizando la distribución de Firefox que modifiques. Para la mayoría de las personas, esta será su instalación principal de Firefox. Sin embargo, si ha instalado varios versiones, tendrá que hacer esta modificación en cada instalación. Sin embargo, una vez que realice las modificaciones, permanecerán a través de las actualizaciones normales de Firefox.

Necesitará agregar un par de archivos dentro del directorio de instalación de Firefox. Puede encontrar una lista de ejemplos de directorios de instalación para Windows, Linux y Mac OS en mozillaZine. Los directorios de instalación más comunes son:

  • Ventanas
    • C:\Program Archivos\Mozilla Firefox\
    • C:\Program Files (x86)\Mozilla Firefox\
  • Linux
    • / usr / lib / firefox -
  • OSX
    • / Aplicaciones / Firefox.app

Añadir primer archivo

Luego debe agregar el código a continuación como el archivo <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");

Añadir segundo archivo

También necesita agregar el código a continuación como el archivo <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()");

Resultados

Con la versión de lanzamiento actual de Firefox, he estado usando esta solución durante un tiempo para tener instaladas algunas extensiones que construí para mi propio uso y para probar nuevas versiones de extensiones en las que estoy trabajando (cuando quiero probar en la versión de lanzamiento en lugar de Firefox Developer Edition o Nightly).

NOTA: En about:addons Firefox puede mostrar (bajo algunas condiciones) el complemento como activado (no en gris), pero tiene texto que indica que el complemento "no se pudo verificar y se ha deshabilitado". ¡El texto no es exacto! El complemento está habilitado y funcionando.

Cómo funciona

Dentro de resource://gre/modules/addons/XPIProvider.jsm el const SIGNED_TYPES se define como un Set. Para que un complemento requiera firma, su tipo debe ser miembro de ese Set. El Set.prototype.clear() método se utiliza para borrar todas las entradas de la Set. Esto se traduce en ningún tipo de complemento que requiera signing (code 1, código 2 ).

Si lo desea, puede desactivar individualmente la comprobación de firma para cualquiera de los tipos: "webextension", "extension", "experiment", o "apiextension".

Elimine el directorio META-INF de cualquier extensión modificada

Los archivos adicionales en las secciones anteriores desactivan el requisito de que las extensiones deben estar firmadas. Si los archivos de firma existen, la firma seguirá siendo verificada. Por lo tanto, si usted tiene modificado una extensión de uno que fue chamuscado y no han eliminado los archivos de firma, la extensión fallará la verificación de firma. En otras palabras, verificar cualquier firma existente es un paso separado del requisito de que la firma debe existir.

Si ha modificado una extensión que había sido firmada (puede decir que había sido firmada por la existencia de un directorio META-INF en el directorio raíz de la extensión), entonces tendrá que eliminar el archivos de firma. Puede hacer esto eliminando el directorio META-INF y todos los archivos contenidos en ese directorio.


1. El código en el blog pone esta llamada en un bloque try{}catch(){}. Realmente no hay necesidad de hacerlo. Lo único efectivo que hace al hacerlo es evitar que se informe de cualquier error en la consola del navegador (Ctrl-Shift-J , o Cmd-Shift-J en OSX). No hay código adicional que se desea ejecutar si esto falla. Además, preferiría poder ver el error en la consola del navegador si esto falla para saber que, de hecho, ha fallado. No tener el try{}catch(){} no tiene ningún efecto negativo y permite rastrear el problema si, en alguna versión futura de Firefox, los complementos comienzan a deshabilitarse por no estar firmados.

 3
Author: Makyen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-13 23:10:24

La solución de@Makyen funciona, pero deshabilitará la comprobación de firmas por completo:

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

No tendrá la información de si el complemento está firmado.

En su lugar, sugeriría esto:

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

Todavía le avisará cuando intente instalar un complemento sin firmar, pero funcionará de todos modos. El complemento está marcado como deshabilitado en about:addons pero de hecho está activo (puede deshabilitarlo/habilitarlo manualmente como un complemento normal).

Cómo funciona:

  • mustSign() comprueba si se requiere firma para este tipo de complemento.

  • verifySignatures() es una devolución de llamada utilizada para verificar firmas cada XPI_SIGNATURE_CHECK_PERIOD segundos (es decir, una vez al día)

 0
Author: ysdx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-09 19:14:54