# user.js | Firefox Fenix Nightly, Iceraven, Fennec F-Droid or Icecatmobile

The `user.js` file is used to configure Firefox for android in the safest and fastest way possible.
There are 2 versions: 
 * Default user.js for average users.
 * Another one with less connections as possible, meaning there are not automatic addons updates. You'll have to uninstall and reinstall them (not recommended)




## Goals:

* enhance security and privacy
* improve performance
* better fingerprint possible
* reduce automatic connections



## Compatible browsers:

This `user.js` has been designed for mobile purposes and you can use it on these browsers:

* [Firefox Fenix Nightly for Android](https://firefox-ci-tc.services.mozilla.com/tasks/index/mobile.v2.fenix.nightly.latest) - Mozilla-mobile
* [Iceraven browser](https://github.com/fork-maintainers/iceraven-browser) - Forks maintainers
* [Fennec F-Droid](https://f-droid.org/en/packages/org.mozilla.fennec_fdroid/) - FDroid (out of date)
* [Icecatmobile](https://f-droid.org/en/packages/org.gnu.icecat/) - F-Droid (out of date)




## How to install:

### **ROOT METHOD 1** *(file manager)*

I would like to suggest the use of [Amaze](https://f-droid.org/en/packages/com.amaze.filemanager/) or [TWRP File Manager](https://twrp.me/Devices/) before proceed.
- Download and install Firefox Fenix Nightly, Iceraven, Fennec F-Droid or Icecatmobile from their official websites (see above)
- Start the browser for the first time (offline mode/no data connections) and wait about 5 sec.
- Close it.
- Clone or download zip file and extract it
- Locate browser's installation directory similar to this:

    ✳️ Firefox Fenix Nightly `data/data/org.mozilla.fenix/files/mozilla/[xxxxxxx].default`

    ✳️ Iceraven `data/data/io.github.forkmaintainers.iceraven/files/mozilla/[xxxxxxx].default`

    ✳️ Fennec F-Droid `data/data/org.fdroid.froid/files/mozilla/[xxxxxxx].default`

    ✳️ Icecatmobile `data/data/org.gnu.icecat/files/mozilla/[xxxxxxx].default`

- Copy the extracted `user.js` file to the above installation directory.
- Delete `prefs.js` file inside the above directory
- Start the browser and test if `user.js` was applied :
 browse to `about:config` (put it in search bar) and look if `config.applied` is `true`.

If this doesn't work I suggest you to use the **ROOT METHOD 2** below.

### **ROOT METHOD 2** *(app)*

- Download and install the browser from their official websites.
- Download and install [User.js Updater](https://github.com/v1nc/user.js-updater/releases)
- Start the browser for the first time (offline mode/no data connections) and wait about 5 sec.
- Close it.
- Open `User.js Updater` app and grant storage permission.
- Choose Custom and write the following:

    https://git.nixnet.xyz/Narsil/mobile_user.js/src/branch/master/user.js

- Tap `UPDATE` at the bottom and grant root permission.
- Start the browser and test if `user.js` was applied :
  browse to `about:config` (put it in search bar) and look if `config.applied` is `true`.
 
- **AFWall+ USERS:** You can disable `Use Download Manager` option into `Settings` and enable data connection just to the app itself.

Thanks to [v1nc](https://github.com/v1nc/) for creating this app.




## Thanks:

I really thank the following authors:

* [Quindecim] (https://git.lelux.fi/quindecim/mobile_user.js) - Without him/her, this project could not be possible.
* [Arkenfox] (https://github.com/arkenfox/user.js) - Updates.