User:NThomas:Mar Generation: Difference between revisions

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 ==
Confirmed users
4,293

edits

Navigation menu