14 5.1 Updater [Options]
Thorin-Oakenpants edited this page 2022-03-30 16:42:00 +00:00

🟩 FOREWORD

Unless you want to use the user.js exactly as it is, you must follow our naming convention for overrides for our updater scripts to work

  • profile\ user-overrides.js
  • profile\ user.js-overrides \ *.js [optional for Windows updater script only, multiple js files]

** Special thanks to claustromaniac for the updater.bat and overdodactyl for the updater.sh.


🟪 MAC/LINUX

Download the updater.sh script and save it in your profile folder. You can run it without any command line arguments and it will backup your current user.js, download the latest arkenfox user.js and if it finds a user-overrides.js in the same folder it will append that to the user.js.

By default the updater script also compares its version number to the one online. If there's a newer version of updater.sh online, it asks you for confirmation to download and run it. Two command-line parameters are available to change this behavior (-d or -u).

Available command-line parameters in v2.0+ (case-sensitive!):

Optional Arguments:

-h		 Show this help message and exit
-p PROFILE	 absolute path to your Firefox profile (if different than the dir of this script)
		 IMPORTANT: if the path include spaces, wrap the entire argument in quotes!
-l 		 Choose your Firefox profile from a list. (will auto-select the profile if only 1 exists)
-u		 Update updater.sh and execute silently.  Do not seek confirmation.
-d		 Do not look for updates to updater.sh
-s		 Silently update user.js.  Do not seek confirmation.
-b		 Only keep one backup of user.js
-o OVERRIDE	 Filename(s) and/or path(s) to override file(s) (if different than user-overrides.js).
		 If used with -p, paths should be relative to PROFILE or absolute paths.
		 If given a directory, all *.js files inside will be appended recursively.
		 You can pass multiple files or directories by passing a comma separated list.
			 IMPORTANT: do not add spaces between files/paths!  Ex: -o file1.js,file2.js,dir1
			 IMPORTANT: if any files/paths include spaces, wrap the entire argument in quotes!
				 Ex: -o "override folder" 
-n		 Do not append any overrides, even if user-overrides.js exists
-c		 Create a diff file comparing old and new user.js
-v		 Open the resulting user.js file
-r		 Only download user.js to a temporary file and open it
-e               Activate ESR related preferences

🟪 WINDOWS

  • 🟦 NOTE GitHub requires TLS1.2 minimum

    • You will need updater.bat version 4.13 or higher
    • Windows 7: if the updater.bat doesn't work, you need to update PowerShell by upgrading to WMF 5.1
      • Go here
      • Click Download and select the appropriate file: e.g. Win7-KB3191566-x86.zip or Win7AndW2K8R2-KB3191566-x64.zip
      • Unzip, run the msu file and follow the instructions (reboot required)

--

Download the updater.bat script and save it in your profile folder. You can run it without any command line arguments and it will backup your current user.js, download the latest arkenfox user.js and if it finds a user-overrides.js in the same folder it will append that to the user.js.

!! Unicode encoded override files should be stored without the BOM header !!

Available command-line parameters (case-insensitive):

  • -esr activate ESR-related preferences (new in v4.8).
  • -MultiOverrides use any and all .js files in a user.js-overrides sub-folder as overrides instead of the default user-overrides.js file. Files are appended in alphabetical order.
  • -singleBackup use a single backup file and overwrite it on new updates, instead of cumulative backups. This was the default behavior before v4.3
  • -unattended run the script without user-input
  • -updatebatch the updater will auto-update itself on execution
  • -log write the console output to the logfile user.js-update-log.txt
  • -LogP just like -Log but also open the logfile after updating
  • -Merge merge overrides instead of appending them
    • _user.js.parrot lines are not merged
    • Comments are appended normally
    • Overrides for inactive (commented out) user.js prefs will be appended
    • When -Merge and -MultiOverrides are used together, a user-overrides-merged.js file is also generated in the root directory for quick reference. It contains only the merged data from override files and can be safely discarded after updating, or used as the new user-overrides.js.
    • When there are conflicting records for the same pref, the value of the last one declared will be used.
    • v4.5+ supports commenting-out active user_pref lines (see example below)

🟪 WINDOWS -MERGE

The following example illustrates how -merge works:

🔹 arkenfox user.js file contains this:

/* 0405: disable "ignore this warning" on SB warnings [FF45+] ***/
   // user_pref("browser.safebrowsing.allowOverride", false);

/* 0801: disable location bar using search ***/
user_pref("keyword.enabled", false);

/* 4504: enable RFP letterboxing [FF67+] ***/
user_pref("privacy.resistFingerprinting.letterboxing", true); // [HIDDEN PREF]

🔹 user-overrides.js:

/*** my user.js overrides ***/
user_pref("browser.safebrowsing.allowOverride", false); // 0405 - remove SB bypass button
user_pref("keyword.enabled", true); // 0801 - I use a privacy respecting engine

//// --- comment-out --- 'privacy.resistFingerprinting.letterboxing' -4504- too distracting

🔹 final user.js after update + merging:

/* 0405: disable "ignore this warning" on SB warnings [FF45+] ***/
   // user_pref("browser.safebrowsing.allowOverride", false);

/* 0801: disable location bar using search ***/
user_pref("keyword.enabled", true); // 0801 - I use a privacy respecting engine

/* 4504: enable RFP letterboxing [FF67+] ***/
//user_pref("privacy.resistFingerprinting.letterboxing", true); // [HIDDEN PREF]

/*** my user.js overrides ***/
user_pref("browser.safebrowsing.allowOverride", false); // 0405 - remove SB bypass button

//// --- comment-out --- 'privacy.resistFingerprinting.letterboxing' -4504- too distracting

🔹 a couple things to note here:

  • 0405 was not merged because it's inactive in the user.js. Instead the override was appended at the bottom.
  • 0801 was merged with the override, including the comment from the overrides file.
  • 4504 was commented out and the original value and comment are kept intact
  • the special comment-out command was also appended at the bottom as a reminder that you gave that command

With -merge it's best to always add a comment behind your overrides to make them easily noticeable when you compare your new user.js with one of your backups. A good way is to use the number of the pref's section.

If you want the -merge function to comment-out a pref, you have to use this exact format:

//// --- comment-out --- 'prefname.goes.here'

Anything after the closing single-quote is optional and can be used for comments/reminders. (see example above)