User:NThomas:Mar Generation: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 2: Line 2:


= MAR container =
= MAR container =
[[Software_Update:MAR]] is the main documentation. To date the only major revision is ...
Relevant directories: [http://hg.mozilla.org/mozilla-central/file/default/modules/libmar modules/libmar]


== Signing (from Firefox 12.0b1) ==
[[Software_Update:MAR]] is the main documentation for the MAR format. To date the only major revision is ...
{{Bug|481815}} added a maintenance service on Windows, which can install updates without user intervention (no password or UAC prompts). It landed in mozilla-central during the Firefox 12.0 cycle (see comment 481), and rode the trains to release. Initially it was for administrator accounts, but {{bug|711475}} extended it to limited users accounts (shipped in Firefox 26.0).  


To secure the update process a digital signature is added to the mar file, as well as a production information block. The latter labels the mar with a  
== Signing (from Firefox 12.0) ==
{{Bug|481815}} added a maintenance service on Windows, which can install updates without user intervention (no password or UAC prompts). It landed in mozilla-central during the Firefox 12.0 cycle (see comment 481), and rode the trains to release. Initially it was for administrator accounts, but {{bug|711475}} extended it to limited users accounts in Firefox 26.0.
 
To secure the update process a digital signature is included in the mar file, as well as a production information block. The latter labels the mar with a  
* ProductVersion - the application of the bits contained by mar file
* ProductVersion - the application of the bits contained by mar file
* ChannelID - the combination of the product name and code branch, eg firefox-mozilla-central, firefox-mozilla-beta.
* ChannelID - the combination of the product name and code branch, eg firefox-mozilla-central, firefox-mozilla-beta.
These are set when the mar utility creates a mar file. Default values are set at ''compile time'', but can be overridden by -V and -H arguments when mar is called. A signature can be added to an existing mar using the signmar utility; Release Engineering set up automated signing in {{bug|509158}}.
These are set when the mar utility creates a mar file. Default values are set at ''compile time'', but can be overridden by -V and -H arguments when mar is called. A signature can be added to an existing mar using the signmar utility; Release Engineering set up automated signing in {{bug|509158}}.


When it's time to apply a mar file, the updater checks the signature of the mar file using a builtin certificate, and uses the product information block to ensure that the version doesn't decrease, and that ChannelID is allowed in <install_dir>/update-settings.ini. More information about the process flow is available at [[Windows_Service_Silent_Update]].
When it's time to apply an update, the updater checks the signature of the mar file using a builtin certificate, and uses the product information block to ensure that the version doesn't decrease, and that ChannelID is allowed in <install_dir>/update-settings.ini. More information about the process flow is available at [[Windows_Service_Silent_Update]].


Signing of all platforms started with {{bug|974570}} (Firefox 30.0), in preparation for verifying mar files on all platforms {{bug|973933}}.
Signing of all platforms started with {{bug|974570}} for Firefox 30.0, in preparation for verifying mar files on all platforms {{bug|973933}}.


= MAR contents =
= MAR contents =


== Update manifest ==
== Update manifest ==

Revision as of 23:59, 19 June 2014

The aim of this page is to document changes in format of the mar container, and the files within it.

MAR container

Relevant directories: modules/libmar

Software_Update:MAR is the main documentation for the MAR format. To date the only major revision is ...

Signing (from Firefox 12.0)

bug 481815 added a maintenance service on Windows, which can install updates without user intervention (no password or UAC prompts). It landed in mozilla-central during the Firefox 12.0 cycle (see comment 481), and rode the trains to release. Initially it was for administrator accounts, but bug 711475 extended it to limited users accounts in Firefox 26.0.

To secure the update process a digital signature is included in the mar file, as well as a production information block. The latter labels the mar with a

  • ProductVersion - the application of the bits contained by mar file
  • ChannelID - the combination of the product name and code branch, eg firefox-mozilla-central, firefox-mozilla-beta.

These are set when the mar utility creates a mar file. Default values are set at compile time, but can be overridden by -V and -H arguments when mar is called. A signature can be added to an existing mar using the signmar utility; Release Engineering set up automated signing in bug 509158.

When it's time to apply an update, the updater checks the signature of the mar file using a builtin certificate, and uses the product information block to ensure that the version doesn't decrease, and that ChannelID is allowed in <install_dir>/update-settings.ini. More information about the process flow is available at Windows_Service_Silent_Update.

Signing of all platforms started with bug 974570 for Firefox 30.0, in preparation for verifying mar files on all platforms bug 973933.

MAR contents

Update manifest