Firefox logo

Changes to Android extension signing

We recently identified a bug in the addons.mozilla.org (AMO) external API that caused all signing requests to mark extension submissions as being Android compatible. A fix for this bug will be pushed on Thursday, October 12th.

When the fix lands, the signing endpoint will stop marking extensions as being Android compatible by default, and instead check the extension’s manifest.json for a property in "browser_specific_settings" named “gecko_android”. If present, that object’s "strict_min_version" and "strict_max_version" properties will be used to set the Firefox for Android minimum and maximum values on AMO.

This change also affects community tools that send signing requests to AMO using the web API. This includes, but is not limited to:

What do I need to do?

To continue marking your extension as Android compatible on AMO, ensure that your manifest.json file includes a "browser_specific_settings.gecko_android" object. You can declare the minimum browser version supported using the "strict_min_version" properties of this object.

To stop marking your extension as Android compatible on AMO, ensure that your manifest.json file does not include a "browser_specific_settings.gecko_android" object.

For example, to signal that your extension works in Firefox for Android, you would include the following snippet in your extension’s manifest.

  "browser_specific_settings": {
    "gecko_android": {}
  }

You may also want to check the version compatibility settings for your extension on AMO.

7 comments on “Changes to Android extension signing”

  1. Alexei wrote on

    Note that adding gecko_android to browser_specific_settings might mean having to raise your extension’s minimum required version of Firefox.

    browser_specific_settings.gecko_android makes Firefox 60 fail to load your extension with “There was an error during installation: Extension is invalid”.

    Firefox 68 fails with “There was an error during installation: Extension is invalid
    Reading manifest: Error processing browser_specific_settings: Unexpected property “gecko_android”.

    Firefox 78 appears to be the earliest ESR version to successfully load extensions with browser_specific_settings.gecko_android

    1. Simeon Vincent wrote on

      Thanks for calling this out. I’ll try to get this added to the documentation on MDN.

  2. Gerard wrote on

    For end users, will this have implications for an installed addon (at its current versions) if a developer doesn’t take action for that addon which presently doesn’t have that manifest addition?

    1. Simeon Vincent wrote on

      This change does not effect on submissions that have already been signed by AMO. As such, it will not affect existing installations of an add-on.

      If the developer of an add-on that was flagged for compatibility with Android due to this bug does not take action, new versions of the add-on sent to AMO will not be flagged as Android compatible. As a result Android users will not receive the new versions.

  3. జిందం వాఐి wrote on

    * bug has reappeared?
    * may two or three years back, i created an issue on bugzilla whether dev have to specifically mark as android compatible addon?

  4. gorhill wrote on

    If we add `browser_specific_settings.gecko_android` object to our manifest, do we still keep the existing `browser_specific_settings.gecko` one? (which latter also contains the `id` of the extension.)

    1. Simeon Vincent wrote on

      Yes, keep `browser_specific_settings.gecko`. The `id` attribute specified in `gecko` is automatically applied to `gecko_android`.