├── .github ├── FUNDING.yml └── ISSUE_TEMPLATE │ ├── bug.yml │ ├── config.yml │ ├── enhancement.yml │ ├── other.yml │ └── web-compat.yml ├── .gitignore ├── .gitlab-ci.yml ├── .gitlab └── issue_templates │ ├── default.md │ ├── enhancement.md │ ├── other.md │ └── web-compat.md ├── COPYING ├── Phoenix.code-workspace ├── README.md ├── _redirects ├── android ├── README.md └── phoenix-unextend.js ├── archives ├── phoenix-flatpak.zip ├── phoenix-osx.zip └── phoenix.zip ├── assets └── phoenix.png ├── build ├── build.sh ├── configs │ ├── apple-maps-spec.cfg │ ├── discord-spec.cfg │ ├── element-spec.cfg │ ├── google-maps-spec.cfg │ ├── specialized-spec.cfg │ ├── twitter-spec.cfg │ └── youtube-spec.cfg ├── convert.py ├── convert_json_to_plist.py ├── env.sh ├── gen_android.sh ├── gen_archive.sh ├── gen_desktop.sh ├── gen_macos.sh ├── gen_policies.sh ├── policies │ ├── blocklist-spec.json │ ├── cookies-spec.json │ ├── policies-core.json │ ├── policies-phoenix.json │ └── whitelist-spec.json └── prefs │ ├── extended │ ├── phoenix-extended-android.js │ ├── phoenix-extended-core.js │ └── phoenix-extended-desktop.js │ ├── phoenix-android.js │ ├── phoenix-core.js │ ├── phoenix-desktop-common.js │ └── phoenix-desktop.js ├── configs ├── apple-maps.cfg ├── discord.cfg ├── element.cfg ├── google-maps.cfg ├── hardened.cfg ├── macos │ ├── apple-maps.cfg │ ├── discord.cfg │ ├── element.cfg │ ├── google-maps.cfg │ ├── hardened.cfg │ ├── twitter.cfg │ ├── ui-fix.cfg │ ├── ui-fix │ │ ├── apple-maps.cfg │ │ ├── discord.cfg │ │ ├── element.cfg │ │ ├── google-maps.cfg │ │ ├── hardened.cfg │ │ ├── twitter.cfg │ │ └── youtube.cfg │ └── youtube.cfg ├── phoenix.cfg ├── twitter.cfg ├── ui-fix.cfg ├── ui-fix │ ├── apple-maps.cfg │ ├── discord.cfg │ ├── element.cfg │ ├── google-maps.cfg │ ├── hardened.cfg │ ├── twitter.cfg │ └── youtube.cfg └── youtube.cfg ├── etc └── profile.d │ └── phoenix-env-overrides.sh ├── extensions ├── search │ ├── duckduckgo-html │ │ ├── imager │ │ │ ├── favicon.ico │ │ │ └── icon.png │ │ └── manifest.json │ ├── duckduckgo-lite │ │ ├── imager │ │ │ ├── favicon.ico │ │ │ └── icon.png │ │ └── manifest.json │ ├── duckduckgo │ │ ├── imager │ │ │ └── icon.png │ │ └── manifest.json │ ├── leta-brave │ │ ├── imager │ │ │ ├── favicon.ico │ │ │ └── icon.png │ │ └── manifest.json │ ├── leta-google │ │ ├── imager │ │ │ ├── favicon.ico │ │ │ └── icon.png │ │ └── manifest.json │ ├── mojeek │ │ ├── imager │ │ │ ├── favicon.png │ │ │ └── icon.png │ │ └── manifest.json │ ├── no-search │ │ └── manifest.json │ ├── startpage │ │ ├── imager │ │ │ ├── favicon.ico │ │ │ └── icon.png │ │ └── manifest.json │ └── swisscows │ │ ├── imager │ │ ├── favicon.ico │ │ └── icon.png │ │ └── manifest.json ├── updates.json └── xpi │ └── search │ ├── duckduckgo-html │ ├── duckduckgo-html-0.0.2.xpi │ ├── duckduckgo-html-0.0.4.xpi │ ├── duckduckgo-html-0.0.6.xpi │ ├── duckduckgo-html-0.0.7.xpi │ ├── duckduckgo-html-latest.xpi │ └── unsigned │ │ ├── duckduckgo-html-0.0.3-UNSIGNED.xpi │ │ ├── duckduckgo-html-0.0.4-UNSIGNED.xpi │ │ ├── duckduckgo-html-0.0.6-UNSIGNED.xpi │ │ ├── duckduckgo-html-0.0.7-UNSIGNED.xpi │ │ └── duckduckgo-html-latest-UNSIGNED.xpi │ ├── duckduckgo-lite │ ├── duckduckgo-lite-0.0.1.xpi │ ├── duckduckgo-lite-0.0.3.xpi │ ├── duckduckgo-lite-0.0.4.xpi │ ├── duckduckgo-lite-0.0.5.xpi │ ├── duckduckgo-lite-latest.xpi │ └── unsigned │ │ ├── duckduckgo-lite-0.0.2-UNSIGNED.xpi │ │ ├── duckduckgo-lite-0.0.3-UNSIGNED.xpi │ │ ├── duckduckgo-lite-0.0.4-UNSIGNED.xpi │ │ ├── duckduckgo-lite-0.0.5-UNSIGNED.xpi │ │ └── duckduckgo-lite-latest-UNSIGNED.xpi │ ├── duckduckgo │ ├── duckduckgo-0.0.1.xpi │ ├── duckduckgo-0.0.2.xpi │ ├── duckduckgo-0.0.3.xpi │ ├── duckduckgo-latest.xpi │ └── unsigned │ │ ├── duckduckgo-0.0.1-UNSIGNED.xpi │ │ ├── duckduckgo-0.0.2-UNSIGNED.xpi │ │ ├── duckduckgo-0.0.3-UNSIGNED.xpi │ │ └── duckduckgo-latest-UNSIGNED.xpi │ ├── leta-brave │ ├── leta-brave-0.0.1.xpi │ ├── leta-brave-0.0.2.xpi │ ├── leta-brave-latest.xpi │ └── unsigned │ │ ├── leta-brave-0.0.1-UNSIGNED.xpi │ │ ├── leta-brave-0.0.2-UNSIGNED.xpi │ │ └── leta-brave-latest-UNSIGNED.xpi │ ├── leta-google │ ├── leta-google-0.0.1.xpi │ ├── leta-google-0.0.2.xpi │ ├── leta-google-latest.xpi │ └── unsigned │ │ ├── leta-google-0.0.1-UNSIGNED.xpi │ │ ├── leta-google-0.0.2-UNSIGNED.xpi │ │ └── leta-google-latest-UNSIGNED.xpi │ ├── mojeek │ ├── mojeek-0.0.1.xpi │ ├── mojeek-0.0.2.xpi │ ├── mojeek-0.0.3.xpi │ ├── mojeek-0.0.4.xpi │ ├── mojeek-0.0.5.xpi │ ├── mojeek-latest.xpi │ └── unsigned │ │ ├── mojeek-0.0.2-UNSIGNED.xpi │ │ ├── mojeek-0.0.3-UNSIGNED.xpi │ │ ├── mojeek-0.0.4-UNSIGNED.xpi │ │ ├── mojeek-0.0.5-UNSIGNED.xpi │ │ └── mojeek-latest-UNSIGNED.xpi │ ├── no-search │ ├── no-search-0.0.1.xpi │ ├── no-search-0.0.2.xpi │ ├── no-search-0.0.3.xpi │ ├── no-search-0.0.4.xpi │ ├── no-search-0.0.5.xpi │ ├── no-search-latest.xpi │ └── unsigned │ │ ├── no-search-0.0.2-UNSIGNED.xpi │ │ ├── no-search-0.0.3-UNSIGNED.xpi │ │ ├── no-search-0.0.4-UNSIGNED.xpi │ │ ├── no-search-0.0.5-UNSIGNED.xpi │ │ └── no-search-latest-UNSIGNED.xpi │ ├── startpage │ ├── startpage-0.0.1.xpi │ ├── startpage-0.0.2.xpi │ ├── startpage-0.0.3.xpi │ ├── startpage-0.0.4.xpi │ ├── startpage-0.0.5.xpi │ ├── startpage-latest.xpi │ └── unsigned │ │ ├── startpage-0.0.2-UNSIGNED.xpi │ │ ├── startpage-0.0.3-UNSIGNED.xpi │ │ ├── startpage-0.0.4-UNSIGNED.xpi │ │ ├── startpage-0.0.5-UNSIGNED.xpi │ │ └── startpage-latest-UNSIGNED.xpi │ └── swisscows │ ├── swisscows-0.0.1.xpi │ ├── swisscows-0.0.2.xpi │ ├── swisscows-0.0.3.xpi │ ├── swisscows-0.0.4.xpi │ ├── swisscows-latest.xpi │ └── unsigned │ ├── swisscows-0.0.1-UNSIGNED.xpi │ ├── swisscows-0.0.2-UNSIGNED.xpi │ ├── swisscows-0.0.3-UNSIGNED.xpi │ ├── swisscows-0.0.4-UNSIGNED.xpi │ └── swisscows-latest-UNSIGNED.xpi ├── flake.lock ├── flake.nix ├── installer_scripts ├── macos_env.sh ├── macos_install.sh ├── snap_install.sh └── windows_install.ps1 ├── macos ├── Library │ ├── LaunchAgents │ │ ├── dev.celenity.phoenix.env.MOZ_CRASHREPORTER_DISABLE.plist │ │ ├── dev.celenity.phoenix.env.MOZ_CRASHREPORTER_NO_REPORT.plist │ │ └── dev.celenity.phoenix.env.MOZ_CRASHREPORTER_URL.plist │ ├── LaunchDaemons │ │ ├── dev.celenity.phoenix.apply.intel.plist │ │ └── dev.celenity.phoenix.apply.plist │ └── celenity │ │ └── Phoenix │ │ ├── phoenix-apply-intel.sh │ │ └── phoenix-apply.sh ├── defaults │ └── pref │ │ └── phoenix-bootstrap.js ├── intel │ └── phoenix-bootstrap.cfg ├── migration │ ├── system.sh │ └── user.sh ├── org.mozilla.firefox.plist ├── phoenix-bootstrap.cfg └── phoenix.cfg ├── phoenix.cfg ├── policies.json ├── prefs ├── phoenix-android.js ├── phoenix-desktop.js ├── phoenix-extended-android.js └── phoenix-extended-desktop.js ├── uBlock ├── assets.dev.json ├── assets.json ├── badlists.txt ├── beacon.txt ├── quick-fixes.txt └── stub-trusted-scriptlets.js ├── uninstaller_scripts ├── macos_uninstall.sh └── snap_uninstall.sh ├── user.js ├── userjs ├── README ├── flatpak │ ├── apple-maps │ │ └── user.js │ ├── discord │ │ └── user.js │ ├── element │ │ └── user.js │ ├── extended │ │ └── user.js │ ├── google-maps │ │ └── user.js │ ├── twitter │ │ └── user.js │ ├── ui-fix-base │ │ └── user.js │ ├── ui-fix │ │ ├── apple-maps │ │ │ └── user.js │ │ ├── discord │ │ │ └── user.js │ │ ├── element │ │ │ └── user.js │ │ ├── extended │ │ │ └── user.js │ │ ├── google-maps │ │ │ └── user.js │ │ ├── twitter │ │ │ └── user.js │ │ └── youtube │ │ │ └── user.js │ └── youtube │ │ └── user.js ├── linux │ ├── apple-maps │ │ └── user.js │ ├── discord │ │ └── user.js │ ├── element │ │ └── user.js │ ├── extended │ │ └── user.js │ ├── google-maps │ │ └── user.js │ ├── twitter │ │ └── user.js │ ├── ui-fix-base │ │ └── user.js │ ├── ui-fix │ │ ├── apple-maps │ │ │ └── user.js │ │ ├── discord │ │ │ └── user.js │ │ ├── element │ │ │ └── user.js │ │ ├── extended │ │ │ └── user.js │ │ ├── google-maps │ │ │ └── user.js │ │ ├── twitter │ │ │ └── user.js │ │ └── youtube │ │ │ └── user.js │ └── youtube │ │ └── user.js ├── macos-intel │ ├── apple-maps │ │ └── user.js │ ├── discord │ │ └── user.js │ ├── element │ │ └── user.js │ ├── extended │ │ └── user.js │ ├── google-maps │ │ └── user.js │ ├── twitter │ │ └── user.js │ ├── ui-fix-base │ │ └── user.js │ ├── ui-fix │ │ ├── apple-maps │ │ │ └── user.js │ │ ├── discord │ │ │ └── user.js │ │ ├── element │ │ │ └── user.js │ │ ├── extended │ │ │ └── user.js │ │ ├── google-maps │ │ │ └── user.js │ │ ├── twitter │ │ │ └── user.js │ │ └── youtube │ │ │ └── user.js │ └── youtube │ │ └── user.js └── macos │ ├── apple-maps │ └── user.js │ ├── discord │ └── user.js │ ├── element │ └── user.js │ ├── extended │ └── user.js │ ├── google-maps │ └── user.js │ ├── twitter │ └── user.js │ ├── ui-fix-base │ └── user.js │ ├── ui-fix │ ├── apple-maps │ │ └── user.js │ ├── discord │ │ └── user.js │ ├── element │ │ └── user.js │ ├── extended │ │ └── user.js │ ├── google-maps │ │ └── user.js │ ├── twitter │ │ └── user.js │ └── youtube │ │ └── user.js │ └── youtube │ └── user.js └── windows └── phoenix.js /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | custom: [https://celenity.dev/donate] 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug.yml: -------------------------------------------------------------------------------- 1 | name: Bug 2 | description: For any general issues or unexpected/unintended behavior you come across while using Phoenix. 3 | title: "[BUG] PLEASE REPLACE THIS TEXT WITH A SUMMARY OF YOUR ISSUE..." 4 | labels: ["bug"] 5 | assignees: 6 | - celenity 7 | - celenityy 8 | body: 9 | - type: textarea 10 | id: version 11 | attributes: 12 | label: What version of Phoenix are you using? 13 | description: | 14 | An easy way to tell is by checking the value of `browser.phoenix.version` in your `about:config`. 15 | validations: 16 | required: true 17 | 18 | - type: textarea 19 | id: browser 20 | attributes: 21 | label: What version of Firefox are you using with Phoenix? 22 | description: | 23 | An easy way to tell is by checking the value besides `Version` on `about:support`. 24 | validations: 25 | required: true 26 | 27 | - type: dropdown 28 | id: platform 29 | attributes: 30 | label: What operating system are you experiencing this issue on? 31 | description: | 32 | If your operating system is not listed, please select `Other` and enter its name in the comment field below. **Note that operating systems other than what's listed below are only supported on a best case basis.** 33 | multiple: true 34 | options: 35 | - Android 36 | - Arch Linux 37 | - Debian 38 | - Fedora Linux 39 | - macOS 40 | - Ubuntu 41 | - Other 42 | validations: 43 | required: true 44 | - type: input 45 | id: other 46 | attributes: 47 | label: Other 48 | validations: 49 | required: false 50 | 51 | - type: textarea 52 | id: reason 53 | attributes: 54 | label: Please explain the issue you are experiencing. 55 | description: | 56 | Be sure to include as many relevant details as possible! :) 57 | validations: 58 | required: true 59 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/enhancement.yml: -------------------------------------------------------------------------------- 1 | name: Enhancement 2 | description: Have any new features you want to see or any ideas to make Phoenix better? Here's your place ;) 3 | title: "[ENHANCEMENT] PLEASE REPLACE THIS TEXT WITH A SUMMARY OF YOUR SUGGESTION..." 4 | labels: ["enhancement"] 5 | assignees: 6 | - celenity 7 | - celenityy 8 | body: 9 | - type: textarea 10 | id: reason 11 | attributes: 12 | label: Please explain your proposal with as many details as necessary (Ex. what you're suggesting, why you're suggesting it, what need you thinks it will fill, who it will benefit, etc...). 13 | validations: 14 | required: true 15 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/other.yml: -------------------------------------------------------------------------------- 1 | name: Other 2 | description: Anything else not already covered by other categories. 3 | title: "[OTHER] PLEASE REPLACE THIS TEXT WITH A SUMMARY OF YOUR ISSUE..." 4 | labels: ["other"] 5 | assignees: 6 | - celenity 7 | - celenityy 8 | body: 9 | - type: textarea 10 | id: reason 11 | attributes: 12 | label: Please explain your inquiry. 13 | validations: 14 | required: true 15 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/web-compat.yml: -------------------------------------------------------------------------------- 1 | name: Web Compat 2 | description: For reporting breakage or unexpected/unintended behavior with specific websites. 3 | title: "[WEB COMPAT] PLEASE REPLACE THIS TEXT WITH A SUMMARY OF YOUR ISSUE..." 4 | labels: ["web compat"] 5 | assignees: 6 | - celenity 7 | - celenityy 8 | body: 9 | - type: checkboxes 10 | id: confirmation 11 | attributes: 12 | label: Confirmation 13 | options: 14 | - label: Please confirm that you have already checked the Website Compatibility wiki page (https://phoenix.celenity.dev/compat), and that this issue is NOT currently listed. 15 | required: true 16 | 17 | - type: textarea 18 | id: domains 19 | attributes: 20 | label: Which domain(s) are you experiencing this issue on? 21 | validations: 22 | required: true 23 | 24 | - type: textarea 25 | id: version 26 | attributes: 27 | label: What version of Phoenix are you using? 28 | description: | 29 | An easy way to tell is by checking the value of `browser.phoenix.version` in your `about:config`. 30 | validations: 31 | required: true 32 | 33 | - type: textarea 34 | id: browser 35 | attributes: 36 | label: What version of Firefox are you using with Phoenix? 37 | description: | 38 | An easy way to tell is by checking the value besides `Version` on `about:support`. 39 | validations: 40 | required: true 41 | 42 | - type: dropdown 43 | id: platform 44 | attributes: 45 | label: What operating system are you experiencing this issue on? 46 | description: | 47 | If your operating system is not listed, please select `Other` and enter its name in the comment field below. **Note that operating systems other than what's listed below are only supported on a best case basis.** 48 | multiple: true 49 | options: 50 | - Android 51 | - Arch Linux 52 | - Debian 53 | - Fedora Linux 54 | - macOS 55 | - Ubuntu 56 | - Other 57 | validations: 58 | required: true 59 | - type: input 60 | id: other 61 | attributes: 62 | label: Other 63 | validations: 64 | required: false 65 | 66 | - type: textarea 67 | id: reason 68 | attributes: 69 | label: Please explain the issue you are experiencing. 70 | description: | 71 | Be sure to include as many relevant details as possible! :) 72 | validations: 73 | required: true 74 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | # nix build 3 | result-* 4 | result -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | image: busybox 2 | 3 | default: 4 | cache: [] 5 | 6 | pages: 7 | stage: deploy 8 | script: 9 | - echo "The site will be deployed to $CI_PAGES_URL" 10 | - mkdir .public 11 | - cp -rf -- * .public 12 | - mv .public public 13 | artifacts: 14 | paths: 15 | - public 16 | rules: 17 | - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH 18 | -------------------------------------------------------------------------------- /.gitlab/issue_templates/default.md: -------------------------------------------------------------------------------- 1 | # BUG 2 | 3 | 9 | 10 | ### Version 11 | 15 | 16 | ### Browser 17 | 21 | 22 | ### Platform 23 | 27 | 28 | ### Reason 29 | 33 | -------------------------------------------------------------------------------- /.gitlab/issue_templates/enhancement.md: -------------------------------------------------------------------------------- 1 | # ENHANCEMENT 2 | 3 | 9 | 10 | ___ 11 | 12 | 14 | -------------------------------------------------------------------------------- /.gitlab/issue_templates/other.md: -------------------------------------------------------------------------------- 1 | # OTHER 2 | 3 | 9 | 10 | ___ 11 | 12 | 14 | -------------------------------------------------------------------------------- /.gitlab/issue_templates/web-compat.md: -------------------------------------------------------------------------------- 1 | # WEB COMPAT 2 | 3 | 9 | 10 | ### Confirmation 11 | 13 | 14 | 16 | 17 | ### Domains 18 | 19 | 21 | 22 | ### Version 23 | 27 | 28 | ### Browser 29 | 33 | 34 | ### Platform 35 | 39 | 40 | ### Reason 41 | 45 | -------------------------------------------------------------------------------- /Phoenix.code-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | { 4 | "name": "Phoenix", 5 | "path": "." 6 | }, 7 | { 8 | "name": "Phoenix.wiki", 9 | "path": "../Phoenix.wiki" 10 | }, 11 | { 12 | "name": "Phoenix-Debian", 13 | "path": "../Phoenix-Debian" 14 | }, 15 | { 16 | "name": "Phoenix-Flatpak", 17 | "path": "../Phoenix-Flatpak" 18 | }, 19 | { 20 | "name": "Phoenix-Policies-Windows", 21 | "path": "../Phoenix-Policies-Windows" 22 | }, 23 | { 24 | "name": "copr", 25 | "path": "../copr" 26 | }, 27 | { 28 | "name": "home:celenity", 29 | "path": "../home:celenity" 30 | }, 31 | { 32 | "name": "pkgbuilds", 33 | "path": "../pkgbuilds" 34 | }, 35 | { 36 | "name": "tap", 37 | "path": "../tap" 38 | }, 39 | { 40 | "name": "firefox", 41 | "path": "../../../../lib64/firefox" 42 | }, 43 | { 44 | "name": ".mozilla", 45 | "path": "../../.mozilla" 46 | }, 47 | { 48 | "name": "firefox-dev", 49 | "path": "../../../../opt/firefox-dev" 50 | } 51 | ], 52 | "settings": { 53 | "editor.wordWrap": "on" 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /_redirects: -------------------------------------------------------------------------------- 1 | / https://codeberg.org/celenity/Phoenix 301 2 | /issues https://codeberg.org/celenity/Phoenix/issues/ 301 3 | /geo https://codeberg.org/celenity/Phoenix/wiki/Transparency#geolocation 301 4 | /compat https://codeberg.org/celenity/Phoenix/wiki/Web-Compat 301 5 | /wiki https://codeberg.org/celenity/Phoenix/wiki 301 6 | /features https://codeberg.org/celenity/Phoenix/wiki/Features 301 7 | /extended https://codeberg.org/celenity/Phoenix/wiki/Extended 301 8 | /compare https://codeberg.org/celenity/Phoenix/wiki/Comparison 301 9 | /privacy https://codeberg.org/celenity/Phoenix/wiki/Transparency 301 10 | /content-blocking https://codeberg.org/celenity/Phoenix/wiki/Content-Blocking 301 11 | /extensions https://codeberg.org/celenity/Phoenix/wiki/Extensions 301 12 | /important https://codeberg.org/celenity/Phoenix/wiki/Important 301 13 | /limitations https://codeberg.org/celenity/Phoenix/wiki/Limitations 301 14 | /removed https://codeberg.org/celenity/Phoenix/wiki/Removed-Prefs.md 301 15 | /android https://codeberg.org/celenity/Phoenix/src/branch/pages/android/README.md 301 16 | /recommended-extensions https://codeberg.org/celenity/Phoenix/wiki/Recommended-Extensions 301 17 | /search https://codeberg.org/celenity/Phoenix/wiki/Search 301 18 | -------------------------------------------------------------------------------- /android/README.md: -------------------------------------------------------------------------------- 1 | # Phoenix for Android 2 | 3 | This directory contains specialized Phoenix config files, specifically designed for Firefox on Android. These configs should **NOT** be used on Desktop Firefox releases, & you should **NOT** use our desktop configs on Android. 4 | 5 | **The recommended way to use Phoenix on Android is via [IronFox](https://gitlab.com/ironfox-oss/IronFox)**, a fully free & open source fork of the now discontinued [Mull](https://codeberg.org/divested-mobile/mull-fenix) browser. *(Disclaimer: I am a maintainer of IronFox...)*. 6 | 7 | However, you may also manually install these configs on: 8 | 9 | * **Fennec F-Droid** 10 | * **Firefox** 11 | * **Firefox Beta** 12 | * **Firefox Focus** 13 | * **Firefox Klar** 14 | * **Firefox Nightly** 15 | * **Iceraven** 16 | * & basically **any other Firefox-based Android web browser via the following steps**. 17 | 18 | ___ 19 | 20 | ## Manual Installation Steps 21 | 22 | *This guide has been adapted from the incredible work of [ndv92](https://voz.vn/u/ndv92.790519/) (see their original forum post [here](https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-chromium.682181/page-292#post-27739740)), and [Gunir](https://github.com/gunir) (see their on GitHub [here](https://github.com/yokoffing/Betterfox/issues/240)).* **Thank you to them for making this possible!** 23 | 24 | **1:** You're first going to need to install ADB on your computer. You can see a guide to do this [here](https://www.xda-developers.com/install-adb-windows-macos-linux/). You also need to make sure you have Firefox's desktop application installed, and you'll need a USB (C) cable to connect your mobile device to your computer. 25 | 26 | **2:** In your Firefox-based web browser **on your Android device**, navigate to `Settings`, scroll down to the bottom, and **enable** `Remote debugging via USB`. 27 | 28 | > [!IMPORTANT] 29 | > **Please remember to disable `Remote debugging via USB` when you're done, due to security concerns...** 30 | 31 | **3:** On your Android device, you now need to enable ADB debugging. The steps will vary depending on your device's manufacturer, but for AOSP, you can enable it via opening your `Settings` app, and navigating to `System` -> `Developer options` -> `USB debugging`. **Make sure you have Developer options enabled!** 32 | 33 | > [!TIP] 34 | > If you don't already have Developer options enabled on your device, the steps will again vary depending on your device's manufacturer, but for AOSP, you can activate it via opening your `Settings` app, navigating to `About phone` *(It may also say `About tablet`, depending on your device...)*, scrolling down to the very bottom, and repeatedly tapping `Build number`, until you see a confirmation screen asking for your device's passcode. 35 | 36 | > [!IMPORTANT] 37 | > **Please remember to disable ADB when you're done, due to security concerns...** 38 | 39 | **4:** Open Firefox back up on your mobile device, and navigate to `about:support`. 40 | 41 | **5:** Ensure ADB is running on your computer *(An easy way to tell is simply via running `adb devices`)*, and connect your mobile device to your computer. 42 | 43 | **6:** You'll now see a prompt on your device asking to `Allow USB debugging?`. Select **Allow**. 44 | 45 | **7:** Run `adb devices` & confirm your device is attached. If it is attached, proceed to the next steps. 46 | 47 | **8:** On your computer, launch Firefox's desktop installation, and navigate to `about:debugging`. Towards the bottom left, you should see your device's name/model, with an option to `Connect`. Select **Connect**. If you don't see it, you should try selecting the `Refresh devices` option, and unplugging + plugging back in your device to your computer. 48 | 49 | **9:** Select your device's name/model towards the bottom left. Under the `Tabs` section, you should see an entry titled `Troubleshooting Information`, with the text `about:support` below it. Choose **Inspect** to the right of this text. 50 | 51 | **10:** If not already selected, navigate to the Web Console via selecting the **Console** tab; it can be found in between the `Inspector` & `Debugger` options. 52 | 53 | **11:** Paste the following content into your Web Console, but do **NOT** enter it yet: 54 | 55 | ```sh 56 | var locked = "ignore"; 57 | var sticky = "ignore"; 58 | var pref = function(pref, val, locked, sticky) { 59 | try { 60 | if (typeof val == "string") { 61 | Services.prefs.setStringPref(pref, val); 62 | } else if (typeof val == "number") { 63 | Services.prefs.setIntPref(pref, val); 64 | } else if (typeof val == "boolean") { 65 | Services.prefs.setBoolPref(pref, val); 66 | } 67 | } catch (e) { 68 | console.log("pref:" + pref + " val:" + val + " e:" + e); 69 | } 70 | } 71 | 72 | // Paste the contents of phoenix-android.js below: 73 | 74 | ``` 75 | 76 | *Credit to [ndv92](https://voz.vn/u/ndv92.790519/) for [the creation of the code above](https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-chromium.682181/page-292#post-27739740); I've just slightly tweaked it for our use case.* 77 | 78 | **12:** Open up a separate tab on your desktop installation of Firefox, and navigate to [phoenix-android.js](https://gitlab.com/celenityy/Phoenix/-/raw/pages/prefs/phoenix-android.js). It can be found at the following link: 79 | 80 | ```sh 81 | https://gitlab.com/celenityy/Phoenix/-/raw/pages/prefs/phoenix-android.js 82 | ``` 83 | 84 | **13:** Copy the contents of the file *(Easiest way to select everything is via `Ctrl` + `a`, then `Ctrl` + `c` to copy)*, then navigate back to your Web console, & paste the contents below the `// Paste the contents of phoenix-android.js below:` line. **Now press enter.** 85 | 86 | **14:** If you'd also like to use Phoenix's `Extended` Hardening config, you'll first need to navigate to the `about:config` on your Android device & set `devtools.debugger.remote-enabled` to `true`. 87 | 88 | **15:** You should then reconnect to your mobile device from `about:debugging` on your computer. You can now **repeat** Steps `11` & `12`, but replace `https://gitlab.com/celenityy/Phoenix/-/raw/pages/prefs/phoenix-android.js` with `https://gitlab.com/celenityy/Phoenix/-/raw/pages/prefs/phoenix-extended-android.js`: 89 | 90 | ```sh 91 | https://gitlab.com/celenityy/Phoenix/-/raw/pages/prefs/phoenix-extended-android.js 92 | ``` 93 | 94 | **16:** Unplug your Android device from your computer, and stop ADB via running `adb kill-server` on your computer. 95 | 96 | **17:** Back on your Android device, within Firefox, navigate to `Settings`, scroll down to the bottom, and **disable** `Remote debugging via USB`. 97 | 98 | **18:** Close Firefox on your Android device, open up your `Settings` app, navigate back to `Developer options` *(via the same way you accessed it in Step `3`)*, and **disable** `USB debugging`. 99 | 100 | **19:** Below `USB debugging`, select **Revoke USB debugging authorizations**, and choose `OK`. 101 | 102 | **20:** You're done, enjoy :). 103 | -------------------------------------------------------------------------------- /android/phoenix-unextend.js: -------------------------------------------------------------------------------- 1 | // 2 | // Unextend Phoenix... 3 | 4 | // By default, IronFox uses Phoenix's 'Extended' Hardening config. This will cause breakage, and may not be desirable for everyone. 5 | // So this exists to easily revert IronFox to use Phoenix's standard 'base'/recommended config instead. 6 | 7 | // 001 ADVANCED FINGERPRINTING PROTECTION 8 | 9 | /// Set FPP to only cover our default targets 10 | 11 | pref("privacy.fingerprintingProtection.overrides", "+AllTargets,-CanvasExtractionBeforeUserInputIsBlocked,-CanvasImageExtractionPrompt,-CSSPrefersColorScheme,-FrameRate,-JSDateTimeUTC"); 12 | 13 | /// Enable WebGL 14 | // https://blog.browserscan.net/docs/webgl-fingerprinting 15 | // https://security.stackexchange.com/questions/13799/is-webgl-a-security-concern 16 | 17 | pref("webgl.disabled", false); 18 | 19 | pref("browser.phoenix.unextend.001.applied", true); 20 | 21 | /// 002 WEBRTC 22 | 23 | pref("media.peerconnection.ice.default_address_only", false); 24 | pref("media.peerconnection.ice.no_host", false); 25 | pref("media.peerconnection.ice.relay_only", false); 26 | 27 | pref("browser.phoenix.unextend.002.applied", true); 28 | 29 | // 003 MISC. PRIVACY 30 | 31 | /// Always send cross-origin referers 32 | 33 | pref("network.http.referer.XOriginPolicy", 0); 34 | 35 | pref("browser.phoenix.unextend.003.applied", true); 36 | 37 | // 004 ATTACK SURFACE REDUCTION 38 | 39 | /// Enable WebAssembly 40 | // https://spectrum.ieee.org/more-worries-over-the-security-of-web-assembly 41 | 42 | pref("javascript.options.wasm", true); 43 | 44 | pref("browser.phoenix.unextend.004.applied", true); 45 | 46 | // 005 MISC. 47 | 48 | /// Standard Autoplay Blocking 49 | 50 | pref("media.autoplay.blocking_policy", 0); // [Default = 0] 51 | 52 | pref("browser.phoenix.unextend.005.applied", true); 53 | 54 | pref("browser.phoenix.unextend.applied", true); 55 | -------------------------------------------------------------------------------- /archives/phoenix-flatpak.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/archives/phoenix-flatpak.zip -------------------------------------------------------------------------------- /archives/phoenix-osx.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/archives/phoenix-osx.zip -------------------------------------------------------------------------------- /archives/phoenix.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/archives/phoenix.zip -------------------------------------------------------------------------------- /assets/phoenix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/assets/phoenix.png -------------------------------------------------------------------------------- /build/build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | source build/env.sh 4 | 5 | if [[ "$OSTYPE" == "darwin"* ]]; then 6 | # Update "browser.phoenix.version" 7 | sed -i '' "s/pref(\"browser.phoenix.version\", \".*\", locked);/pref(\"browser.phoenix.version\", \"$phoenix_version\", locked);/" build/prefs/phoenix-core.js 8 | # Update "distribution.about" 9 | sed -i '' "s/pref(\"distribution.about\", \".*\", locked);/pref(\"distribution.about\", \"Phoenix for Mozilla Firefox - $phoenix_version 💜\", locked);/" build/prefs/phoenix-desktop.js 10 | sed -i '' "s/pref(\"distribution.about\", \".*\", locked);/pref(\"distribution.about\", \"Phoenix: Extended for Mozilla Firefox - $phoenix_version 💜\", locked);/" build/prefs/extended/phoenix-extended-desktop.js 11 | sed -i '' "s/lockPref(\"distribution.about\", \".*\");/lockPref(\"distribution.about\", \"Phoenix: Apple Maps SC for Mozilla Firefox - $phoenix_version 💜\");/" build/configs/apple-maps-spec.cfg 12 | sed -i '' "s/lockPref(\"distribution.about\", \".*\");/lockPref(\"distribution.about\", \"Phoenix: Discord SC for Mozilla Firefox - $phoenix_version 💜\");/" build/configs/discord-spec.cfg 13 | sed -i '' "s/lockPref(\"distribution.about\", \".*\");/lockPref(\"distribution.about\", \"Phoenix: Element SC for Mozilla Firefox - $phoenix_version 💜\");/" build/configs/element-spec.cfg 14 | sed -i '' "s/lockPref(\"distribution.about\", \".*\");/lockPref(\"distribution.about\", \"Phoenix: Google Maps SC for Mozilla Firefox - $phoenix_version 💜\");/" build/configs/google-maps-spec.cfg 15 | sed -i '' "s/lockPref(\"distribution.about\", \".*\");/lockPref(\"distribution.about\", \"Phoenix: Twitter SC for Mozilla Firefox - $phoenix_version 💜\");/" build/configs/twitter-spec.cfg 16 | sed -i '' "s/lockPref(\"distribution.about\", \".*\");/lockPref(\"distribution.about\", \"Phoenix: YouTube SC for Mozilla Firefox - $phoenix_version 💜\");/" build/configs/youtube-spec.cfg 17 | else 18 | # Update "browser.phoenix.version" 19 | sed -i "s/pref(\"browser.phoenix.version\", \".*\", locked);/pref(\"browser.phoenix.version\", \"$phoenix_version\", locked);/" build/prefs/phoenix-core.js 20 | # Update "distribution.about" 21 | sed -i "s/pref(\"distribution.about\", \".*\", locked);/pref(\"distribution.about\", \"Phoenix for Mozilla Firefox - $phoenix_version 💜\", locked);/" build/prefs/phoenix-desktop.js 22 | sed -i "s/pref(\"distribution.about\", \".*\", locked);/pref(\"distribution.about\", \"Phoenix: Extended for Mozilla Firefox - $phoenix_version 💜\", locked);/" build/prefs/extended/phoenix-extended-desktop.js 23 | sed -i "s/lockPref(\"distribution.about\", \".*\");/lockPref(\"distribution.about\", \"Phoenix: Apple Maps SC for Mozilla Firefox - $phoenix_version 💜\");/" build/configs/apple-maps-spec.cfg 24 | sed -i "s/lockPref(\"distribution.about\", \".*\");/lockPref(\"distribution.about\", \"Phoenix: Discord SC for Mozilla Firefox - $phoenix_version 💜\");/" build/configs/discord-spec.cfg 25 | sed -i "s/lockPref(\"distribution.about\", \".*\");/lockPref(\"distribution.about\", \"Phoenix: Element SC for Mozilla Firefox - $phoenix_version 💜\");/" build/configs/element-spec.cfg 26 | sed -i "s/lockPref(\"distribution.about\", \".*\");/lockPref(\"distribution.about\", \"Phoenix: Google Maps SC for Mozilla Firefox - $phoenix_version 💜\");/" build/configs/google-maps-spec.cfg 27 | sed -i "s/lockPref(\"distribution.about\", \".*\");/lockPref(\"distribution.about\", \"Phoenix: Twitter SC for Mozilla Firefox - $phoenix_version 💜\");/" build/configs/twitter-spec.cfg 28 | sed -i "s/lockPref(\"distribution.about\", \".*\");/lockPref(\"distribution.about\", \"Phoenix: YouTube SC for Mozilla Firefox - $phoenix_version 💜\");/" build/configs/youtube-spec.cfg 29 | fi 30 | 31 | ./build/gen_desktop.sh && ./build/gen_macos.sh && ./build/gen_android.sh && ./build/gen_policies.sh && ./build/gen_archive.sh 32 | -------------------------------------------------------------------------------- /build/configs/discord-spec.cfg: -------------------------------------------------------------------------------- 1 | // 2 | 3 | // 4 | // Copyright (C) 2024-2025 celenity 5 | // 6 | // This file is part of Phoenix. 7 | // 8 | // Phoenix is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 9 | // 10 | // Phoenix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 11 | // 12 | // You should have received a copy of the GNU General Public License along with Phoenix. If not, see https://www.gnu.org/licenses/. 13 | // 14 | 15 | // This contains preferences specifically tailored for Discord. 16 | 17 | /// Add custom branding under `Firefox Updates` at `about:preferences#general` 18 | // This will unfortunately only display if the version of Firefox you're using is repackaged (ex. Flatpaks/Linux distros) 19 | lockPref("distribution.about", "Phoenix: Discord SC for Mozilla Firefox - 2025.05.11.1 💜"); 20 | 21 | /* INDEX 22 | 23 | 001: UI 24 | 002: DEBLOAT 25 | 003: PRIVACY + SECURITY 26 | 004: PRIVACY 27 | 005: UNBREAK 28 | 29 | */ 30 | 31 | /*** 001 UI ***/ 32 | 33 | /// Add Discord to about:home 34 | defaultPref("browser.newtabpage.pinned", '[{"url":"https://discord.com/channels/@me","label":"Discord"}]'); 35 | 36 | defaultPref("browser.phoenix.status.specialized.discord", "001"); 37 | 38 | /*** 002 DEBLOAT ***/ 39 | 40 | /// Disable Cookie Banner Reduction 41 | // https://support.mozilla.org/kb/cookie-banner-reduction 42 | defaultPref("cookiebanners.bannerClicking.enabled", false); 43 | defaultPref("cookiebanners.cookieInjector.enabled", false); 44 | defaultPref("cookiebanners.service.mode", 0); // [DEFAULT] 45 | defaultPref("cookiebanners.service.mode.privateBrowsing", 0); // [DEFAULT] 46 | defaultPref("cookiebanners.service.enableGlobalRules", false); 47 | defaultPref("cookiebanners.service.enableGlobalRules.subFrames", false); 48 | defaultPref("cookiebanners.ui.desktop.enabled", false); // [DEFAULT] 49 | 50 | defaultPref("browser.phoenix.status.specialized.discord", "002"); 51 | 52 | /*** 003 PRIVACY + SECURITY ***/ 53 | 54 | /// Disable WebGL 55 | // PRIVACY: Fingerprinting concerns 56 | // SECURITY: Attack Surface Reduction 57 | // https://blog.browserscan.net/docs/webgl-fingerprinting 58 | // https://security.stackexchange.com/questions/13799/is-webgl-a-security-concern 59 | defaultPref("webgl.disabled", true); 60 | 61 | defaultPref("browser.phoenix.status.specialized.discord", "003"); 62 | 63 | /*** 004 PRIVACY ***/ 64 | 65 | /// Expand domain blocklist 66 | // Currently adds `datadog.discord.tools`, `datadoghq.com`, `ingest.sentry.io`, `o64374.ingest.sentry.io`, &`us5.datadoghq.com` 67 | defaultPref("network.dns.localDomains", "250analytics.com,a.omappapi.com,ads.allizom.org,ads.mozilla.org,ads.nonprod.webservices.mozgcp.net,ads.prod.webservices.mozgcp.net,analytics.getpocket.com,analytics.google.com,analytics.withgoogle.com,anf1.fuzzing.mozilla.org,anonymco.com,api.divviup.org,asan-nightly-frontend-elb-1348905149.us-east-2.elb.amazonaws.com,braze.com,contile.services.mozilla.com,contile-images.services.mozilla.com,classify-client.nonprod.webservices.mozgcp.net,classify-client.prod.webservices.mozgcp.net,classify-client.services.mozilla.com,crash-reports.allizom.org,crash-reports.mozilla.com,crash-reports-xpsp2.mozilla.com,crash-stacks.mozilla.com,crash-stats.allizom.org,crash-stats.mozilla.com,crash-stats.mozilla.org,dap.services.mozilla.com,dap.nonprod.webservices.mozgcp.net,dap.prod.webservices.mozgcp.net,dap-09-3.api.divviup.org,data.mozilla.com,data-ingestion.prod.dataops.mozgcp.net,dataops.mozgcp.net,dataservices.mozgcp.net,discovery.addons.allizom.org,discovery.addons.mozilla.org,discovery.addons-dev.allizom.org,divviup.org,download-stats.mozilla.org,download-stats.r53-2.services.mozilla.com,experimenter.services.mozilla.com,experimenter.nonprod.webservices.mozgcp.net,experimenter.prod.webservices.mozgcp.net,fhr.data.mozilla.com,fhr.r53-2.services.mozilla.com,firefox-android-home-recommendations.getpocket.com,fuzzing.mozilla.org,google-analytics.com,google-analytics-cn.com,googleanalytics.com,googlesyndication.com,googlesyndication-cn.com,googletagmanager.com,googletagmanager-cn.com,googletagservices.com,googletagservices-cn.com,improving.duckduckgo.com,incoming.telemetry.mozilla.org,incoming.thunderbird.net,incoming-telemetry.thunderbird.net,ingestion-edge.prod.dataops.mozgcp.net,location.services.mozilla.com,locprod1-elb-eu-west-1.prod.mozaws.net,locprod2-elb-us-west-2.prod.mozaws.net,merino.nonprod.cloudops.mozgcp.net,merino.prod.cloudops.mozgcp.net,merino.services.mozilla.com,metrics-content.duckduckgo.com,mozilla-ohttp.fastly-edge.com,new-sentry.gitlab.net,nonprod.classify-client.nonprod.webservices.mozgcp.net,normandy.cdn.mozilla.net,normandy.nonprod.cloudops.mozgcp.net,normandy.prod.cloudops.mozgcp.net,normandy-cdn.services.mozilla.com,ohttp-gateway.prod.webservices.mozgcp.net,omappapi.com,pagead2.googlesyndication.com,pipeline-incoming-prod-elb-149169523.us-west-2.elb.amazonaws.com,prod.ads.prod.webservices.mozgcp.net,prod.classify-client.prod.webservices.mozgcp.net,prod.dap.prod.webservices.mozgcp.net,prod.data-ingestion.prod.dataops.mozgcp.net,prod.dataops.mozgcp.net,prod.experimenter.prod.webservices.mozgcp.net,prod.ingestion-edge.prod.dataops.mozgcp.net,prod.ohttp-gateway.prod.webservices.mozgcp.net,prod.sentry.prod.cloudops.mozgcp.net,prod-classifyclient.normandy.prod.cloudops.mozgcp.net,sdk.iad-05.braze.com,search.r53-2.services.mozilla.com,search.services.mozilla.com,self-repair.mozilla.org,self-repair.r53-2.services.mozilla.com,sentry.gitlab.net,sentry.io,sentry.nonprod.cloudops.mozgcp.net,sentry.prod.cloudops.mozgcp.net,sentry.prod.mozaws.net,sitereview.zscaler.com,snippets.allizom.org,snippets.cdn.mozilla.net,snippets.mozilla.com,snippets-prod.frankfurt.moz.works,snippets-prod.moz.works,snippets-prod.oregon-b.moz.works,snippets-stage.moz.works,snippets-stage.oregon-b.moz.works,snowplow.trx.gitlab.net,snowplowalb-1011729428.us-east-1.elb.amazonaws.com,snowplowprd.trx.gitlab.net,snowplowprdnlb-1490493263.us-east-2.elb.amazonaws.com,socorro.nonprod.webservices.mozgcp.net,socorro.prod.webservices.mozgcp.net,socorro-collector.services.mozilla.com,socorro-webapp-allizom.stage.mozaws.net,socorro-webapp.services.mozilla.com,spocs.getpocket.com,spocs.getpocket.dev,spocs.mozilla.net,ssl.google-analytics.com,ssl-google-analytics.l.google.com,stage.sentry.nonprod.cloudops.mozgcp.net,start.fedoraproject.org,start.thunderbird.net,start.ubuntu.com,start-stage.thunderbird.net,survey.mozilla.com,tagmanager.google.com,talkback.mozilla.org,talkback-public.mozilla.org,talkback-reports.mozilla.org,telemetry-coverage.mozilla.org,telemetry-coverage.r53-2.services.mozilla.com,telemetry-experiment.cdn.mozilla.net,telemetry-incoming.r53-2.services.mozilla.com,telemetry-incoming-a.r53-2.services.mozilla.com,telemetry-incoming-b.r53-2.services.mozilla.com,telemetry-prod-1054754349.us-east-1.elb.amazonaws.com,tiles-cdn.prod.ads.prod.webservices.mozgcp.net,updates.thunderbird.net,updates-stage.thunderbird.net,use-application-dns.net,vf.startpage.com,widgets.getpocket.com,www.250analytics.com,www.anonymco.com,api.divviup.org,www.google-analytics.com,www.google-analytics-cn.com,www.googleanalytics.com,www.googlesyndication.com,www.googlesyndication-cn.com,www.googletagmanager.com,www.googletagmanager-cn.com,www.googletagservices.com,www.googletagservices-cn.com,www.sentry.io,www-google-analytics.l.google.com,www-googletagmanager.l.google.com,datadog.discord.tools,datadoghq.com,ingest.sentry.io,o64374.ingest.sentry.io,us5.datadoghq.com"); 68 | 69 | defaultPref("browser.phoenix.status.specialized.discord", "004"); 70 | 71 | /*** 005 UNBREAK ***/ 72 | 73 | /// Disable timezone spoofing 74 | defaultPref("privacy.fingerprintingProtection.granularOverrides", '[{"firstPartyDomain":"discord.com","overrides":"-JSDateTimeUTC"}]'); 75 | 76 | /// Re-enable notification prompts, so that it's easier for users to enable if desired 77 | // https://codeberg.org/celenity/Phoenix/issues/77 78 | defaultPref("permissions.default.desktop-notification", 0); // [DEFAULT] 79 | 80 | /// Unbreak calling 81 | defaultPref("media.peerconnection.ice.default_address_only", false); // [DEFAULT] 82 | defaultPref("media.peerconnection.ice.no_host", false); // [DEFAULT] 83 | defaultPref("media.peerconnection.ice.relay_only", false); // [DEFAULT] 84 | 85 | defaultPref("browser.phoenix.status.specialized.discord", "005"); 86 | 87 | lockPref("browser.phoenix.status.specialized.discord", "successfully applied :D"); 88 | -------------------------------------------------------------------------------- /build/configs/element-spec.cfg: -------------------------------------------------------------------------------- 1 | // 2 | 3 | // 4 | // Copyright (C) 2024-2025 celenity 5 | // 6 | // This file is part of Phoenix. 7 | // 8 | // Phoenix is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 9 | // 10 | // Phoenix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 11 | // 12 | // You should have received a copy of the GNU General Public License along with Phoenix. If not, see https://www.gnu.org/licenses/. 13 | // 14 | 15 | // This contains preferences specifically tailored for Element. 16 | 17 | /// Add custom branding under `Firefox Updates` at `about:preferences#general` 18 | // This will unfortunately only display if the version of Firefox you're using is repackaged (ex. Flatpaks/Linux distros) 19 | lockPref("distribution.about", "Phoenix: Element SC for Mozilla Firefox - 2025.05.11.1 💜"); 20 | 21 | /* INDEX 22 | 23 | 001: UI 24 | 002: DEBLOAT 25 | 003: PRIVACY + SECURITY 26 | 004: PRIVACY 27 | 005: UNBREAK 28 | 29 | */ 30 | 31 | /*** 001 UI ***/ 32 | 33 | /// Add Element to about:home 34 | defaultPref("browser.newtabpage.pinned", '[{"url":"https://app.element.io/#/home","label":"Element"}]'); 35 | 36 | defaultPref("browser.phoenix.status.specialized.element", "001"); 37 | 38 | /*** 002 DEBLOAT ***/ 39 | 40 | /// Disable Cookie Banner Reduction 41 | // https://support.mozilla.org/kb/cookie-banner-reduction 42 | defaultPref("cookiebanners.bannerClicking.enabled", false); 43 | defaultPref("cookiebanners.cookieInjector.enabled", false); 44 | defaultPref("cookiebanners.service.mode", 0); // [DEFAULT] 45 | defaultPref("cookiebanners.service.mode.privateBrowsing", 0); // [DEFAULT] 46 | defaultPref("cookiebanners.service.enableGlobalRules", false); 47 | defaultPref("cookiebanners.service.enableGlobalRules.subFrames", false); 48 | defaultPref("cookiebanners.ui.desktop.enabled", false); // [DEFAULT] 49 | 50 | defaultPref("browser.phoenix.status.specialized.element", "002"); 51 | 52 | /*** 003 PRIVACY + SECURITY ***/ 53 | 54 | /// Disable WebGL 55 | // PRIVACY: Fingerprinting concerns 56 | // SECURITY: Attack Surface Reduction 57 | // https://blog.browserscan.net/docs/webgl-fingerprinting 58 | // https://security.stackexchange.com/questions/13799/is-webgl-a-security-concern 59 | defaultPref("webgl.disabled", true); 60 | 61 | defaultPref("browser.phoenix.status.specialized.element", "003"); 62 | 63 | /*** 004 PRIVACY ***/ 64 | 65 | /// Expand domain blocklist 66 | // Currently adds `stats.kde.org` for those using their instance 67 | defaultPref("network.dns.localDomains", "250analytics.com,a.omappapi.com,ads.allizom.org,ads.mozilla.org,ads.nonprod.webservices.mozgcp.net,ads.prod.webservices.mozgcp.net,analytics.getpocket.com,analytics.google.com,analytics.withgoogle.com,anf1.fuzzing.mozilla.org,anonymco.com,api.divviup.org,asan-nightly-frontend-elb-1348905149.us-east-2.elb.amazonaws.com,braze.com,contile.services.mozilla.com,contile-images.services.mozilla.com,classify-client.nonprod.webservices.mozgcp.net,classify-client.prod.webservices.mozgcp.net,classify-client.services.mozilla.com,crash-reports.allizom.org,crash-reports.mozilla.com,crash-reports-xpsp2.mozilla.com,crash-stacks.mozilla.com,crash-stats.allizom.org,crash-stats.mozilla.com,crash-stats.mozilla.org,dap.services.mozilla.com,dap.nonprod.webservices.mozgcp.net,dap.prod.webservices.mozgcp.net,dap-09-3.api.divviup.org,data.mozilla.com,data-ingestion.prod.dataops.mozgcp.net,dataops.mozgcp.net,dataservices.mozgcp.net,discovery.addons.allizom.org,discovery.addons.mozilla.org,discovery.addons-dev.allizom.org,divviup.org,download-stats.mozilla.org,download-stats.r53-2.services.mozilla.com,experimenter.services.mozilla.com,experimenter.nonprod.webservices.mozgcp.net,experimenter.prod.webservices.mozgcp.net,fhr.data.mozilla.com,fhr.r53-2.services.mozilla.com,firefox-android-home-recommendations.getpocket.com,fuzzing.mozilla.org,google-analytics.com,google-analytics-cn.com,googleanalytics.com,googlesyndication.com,googlesyndication-cn.com,googletagmanager.com,googletagmanager-cn.com,googletagservices.com,googletagservices-cn.com,improving.duckduckgo.com,incoming.telemetry.mozilla.org,incoming.thunderbird.net,incoming-telemetry.thunderbird.net,ingestion-edge.prod.dataops.mozgcp.net,location.services.mozilla.com,locprod1-elb-eu-west-1.prod.mozaws.net,locprod2-elb-us-west-2.prod.mozaws.net,merino.nonprod.cloudops.mozgcp.net,merino.prod.cloudops.mozgcp.net,merino.services.mozilla.com,metrics-content.duckduckgo.com,mozilla-ohttp.fastly-edge.com,new-sentry.gitlab.net,nonprod.classify-client.nonprod.webservices.mozgcp.net,normandy.cdn.mozilla.net,normandy.nonprod.cloudops.mozgcp.net,normandy.prod.cloudops.mozgcp.net,normandy-cdn.services.mozilla.com,ohttp-gateway.prod.webservices.mozgcp.net,omappapi.com,pagead2.googlesyndication.com,pipeline-incoming-prod-elb-149169523.us-west-2.elb.amazonaws.com,prod.ads.prod.webservices.mozgcp.net,prod.classify-client.prod.webservices.mozgcp.net,prod.dap.prod.webservices.mozgcp.net,prod.data-ingestion.prod.dataops.mozgcp.net,prod.dataops.mozgcp.net,prod.experimenter.prod.webservices.mozgcp.net,prod.ingestion-edge.prod.dataops.mozgcp.net,prod.ohttp-gateway.prod.webservices.mozgcp.net,prod.sentry.prod.cloudops.mozgcp.net,prod-classifyclient.normandy.prod.cloudops.mozgcp.net,sdk.iad-05.braze.com,search.r53-2.services.mozilla.com,search.services.mozilla.com,self-repair.mozilla.org,self-repair.r53-2.services.mozilla.com,sentry.gitlab.net,sentry.io,sentry.nonprod.cloudops.mozgcp.net,sentry.prod.cloudops.mozgcp.net,sentry.prod.mozaws.net,sitereview.zscaler.com,snippets.allizom.org,snippets.cdn.mozilla.net,snippets.mozilla.com,snippets-prod.frankfurt.moz.works,snippets-prod.moz.works,snippets-prod.oregon-b.moz.works,snippets-stage.moz.works,snippets-stage.oregon-b.moz.works,snowplow.trx.gitlab.net,snowplowalb-1011729428.us-east-1.elb.amazonaws.com,snowplowprd.trx.gitlab.net,snowplowprdnlb-1490493263.us-east-2.elb.amazonaws.com,socorro.nonprod.webservices.mozgcp.net,socorro.prod.webservices.mozgcp.net,socorro-collector.services.mozilla.com,socorro-webapp-allizom.stage.mozaws.net,socorro-webapp.services.mozilla.com,spocs.getpocket.com,spocs.getpocket.dev,spocs.mozilla.net,ssl.google-analytics.com,ssl-google-analytics.l.google.com,stage.sentry.nonprod.cloudops.mozgcp.net,start.fedoraproject.org,start.thunderbird.net,start.ubuntu.com,start-stage.thunderbird.net,survey.mozilla.com,tagmanager.google.com,talkback.mozilla.org,talkback-public.mozilla.org,talkback-reports.mozilla.org,telemetry-coverage.mozilla.org,telemetry-coverage.r53-2.services.mozilla.com,telemetry-experiment.cdn.mozilla.net,telemetry-incoming.r53-2.services.mozilla.com,telemetry-incoming-a.r53-2.services.mozilla.com,telemetry-incoming-b.r53-2.services.mozilla.com,telemetry-prod-1054754349.us-east-1.elb.amazonaws.com,tiles-cdn.prod.ads.prod.webservices.mozgcp.net,updates.thunderbird.net,updates-stage.thunderbird.net,use-application-dns.net,vf.startpage.com,widgets.getpocket.com,www.250analytics.com,www.anonymco.com,api.divviup.org,www.google-analytics.com,www.google-analytics-cn.com,www.googleanalytics.com,www.googlesyndication.com,www.googlesyndication-cn.com,www.googletagmanager.com,www.googletagmanager-cn.com,www.googletagservices.com,www.googletagservices-cn.com,www.sentry.io,www-google-analytics.l.google.com,www-googletagmanager.l.google.com,stats.kde.org"); 68 | 69 | defaultPref("browser.phoenix.status.specialized.element", "004"); 70 | 71 | /*** 005 UNBREAK ***/ 72 | 73 | /// Disable timezone spoofing 74 | defaultPref("privacy.fingerprintingProtection.granularOverrides", '[{"firstPartyDomain":"arcticfoxes.net","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"aria.im","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"bitcoinist.org","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"chatwave.org","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"cinny.in","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"duesen.chat","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"element.io","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"flieger.chat","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"g24.at","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"gemeinsam.jetzt","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"gnulinux.club","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"hot-chilli.im","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"kde.org","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"kosmikdog.eu","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"mozilla.org","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"mtrx.nz","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"neat.chat","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"nitro.chat","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"nope.chat","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"oblak.be","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"pcriot.org","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"pendora.io","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"rollenspiel.chat","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"socialnetwork24.com","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"studichat.de","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"synod.im","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"the-apothecary.club","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"transfem.dev","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"unredacted.org","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"utwente.io","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"we2.ee","overrides":"-JSDateTimeUTC"},{"firstPartyDomain":"yatrix.org","overrides":"-JSDateTimeUTC"}]'); 75 | 76 | /// Re-enable notification prompts, so that it's easier for users to enable if desired 77 | // https://codeberg.org/celenity/Phoenix/issues/77 78 | defaultPref("permissions.default.desktop-notification", 0); // [DEFAULT] 79 | 80 | // Re-enable WebAssembly 81 | defaultPref("javascript.options.wasm", true); // [DEFAULT] 82 | 83 | defaultPref("browser.phoenix.status.specialized.element", "005"); 84 | 85 | lockPref("browser.phoenix.status.specialized.element", "successfully applied :D"); 86 | -------------------------------------------------------------------------------- /build/configs/specialized-spec.cfg: -------------------------------------------------------------------------------- 1 | // 2 | 3 | // 4 | // Copyright (C) 2024-2025 celenity 5 | // 6 | // This file is part of Phoenix. 7 | // 8 | // Phoenix is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 9 | // 10 | // Phoenix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 11 | // 12 | // You should have received a copy of the GNU General Public License along with Phoenix. If not, see https://www.gnu.org/licenses/. 13 | // 14 | 15 | // This is for shared preferences across Phoenix's 'specialized' configs... 16 | 17 | // Do not apply these settings on profiles you actually plan to browse on or actively use... 18 | 19 | // Goal here is to make these profile as light-weight & minimal as possible. 20 | 21 | /* INDEX 22 | 23 | 001: UI 24 | 002: DEBLOAT 25 | 003: PRIVACY 26 | 004: MISC. 27 | 28 | */ 29 | 30 | /*** 001 UI ***/ 31 | 32 | /// Disable the new Sidebar 33 | defaultPref("sidebar.revamp", false); // [DEFAULT - non-Nightly] 34 | 35 | /// Disable Tab Groups 36 | // https://www.ghacks.net/2024/12/03/how-to-enable-tab-groups-in-firefox/ 37 | defaultPref("browser.tabs.groups.enabled", false); // [DEFAULT - non-Nightly] 38 | 39 | /// Disable Tab Hover Previews 40 | defaultPref("browser.tabs.hoverPreview.enabled", false); 41 | defaultPref("browser.tabs.hoverPreview.showThumbnails", false); 42 | 43 | /// Disable URL Bar suggestions 44 | defaultPref("browser.search.separatePrivateDefault.urlbarResult.enabled", false); // [DEFAULT] 45 | defaultPref("browser.urlbar.clipboard.featureGate", false); 46 | defaultPref("browser.urlbar.maxHistoricalSearchSuggestions", 0); 47 | defaultPref("browser.urlbar.maxRichResults", 0); 48 | defaultPref("browser.urlbar.richSuggestions.featureGate", false); 49 | defaultPref("browser.urlbar.suggest.calculator", false); // [DEFAULT] 50 | defaultPref("browser.urlbar.suggest.openpage", false); 51 | defaultPref("browser.urlbar.suggest.remotetab", false); 52 | defaultPref("browser.urlbar.unitConversion.enabled", false); // [DEFAULT] 53 | defaultPref("keyword.enabled", false); 54 | 55 | /// Enable the use of cursor (arrow) keys to navigate webpages 56 | defaultPref("accessibility.browsewithcaret", true); 57 | 58 | /// Hide "Other Bookmarks" 59 | defaultPref("browser.toolbars.bookmarks.showOtherBookmarks", false); 60 | 61 | /// Hide Search from `about:home` 62 | defaultPref("browser.newtabpage.activity-stream.showSearch", false); 63 | 64 | /// Hide the Sidebar button 65 | defaultPref("browser.uiCustomization.state", '{"placements":{"widget-overflow-fixed-list":[],"unified-extensions-area":[],"nav-bar":["back-button","forward-button","stop-reload-button","vertical-spacer","urlbar-container","save-to-pocket-button","_testpilot-containers-browser-action","fxa-toolbar-menu-button","developer-button","ublock0_raymondhill_net-browser-action","downloads-button","reset-pbm-toolbar-button","unified-extensions-button"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["tabbrowser-tabs","new-tab-button","tabbrowser-tabs","new-tab-button"],"vertical-tabs":[],"PersonalToolbar":["personal-bookmarks","personal-bookmarks"],"widget-overflow-fixed-list":[],"unified-extensions-area":[],"nav-bar":["sidebar-button","back-button","forward-button","vertical-spacer","stop-reload-button","urlbar-container","_testpilot-containers-browser-action","fxa-toolbar-menu-button","reset-pbm-toolbar-button","developer-button","ublock0_raymondhill_net-browser-action","downloads-button","unified-extensions-button"],"toolbar-menubar":["menubar-items"],"vertical-tabs":[]},"seen":["reset-pbm-toolbar-button","developer-button","_testpilot-containers-browser-action","ublock0_raymondhill_net-browser-action","reset-pbm-toolbar-button","_testpilot-containers-browser-action","ublock0_raymondhill_net-browser-action","developer-button"],"dirtyAreaCache":["nav-bar","vertical-tabs","PersonalToolbar","unified-extensions-area","TabsToolbar","unified-extensions-area","nav-bar","vertical-tabs","toolbar-menubar"],"currentVersion":21,"newElementCount":7}'); 66 | 67 | /// Remove unnecessary URL Bar shortcuts 68 | defaultPref("browser.urlbar.shortcuts.bookmarks", false); 69 | defaultPref("browser.urlbar.shortcuts.history", false); 70 | defaultPref("browser.urlbar.shortcuts.tabs", false); 71 | 72 | /// Set Firefox to always ask for container selection on new tabs 73 | // Useful for having multiple accounts/instances of websites 74 | defaultPref("privacy.userContext.newTabContainerOnLeftClick.enabled", true); 75 | 76 | /// Show the Bookmarks Toolbar, but only on new tabs (`about:home`) by default 77 | defaultPref("browser.toolbars.bookmarks.visibility", "newtab"); 78 | 79 | defaultPref("browser.phoenix.status.specialized", "001"); 80 | 81 | /*** 002 DEBLOAT ***/ 82 | 83 | // These also provide Attack Surface Reduction 84 | 85 | /// Disable Android Debugging 86 | defaultPref("devtools.remote.adb.extensionID", ""); 87 | defaultPref("devtools.remote.adb.extensionURL", ""); 88 | 89 | /// Disable back-up/export of bookmarks 90 | defaultPref("browser.bookmarks.autoExportHTML", false); // [DEFAULT] 91 | defaultPref("browser.bookmarks.max_backups", 0); 92 | 93 | /// Disable BackupService 94 | // https://searchfox.org/mozilla-central/source/browser/components/backup/content/debug.html 95 | defaultPref("browser.backup.enabled", false); 96 | defaultPref("browser.backup.preferences.ui.enabled", false); // [DEFAULT] 97 | 98 | /// Disable 'Migration' functionality... 99 | defaultPref("browser.migrate.bookmarks-file.enabled", false); 100 | defaultPref("browser.migrate.brave.enabled", false); 101 | defaultPref("browser.migrate.canary.enabled", false); 102 | defaultPref("browser.migrate.chrome.enabled", false); 103 | defaultPref("browser.migrate.chrome.extensions.enabled", false); 104 | defaultPref("browser.migrate.chrome.get_permissions.enabled", false); 105 | defaultPref("browser.migrate.chrome.payment_methods.enabled", false); 106 | defaultPref("browser.migrate.chrome-beta.enabled", false); 107 | defaultPref("browser.migrate.chrome-dev.enabled", false); 108 | defaultPref("browser.migrate.chromium.enabled", false); 109 | defaultPref("browser.migrate.chromium-360se.enabled", false); 110 | defaultPref("browser.migrate.chromium-edge.enabled", false); 111 | defaultPref("browser.migrate.chromium-edge-beta.enabled", false); 112 | defaultPref("browser.migrate.content-modal.import-all.enabled", false); 113 | defaultPref("browser.migrate.edge.enabled", false); 114 | defaultPref("browser.migrate.firefox.enabled", false); 115 | defaultPref("browser.migrate.ie.enabled", false); 116 | defaultPref("browser.migrate.interactions.bookmarks", false); 117 | defaultPref("browser.migrate.interactions.csvpasswords", false); 118 | defaultPref("browser.migrate.interactions.history", false); 119 | defaultPref("browser.migrate.interactions.passwords", false); 120 | defaultPref("browser.migrate.opera.enabled", false); 121 | defaultPref("browser.migrate.opera-gx.enabled", false); 122 | defaultPref("browser.migrate.preferences-entrypoint.enabled", false); 123 | defaultPref("browser.migrate.safari.enabled", false); 124 | defaultPref("browser.migrate.vivaldi.enabled", false); 125 | 126 | /// Disable Narrator 127 | defaultPref("narrate.enabled", false); 128 | 129 | /// Disable PDF.js 130 | defaultPref("pdfjs.disabled", true); 131 | 132 | /// Disable Reader Mode 133 | defaultPref("reader.parse-on-load.enabled", false); 134 | 135 | /// Disable Sync 136 | defaultPref("identity.fxaccounts.enabled", false); 137 | defaultPref("identity.fxaccounts.toolbar.defaultVisible", false); // Hide toolbar icon 138 | 139 | defaultPref("browser.phoenix.status.specialized", "002"); 140 | 141 | /*** 003 PRIVACY ***/ 142 | 143 | /// Clear cookies by default at `about:preferences#privacy` -> `Cookies and Site Data` -> `Manage Data...` 144 | // We don't have to worry about exceptions for our use case... 145 | defaultPref("privacy.clearHistory.cookiesAndStorage", true); // [DEFAULT] 146 | defaultPref("privacy.clearSiteData.cookiesAndStorage", true); // [DEFAULT] 147 | defaultPref("privacy.cpd.cookies", true); // [DEFAULT] 148 | defaultPref("privacy.cpd.offlineApps", true); 149 | 150 | /// Disable browsing history 151 | defaultPref("places.history.enabled", false); 152 | 153 | /// Disable geolocation 154 | defaultPref("geo.provider.network.scan", false); 155 | defaultPref("geo.provider.network.url", ""); 156 | defaultPref("geo.provider.use_corelocation", false); 157 | defaultPref("geo.provider.use_geoclue", false); 158 | defaultPref("network.wifi.scanning_period", 0); 159 | 160 | /// Reset Phoenix's FPP overrides 161 | // Unnecessary/undesired for our use case... 162 | defaultPref("privacy.fingerprintingProtection.granularOverrides", ""); // [DEFAULT] 163 | 164 | defaultPref("browser.phoenix.status.specialized", "003"); 165 | 166 | /*** 004 MISC. ***/ 167 | 168 | /// Clear unnecessary/undesired Mozilla URLs 169 | defaultPref("app.support.baseURL", "https://noop.invalid/https://support.mozilla.org/kb/"); 170 | defaultPref("extensions.getAddons.browserMappings.url", ""); // This is used for mapping Chrome extensions with Firefox ones, as part of browser migration - https://mozilla.github.io/addons-server/topics/api/addons.html#browser-mappings - ex. https://services.addons.mozilla.org/api/v5/addons/browser-mappings/?browser=chrome 171 | 172 | /// Disable AMRemoteSettings 173 | // Currently only used for updating restricted/quarantined domains (and controlling a couple prefs), which we disable below 174 | // https://searchfox.org/mozilla-central/source/toolkit/mozapps/extensions/docs/AMRemoteSettings-overview.rst 175 | // https://searchfox.org/mozilla-central/source/toolkit/mozapps/extensions/AddonManager.sys.mjs 176 | defaultPref("extensions.remoteSettings.disabled", true); 177 | 178 | /// Disable the Remote Settings Firefox Relay Allowlist Collection 179 | // Unnecessary for our use case 180 | // https://searchfox.org/mozilla-central/source/toolkit/components/satchel/integrations/FirefoxRelay.sys.mjs 181 | // https://firefox.settings.services.mozilla.com/v1/buckets/main/collections/fxrelay-allowlist/changeset?_expected=0 182 | defaultPref("signon.firefoxRelay.allowListRemoteSettingsCollection", ""); // [HIDDEN] 183 | 184 | /// Disable restricted/quarantined Domains 185 | // (Unnecessary for our use case...) 186 | // https://support.mozilla.org/kb/quarantined-domains 187 | defaultPref("extensions.quarantinedDomains.enabled", false); 188 | defaultPref("extensions.quarantinedDomains.uiDisabled", true); // [HIDDEN] 189 | 190 | /// Prevent caching previous tabs 191 | defaultPref("browser.sessionstore.max_tabs_undo", 0); 192 | defaultPref("browser.sessionhistory.max_total_viewers", 0); 193 | 194 | defaultPref("browser.phoenix.status.specialized", "004"); 195 | 196 | lockPref("browser.phoenix.status.specialized", "successfully applied :D"); 197 | -------------------------------------------------------------------------------- /build/configs/twitter-spec.cfg: -------------------------------------------------------------------------------- 1 | // 2 | 3 | // 4 | // Copyright (C) 2024-2025 celenity 5 | // 6 | // This file is part of Phoenix. 7 | // 8 | // Phoenix is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 9 | // 10 | // Phoenix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 11 | // 12 | // You should have received a copy of the GNU General Public License along with Phoenix. If not, see https://www.gnu.org/licenses/. 13 | // 14 | 15 | // This contains preferences specifically tailored for X/Twitter. 16 | 17 | /// Add custom branding under `Firefox Updates` at `about:preferences#general` 18 | // This will unfortunately only display if the version of Firefox you're using is repackaged (ex. Flatpaks/Linux distros) 19 | lockPref("distribution.about", "Phoenix: Twitter SC for Mozilla Firefox - 2025.05.11.1 💜"); 20 | 21 | /* INDEX 22 | 23 | 001: UI 24 | 002: PRIVACY + SECURITY 25 | 003: PRIVACY 26 | 004: UNBREAK 27 | 28 | */ 29 | 30 | /*** 001 UI ***/ 31 | 32 | /// Add Twitter to about:home 33 | defaultPref("browser.newtabpage.pinned", '[{"url":"https://x.com/home","label":"X"}]'); 34 | 35 | defaultPref("browser.phoenix.status.specialized.twitter", "001"); 36 | 37 | /*** 002 PRIVACY + SECURITY ***/ 38 | 39 | /// Disable WebGL 40 | // PRIVACY: Fingerprinting concerns 41 | // SECURITY: Attack Surface Reduction 42 | // https://blog.browserscan.net/docs/webgl-fingerprinting 43 | // https://security.stackexchange.com/questions/13799/is-webgl-a-security-concern 44 | defaultPref("webgl.disabled", true); 45 | 46 | defaultPref("browser.phoenix.status.specialized.twitter", "002"); 47 | 48 | /*** 003 PRIVACY ***/ 49 | 50 | /// Expand domain blocklist 51 | defaultPref("network.dns.localDomains", "250analytics.com,a.omappapi.com,ads.allizom.org,ads.mozilla.org,ads.nonprod.webservices.mozgcp.net,ads.prod.webservices.mozgcp.net,analytics.getpocket.com,analytics.google.com,analytics.withgoogle.com,anf1.fuzzing.mozilla.org,anonymco.com,api.divviup.org,asan-nightly-frontend-elb-1348905149.us-east-2.elb.amazonaws.com,braze.com,contile.services.mozilla.com,contile-images.services.mozilla.com,classify-client.nonprod.webservices.mozgcp.net,classify-client.prod.webservices.mozgcp.net,classify-client.services.mozilla.com,crash-reports.allizom.org,crash-reports.mozilla.com,crash-reports-xpsp2.mozilla.com,crash-stacks.mozilla.com,crash-stats.allizom.org,crash-stats.mozilla.com,crash-stats.mozilla.org,dap.services.mozilla.com,dap.nonprod.webservices.mozgcp.net,dap.prod.webservices.mozgcp.net,dap-09-3.api.divviup.org,data.mozilla.com,data-ingestion.prod.dataops.mozgcp.net,dataops.mozgcp.net,dataservices.mozgcp.net,discovery.addons.allizom.org,discovery.addons.mozilla.org,discovery.addons-dev.allizom.org,divviup.org,download-stats.mozilla.org,download-stats.r53-2.services.mozilla.com,experimenter.services.mozilla.com,experimenter.nonprod.webservices.mozgcp.net,experimenter.prod.webservices.mozgcp.net,fhr.data.mozilla.com,fhr.r53-2.services.mozilla.com,firefox-android-home-recommendations.getpocket.com,fuzzing.mozilla.org,google-analytics.com,google-analytics-cn.com,googleanalytics.com,googlesyndication.com,googlesyndication-cn.com,googletagmanager.com,googletagmanager-cn.com,googletagservices.com,googletagservices-cn.com,improving.duckduckgo.com,incoming.telemetry.mozilla.org,incoming.thunderbird.net,incoming-telemetry.thunderbird.net,ingestion-edge.prod.dataops.mozgcp.net,location.services.mozilla.com,locprod1-elb-eu-west-1.prod.mozaws.net,locprod2-elb-us-west-2.prod.mozaws.net,merino.nonprod.cloudops.mozgcp.net,merino.prod.cloudops.mozgcp.net,merino.services.mozilla.com,metrics-content.duckduckgo.com,mozilla-ohttp.fastly-edge.com,new-sentry.gitlab.net,nonprod.classify-client.nonprod.webservices.mozgcp.net,normandy.cdn.mozilla.net,normandy.nonprod.cloudops.mozgcp.net,normandy.prod.cloudops.mozgcp.net,normandy-cdn.services.mozilla.com,ohttp-gateway.prod.webservices.mozgcp.net,omappapi.com,pagead2.googlesyndication.com,pipeline-incoming-prod-elb-149169523.us-west-2.elb.amazonaws.com,prod.ads.prod.webservices.mozgcp.net,prod.classify-client.prod.webservices.mozgcp.net,prod.dap.prod.webservices.mozgcp.net,prod.data-ingestion.prod.dataops.mozgcp.net,prod.dataops.mozgcp.net,prod.experimenter.prod.webservices.mozgcp.net,prod.ingestion-edge.prod.dataops.mozgcp.net,prod.ohttp-gateway.prod.webservices.mozgcp.net,prod.sentry.prod.cloudops.mozgcp.net,prod-classifyclient.normandy.prod.cloudops.mozgcp.net,sdk.iad-05.braze.com,search.r53-2.services.mozilla.com,search.services.mozilla.com,self-repair.mozilla.org,self-repair.r53-2.services.mozilla.com,sentry.gitlab.net,sentry.io,sentry.nonprod.cloudops.mozgcp.net,sentry.prod.cloudops.mozgcp.net,sentry.prod.mozaws.net,sitereview.zscaler.com,snippets.allizom.org,snippets.cdn.mozilla.net,snippets.mozilla.com,snippets-prod.frankfurt.moz.works,snippets-prod.moz.works,snippets-prod.oregon-b.moz.works,snippets-stage.moz.works,snippets-stage.oregon-b.moz.works,snowplow.trx.gitlab.net,snowplowalb-1011729428.us-east-1.elb.amazonaws.com,snowplowprd.trx.gitlab.net,snowplowprdnlb-1490493263.us-east-2.elb.amazonaws.com,socorro.nonprod.webservices.mozgcp.net,socorro.prod.webservices.mozgcp.net,socorro-collector.services.mozilla.com,socorro-webapp-allizom.stage.mozaws.net,socorro-webapp.services.mozilla.com,spocs.getpocket.com,spocs.getpocket.dev,spocs.mozilla.net,ssl.google-analytics.com,ssl-google-analytics.l.google.com,stage.sentry.nonprod.cloudops.mozgcp.net,start.fedoraproject.org,start.thunderbird.net,start.ubuntu.com,start-stage.thunderbird.net,survey.mozilla.com,tagmanager.google.com,talkback.mozilla.org,talkback-public.mozilla.org,talkback-reports.mozilla.org,telemetry-coverage.mozilla.org,telemetry-coverage.r53-2.services.mozilla.com,telemetry-experiment.cdn.mozilla.net,telemetry-incoming.r53-2.services.mozilla.com,telemetry-incoming-a.r53-2.services.mozilla.com,telemetry-incoming-b.r53-2.services.mozilla.com,telemetry-prod-1054754349.us-east-1.elb.amazonaws.com,tiles-cdn.prod.ads.prod.webservices.mozgcp.net,updates.thunderbird.net,updates-stage.thunderbird.net,use-application-dns.net,vf.startpage.com,widgets.getpocket.com,www.250analytics.com,www.anonymco.com,api.divviup.org,www.google-analytics.com,www.google-analytics-cn.com,www.googleanalytics.com,www.googlesyndication.com,www.googlesyndication-cn.com,www.googletagmanager.com,www.googletagmanager-cn.com,www.googletagservices.com,www.googletagservices-cn.com,www.sentry.io,www-google-analytics.l.google.com,www-googletagmanager.l.google.com,aa.twitter.com,aa.x.com,ads.twitter.com,ads.x.com,ads-api.twitter.com,ads-api.x.com,ads-api-sandbox.twitter.com,ads-bidder-api.twitter.com,ads-dev.twitter.com,ads-dev.x.com,ads-staging.twitter.com,ads-staging.x.com,ads-twitter.com,advertising.twitter.com,advertising.x.com,analytics.twitter.com,analytics.x.com,business.twitter.com,business.x.com,business-dev.twitter.com,business-dev.x.com,business-staging.twitter.com,business-staging.x.com,collector-ops.twitter.com,marketing.twitter.com,marketing.x.com,marketing-dev.twitter.com,marketing-dev.x.com,marketing-staging.twitter.com,marketing-staging.x.com,platform.twitter.com,platform.twitter.map.fastly.net,platform.x.com,platform-eb.twitter.com,syndication.twimg.com,syndication.twitter.com,syndication.x.com,www.ads-twitter.com,www.xadsacademy.com,xadsacademy.com"); 52 | 53 | defaultPref("browser.phoenix.status.specialized.twitter", "003"); 54 | 55 | /*** 004 UNBREAK ***/ 56 | 57 | /// Only send cross-origin referers when base domains match (rather than only when hosts match) 58 | // Required for images in DMs 59 | // https://wiki.mozilla.org/Security/Referrer 60 | defaultPref("network.http.referer.XOriginPolicy", 1); 61 | 62 | /// Unbreak speaking in X/Twitter Spaces 63 | // You're welcome to override these if you don't have any plans to speak in X/Twitter spaces... 64 | // Even listening appears to work fine without these, these are ONLY required for speaking 65 | defaultPref("media.peerconnection.ice.no_host", false); // [DEFAULT] 66 | defaultPref("media.peerconnection.ice.relay_only", false); // [DEFAULT] 67 | 68 | defaultPref("browser.phoenix.status.specialized.twitter", "004"); 69 | 70 | lockPref("browser.phoenix.status.specialized.twitter", "successfully applied :D"); 71 | -------------------------------------------------------------------------------- /build/configs/youtube-spec.cfg: -------------------------------------------------------------------------------- 1 | // 2 | 3 | // 4 | // Copyright (C) 2024-2025 celenity 5 | // 6 | // This file is part of Phoenix. 7 | // 8 | // Phoenix is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 9 | // 10 | // Phoenix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 11 | // 12 | // You should have received a copy of the GNU General Public License along with Phoenix. If not, see https://www.gnu.org/licenses/. 13 | // 14 | 15 | // This contains preferences specifically tailored for YouTube. 16 | 17 | /// Add custom branding under `Firefox Updates` at `about:preferences#general` 18 | // This will unfortunately only display if the version of Firefox you're using is repackaged (ex. Flatpaks/Linux distros) 19 | lockPref("distribution.about", "Phoenix: YouTube SC for Mozilla Firefox - 2025.05.11.1 💜"); 20 | 21 | /* INDEX 22 | 23 | 001: UI 24 | 002: PRIVACY + SECURITY 25 | 003: PRIVACY 26 | 004: SECURITY 27 | 28 | */ 29 | 30 | /*** 001 UI ***/ 31 | 32 | /// Add YouTube to about:home 33 | defaultPref("browser.newtabpage.pinned", '[{"url":"https://www.youtube.com/","label":"YouTube"}]'); 34 | 35 | defaultPref("browser.phoenix.status.specialized.youtube", "001"); 36 | 37 | /*** 002 PRIVACY + SECURITY ***/ 38 | 39 | /// Disable WebGL 40 | // PRIVACY: Fingerprinting concerns 41 | // SECURITY: Attack Surface Reduction 42 | // https://blog.browserscan.net/docs/webgl-fingerprinting 43 | // https://security.stackexchange.com/questions/13799/is-webgl-a-security-concern 44 | defaultPref("webgl.disabled", true); 45 | 46 | defaultPref("browser.phoenix.status.specialized.youtube", "002"); 47 | 48 | /*** 003 PRIVACY ***/ 49 | 50 | /// Expand domain blocklist 51 | defaultPref("network.dns.localDomains", "250analytics.com,a.omappapi.com,ads.allizom.org,ads.mozilla.org,ads.nonprod.webservices.mozgcp.net,ads.prod.webservices.mozgcp.net,analytics.getpocket.com,analytics.google.com,analytics.withgoogle.com,anf1.fuzzing.mozilla.org,anonymco.com,api.divviup.org,asan-nightly-frontend-elb-1348905149.us-east-2.elb.amazonaws.com,braze.com,contile.services.mozilla.com,contile-images.services.mozilla.com,classify-client.nonprod.webservices.mozgcp.net,classify-client.prod.webservices.mozgcp.net,classify-client.services.mozilla.com,crash-reports.allizom.org,crash-reports.mozilla.com,crash-reports-xpsp2.mozilla.com,crash-stacks.mozilla.com,crash-stats.allizom.org,crash-stats.mozilla.com,crash-stats.mozilla.org,dap.services.mozilla.com,dap.nonprod.webservices.mozgcp.net,dap.prod.webservices.mozgcp.net,dap-09-3.api.divviup.org,data.mozilla.com,data-ingestion.prod.dataops.mozgcp.net,dataops.mozgcp.net,dataservices.mozgcp.net,discovery.addons.allizom.org,discovery.addons.mozilla.org,discovery.addons-dev.allizom.org,divviup.org,download-stats.mozilla.org,download-stats.r53-2.services.mozilla.com,experimenter.services.mozilla.com,experimenter.nonprod.webservices.mozgcp.net,experimenter.prod.webservices.mozgcp.net,fhr.data.mozilla.com,fhr.r53-2.services.mozilla.com,firefox-android-home-recommendations.getpocket.com,fuzzing.mozilla.org,google-analytics.com,google-analytics-cn.com,googleanalytics.com,googlesyndication.com,googlesyndication-cn.com,googletagmanager.com,googletagmanager-cn.com,googletagservices.com,googletagservices-cn.com,improving.duckduckgo.com,incoming.telemetry.mozilla.org,incoming.thunderbird.net,incoming-telemetry.thunderbird.net,ingestion-edge.prod.dataops.mozgcp.net,location.services.mozilla.com,locprod1-elb-eu-west-1.prod.mozaws.net,locprod2-elb-us-west-2.prod.mozaws.net,merino.nonprod.cloudops.mozgcp.net,merino.prod.cloudops.mozgcp.net,merino.services.mozilla.com,metrics-content.duckduckgo.com,mozilla-ohttp.fastly-edge.com,new-sentry.gitlab.net,nonprod.classify-client.nonprod.webservices.mozgcp.net,normandy.cdn.mozilla.net,normandy.nonprod.cloudops.mozgcp.net,normandy.prod.cloudops.mozgcp.net,normandy-cdn.services.mozilla.com,ohttp-gateway.prod.webservices.mozgcp.net,omappapi.com,pagead2.googlesyndication.com,pipeline-incoming-prod-elb-149169523.us-west-2.elb.amazonaws.com,prod.ads.prod.webservices.mozgcp.net,prod.classify-client.prod.webservices.mozgcp.net,prod.dap.prod.webservices.mozgcp.net,prod.data-ingestion.prod.dataops.mozgcp.net,prod.dataops.mozgcp.net,prod.experimenter.prod.webservices.mozgcp.net,prod.ingestion-edge.prod.dataops.mozgcp.net,prod.ohttp-gateway.prod.webservices.mozgcp.net,prod.sentry.prod.cloudops.mozgcp.net,prod-classifyclient.normandy.prod.cloudops.mozgcp.net,sdk.iad-05.braze.com,search.r53-2.services.mozilla.com,search.services.mozilla.com,self-repair.mozilla.org,self-repair.r53-2.services.mozilla.com,sentry.gitlab.net,sentry.io,sentry.nonprod.cloudops.mozgcp.net,sentry.prod.cloudops.mozgcp.net,sentry.prod.mozaws.net,sitereview.zscaler.com,snippets.allizom.org,snippets.cdn.mozilla.net,snippets.mozilla.com,snippets-prod.frankfurt.moz.works,snippets-prod.moz.works,snippets-prod.oregon-b.moz.works,snippets-stage.moz.works,snippets-stage.oregon-b.moz.works,snowplow.trx.gitlab.net,snowplowalb-1011729428.us-east-1.elb.amazonaws.com,snowplowprd.trx.gitlab.net,snowplowprdnlb-1490493263.us-east-2.elb.amazonaws.com,socorro.nonprod.webservices.mozgcp.net,socorro.prod.webservices.mozgcp.net,socorro-collector.services.mozilla.com,socorro-webapp-allizom.stage.mozaws.net,socorro-webapp.services.mozilla.com,spocs.getpocket.com,spocs.getpocket.dev,spocs.mozilla.net,ssl.google-analytics.com,ssl-google-analytics.l.google.com,stage.sentry.nonprod.cloudops.mozgcp.net,start.fedoraproject.org,start.thunderbird.net,start.ubuntu.com,start-stage.thunderbird.net,survey.mozilla.com,tagmanager.google.com,talkback.mozilla.org,talkback-public.mozilla.org,talkback-reports.mozilla.org,telemetry-coverage.mozilla.org,telemetry-coverage.r53-2.services.mozilla.com,telemetry-experiment.cdn.mozilla.net,telemetry-incoming.r53-2.services.mozilla.com,telemetry-incoming-a.r53-2.services.mozilla.com,telemetry-incoming-b.r53-2.services.mozilla.com,telemetry-prod-1054754349.us-east-1.elb.amazonaws.com,tiles-cdn.prod.ads.prod.webservices.mozgcp.net,updates.thunderbird.net,updates-stage.thunderbird.net,use-application-dns.net,vf.startpage.com,widgets.getpocket.com,www.250analytics.com,www.anonymco.com,api.divviup.org,www.google-analytics.com,www.google-analytics-cn.com,www.googleanalytics.com,www.googlesyndication.com,www.googlesyndication-cn.com,www.googletagmanager.com,www.googletagmanager-cn.com,www.googletagservices.com,www.googletagservices-cn.com,www.sentry.io,www-google-analytics.l.google.com,www-googletagmanager.l.google.com,0emn.com,0fmm.com,2mdn.net,2mdn-cn.net,ad-creatives-public.commondatastorage.googleapis.com,adgoogle.net,ads.google.cn,ads.google.com,adsbygoogle.com,adsensecustomsearchads.com,adsensecustomsearchads.org,adservice.google.com,adsgoogle.com,adstransparency.google.com,afs.googleusercontent.com,analytics.clients6.google.com,analytics.googleapis.com,analytics-alv.google.com,app-ads-services.com,app-analytics-services.com,app-analytics-services-att.com,app-measurement.com,app-measurement-cn.com,appsgrowthpromo-pa.googleapis.com,appsgrowthpromo-pa.clients6.google.com,badad.googleplex.com,clientmetrics-pa.googleapis.com,csi.gstatic.com,csi.l.google.com,csp.withgoogle.com,dai.google.com,displayads-formats.googleusercontent.com,doubleclick.cn,doubleclick.com,doubleclick.co.uk,doubleclick.de,doubleclick.google.com,doubleclick.host,doubleclick.ne.jp,doubleclick.net,doubleclick-cn.net,doubleclickbygoogle.com,doubleclicksearch.com,doubleclickusercontent.com,feedback-pa.clients6.google.com,feedback-pa.googleapis.com,footprints-pa.googleapis.com,gapromomanager-pa.googleapis.com,glsfrontend-pa.googleapis.com,google-syndicatedsearch.net,google-syndication.com,googleadapis.com,googleadapis.l.google.com,googleads.com,googleads.googleapis.com,googleads-cn.com,googleadservices.com,googleadservices-cn.com,googleadsserving.cn,googleoptimize.com,googleoptimize-cn.com,googletraveladservices.com,googletraveladservices-cn.com,googlevads-cn.com,growth-pa.googleapis.com,gvt2.com,gvt2-cn.com,gvt3.com,imasdk.googleapis.com,localservices.googleapis.com,merchant-center-analytics.goog,ogads-pa.clients6.google.com,ogads-pa.googleapis.com,optimize.google.com,pagead.l.google.com,pagead-googlehosted.l.google.com,pagead-tpc.l.google.com,pai.googlezip.net,partnerad.l.google.com,play.google.com,reach-pa.googleapis.com,s0-2mdn-net.l.google.com,scone-pa.clients6.google.com,scone-pa.googleapis.com,searchnotifications-pa.googleapis.com,searchpromo-pa.googleapis.com,static-doubleclick-net.l.google.com,syndicatedsearch.goog,tpc.googlesyndication.com,video-ad-creatives-public.commondatastorage.googleapis.com,www.adgoogle.net,www.adsbygoogle.com,www.adsensecustomsearchads.com,www.adsensecustomsearchads.org,www.adsgoogle.com,www.doubleclick.cn,www.doubleclick.com,www.doubleclick.co.uk,www.doubleclick.de,www.doubleclick.host,www.doubleclick.ne.jp,www.doubleclick.net,www.doubleclick-cn.net,www.doubleclickbygoogle.com,www.doubleclicksearch.com,www.doubleclickusercontent.com,www.googleadapis.com,www.googleads.com,www.googleads-cn.com,www.googleadservices.com,www.googleadservices-cn.com,www.googleadsserving.cn,www.googletraveladservices.com,www.googletraveladservices-cn.com,www.googlevads-cn.com,www.syndicatedsearch.goog,xgapromomanager-pa.googleapis.com,ads.youtube.com,video-stats.l.google.com,video-stats.video.google.com,youtubeanalytics.googleapis.com,youtubereporting.googleapis.com"); 52 | 53 | /// Sanitize data on exit 54 | defaultPref("privacy.clearOnShutdown.cookies", true); 55 | defaultPref("privacy.clearOnShutdown.offlineApps", true); 56 | defaultPref("privacy.clearOnShutdown_v2.cookiesAndStorage", true); 57 | 58 | defaultPref("browser.phoenix.status.specialized.youtube", "003"); 59 | 60 | /*** 004 SECURITY ***/ 61 | 62 | /// Disable WebRTC 63 | // https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=webrtc 64 | // https://x.com/GrapheneOS/status/1728921946396725618 65 | defaultPref("media.peerconnection.enabled", false); 66 | 67 | defaultPref("browser.phoenix.status.specialized.youtube", "004"); 68 | 69 | lockPref("browser.phoenix.status.specialized.youtube", "successfully applied :D"); 70 | -------------------------------------------------------------------------------- /build/convert.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | def process_file(input_file, output_file): 4 | with open(input_file, 'r') as file: 5 | lines = file.readlines() 6 | 7 | with open(output_file, 'w') as file: 8 | for line in lines: 9 | # Check if the line contains "pref(" 10 | if "pref(" in line: 11 | # Check if the line contains ", locked" or ", sticky" 12 | if ", locked" in line: 13 | # Change pref to lockPref and remove ", locked" 14 | modified_line = line.replace("pref(", "lockPref(").replace(", locked", "") 15 | elif ", sticky" in line: 16 | # Leave pref as is and remove ", sticky" 17 | modified_line = line.replace(", sticky", "") 18 | else: 19 | # Change pref to defaultPref 20 | modified_line = line.replace("pref(", "defaultPref(") 21 | 22 | # Write the modified line 23 | file.write(modified_line) 24 | else: 25 | # Leave the line unchanged (ex. for comments) 26 | file.write(line) 27 | 28 | # Check if the correct number of arguments is provided 29 | if len(sys.argv) != 3: 30 | print("Usage: python3 convert.py ") 31 | sys.exit(1) 32 | 33 | # Get the input and output file names from command line args 34 | input_file = sys.argv[1] 35 | output_file = sys.argv[2] 36 | 37 | # Process the file 38 | process_file(input_file, output_file) 39 | 40 | print(f"Processed {input_file} and saved to {output_file}.") 41 | -------------------------------------------------------------------------------- /build/convert_json_to_plist.py: -------------------------------------------------------------------------------- 1 | import json 2 | import plistlib 3 | import sys 4 | 5 | def convert_json_to_plist(json_file_path, plist_file_path): 6 | # Load the JSON data 7 | with open(json_file_path, 'r') as json_file: 8 | json_data = json.load(json_file) 9 | 10 | # Remove the 'policies' key 11 | if 'policies' in json_data: 12 | json_data = json_data['policies'] 13 | 14 | # Convert JSON data to plist format 15 | with open(plist_file_path, 'wb') as plist_file: 16 | plistlib.dump(json_data, plist_file) 17 | 18 | print(f"Conversion complete! The plist file is saved as '{plist_file_path}'.") 19 | 20 | if __name__ == "__main__": 21 | if len(sys.argv) != 3: 22 | print("Usage: python convert_json_to_plist.py ") 23 | sys.exit(1) 24 | 25 | input_json_file = sys.argv[1] 26 | output_plist_file = sys.argv[2] 27 | 28 | convert_json_to_plist(input_json_file, output_plist_file) 29 | -------------------------------------------------------------------------------- /build/env.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Version of Phoenix you'd like to build 4 | export phoenix_version=2025.05.11.1 5 | -------------------------------------------------------------------------------- /build/gen_android.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | cat build/prefs/phoenix-core.js build/prefs/phoenix-android.js > prefs/phoenix-android.js 4 | 5 | cat build/prefs/extended/phoenix-extended-core.js build/prefs/extended/phoenix-extended-android.js > prefs/phoenix-extended-android.js 6 | -------------------------------------------------------------------------------- /build/gen_archive.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # This is a basic script used to create the .zip files you see in the 'archives' directory. 4 | # We could just clone the entire source code - though lots of of it are completely unnecessary for packaging. 5 | # This creates a slim .zip file only containing what we actually need. 6 | 7 | # Script should be ran from inside the directory where you store Phoenix, not directly from the 'archives' or `build` folder... 8 | 9 | echo_green_text() { 10 | echo -e "\033[32m$1\033[0m" 11 | } 12 | 13 | rm archives/phoenix.zip archives/phoenix-flatpak.zip archives/phoenix-osx.zip 14 | 15 | echo_green_text "Creating archives/phoenix.zip..." 16 | 17 | zip -r -FS archives/phoenix.zip * -x 'android/*' 'archives/*' 'assets/*' 'build/*' 'configs/macos/*' 'configs/phoenix.cfg' 'extensions/*' 'flake.*' 'installer_scripts/*' 'macos/*' 'prefs/phoenix-android.js' 'prefs/phoenix-extended*' 'uBlock/*' 'uninstaller_scripts/*' 'user.js' 'userjs/flatpak/*' 'userjs/macos/*' 'userjs/macos-intel/*' 'windows/*' '*.code-workspace' '.domains' '.DS_Store' '.git*' '_redirects' 18 | 19 | echo_green_text "Creating archives/phoenix-flatpak.zip..." 20 | 21 | zip -r -FS archives/phoenix-flatpak.zip * -x 'android/*' 'archives/*' 'assets/*' 'build/*' 'configs/macos/*' 'configs/phoenix.cfg' 'etc/*' 'extensions/*' 'flake.*' 'installer_scripts/*' 'macos/*' 'prefs/phoenix-android.js' 'prefs/phoenix-extended*' 'uBlock/*' 'uninstaller_scripts/*' 'user.js' 'userjs/linux/*' 'userjs/macos/*' 'userjs/macos-intel/*' 'windows/*' '*.code-workspace' '.domains' '.DS_Store' '.git*' '_redirects' 22 | 23 | echo_green_text "Creating archives/phoenix-osx.zip..." 24 | 25 | zip -r -FS archives/phoenix-osx.zip * -x 'android/*' 'archives/*' 'assets/*' 'build/*' 'configs/apple-maps.cfg' 'configs/discord.cfg' 'configs/element.cfg' 'configs/google-maps.cfg' 'configs/hardened.cfg' 'configs/phoenix.cfg' 'configs/twitter.cfg' 'configs/ui-fix.cfg' 'configs/ui-fix/*' 'configs/youtube.cfg' 'etc/*' 'extensions/*' 'flake.*' 'installer_scripts/*' 'macos/defaults/*' 'macos/Intel/*' 'macos/Library/*' 'macos/migration/*' 'macos/phoenix-bootstrap.cfg' 'phoenix.cfg' 'policies.json' 'prefs/*' 'uBlock/*' 'uninstaller_scripts/*' 'user.js' 'userjs/flatpak/*' 'userjs/linux/*' 'windows/*' '*.code-workspace' '.domains' '.DS_Store' '.git*' '_redirects' 26 | -------------------------------------------------------------------------------- /build/gen_desktop.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | cat build/prefs/phoenix-core.js build/prefs/phoenix-desktop-common.js build/prefs/phoenix-desktop.js > prefs/phoenix-desktop.js 4 | 5 | python3 build/convert.py prefs/phoenix-desktop.js configs/phoenix.cfg 6 | 7 | cat build/prefs/extended/phoenix-extended-core.js build/prefs/extended/phoenix-extended-desktop.js > prefs/phoenix-extended-desktop.js 8 | 9 | python3 build/convert.py prefs/phoenix-extended-desktop.js configs/hardened.cfg 10 | 11 | cat configs/hardened.cfg configs/ui-fix.cfg > configs/ui-fix/hardened.cfg 12 | 13 | cat configs/hardened.cfg build/configs/specialized-spec.cfg build/configs/apple-maps-spec.cfg > configs/apple-maps.cfg 14 | 15 | cat configs/apple-maps.cfg configs/ui-fix.cfg > configs/ui-fix/apple-maps.cfg 16 | 17 | cat configs/hardened.cfg build/configs/specialized-spec.cfg build/configs/discord-spec.cfg > configs/discord.cfg 18 | 19 | cat configs/discord.cfg configs/ui-fix.cfg > configs/ui-fix/discord.cfg 20 | 21 | cat configs/hardened.cfg build/configs/specialized-spec.cfg build/configs/element-spec.cfg > configs/element.cfg 22 | 23 | cat configs/element.cfg configs/ui-fix.cfg > configs/ui-fix/element.cfg 24 | 25 | cat configs/hardened.cfg build/configs/specialized-spec.cfg build/configs/google-maps-spec.cfg > configs/google-maps.cfg 26 | 27 | cat configs/google-maps.cfg configs/ui-fix.cfg > configs/ui-fix/google-maps.cfg 28 | 29 | cat configs/hardened.cfg build/configs/specialized-spec.cfg build/configs/twitter-spec.cfg > configs/twitter.cfg 30 | 31 | cat configs/twitter.cfg configs/ui-fix.cfg > configs/ui-fix/twitter.cfg 32 | 33 | cat configs/hardened.cfg build/configs/specialized-spec.cfg build/configs/youtube-spec.cfg > configs/youtube.cfg 34 | 35 | cat configs/youtube.cfg configs/ui-fix.cfg > configs/ui-fix/youtube.cfg 36 | -------------------------------------------------------------------------------- /build/gen_macos.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | awk '!/NO-OSX/' configs/phoenix.cfg > macos/phoenix.cfg 4 | 5 | cat macos/phoenix.cfg configs/hardened.cfg > configs/macos/hardened.cfg 6 | 7 | cat macos/phoenix.cfg configs/ui-fix.cfg > configs/macos/ui-fix.cfg 8 | 9 | cat macos/phoenix.cfg configs/ui-fix/hardened.cfg > configs/macos/ui-fix/hardened.cfg 10 | 11 | cat macos/phoenix.cfg configs/apple-maps.cfg > configs/macos/apple-maps.cfg 12 | 13 | cat macos/phoenix.cfg configs/ui-fix/apple-maps.cfg > configs/macos/ui-fix/apple-maps.cfg 14 | 15 | cat macos/phoenix.cfg configs/discord.cfg > configs/macos/discord.cfg 16 | 17 | cat macos/phoenix.cfg configs/ui-fix/discord.cfg > configs/macos/ui-fix/discord.cfg 18 | 19 | cat macos/phoenix.cfg configs/element.cfg > configs/macos/element.cfg 20 | 21 | cat macos/phoenix.cfg configs/ui-fix/element.cfg > configs/macos/ui-fix/element.cfg 22 | 23 | cat macos/phoenix.cfg configs/google-maps.cfg > configs/macos/google-maps.cfg 24 | 25 | cat macos/phoenix.cfg configs/ui-fix/google-maps.cfg > configs/macos/ui-fix/google-maps.cfg 26 | 27 | cat macos/phoenix.cfg configs/twitter.cfg > configs/macos/twitter.cfg 28 | 29 | cat macos/phoenix.cfg configs/ui-fix/twitter.cfg > configs/macos/ui-fix/twitter.cfg 30 | 31 | cat macos/phoenix.cfg configs/youtube.cfg > configs/macos/youtube.cfg 32 | 33 | cat macos/phoenix.cfg configs/ui-fix/youtube.cfg > configs/macos/ui-fix/youtube.cfg 34 | -------------------------------------------------------------------------------- /build/gen_policies.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | jq -s '.[0] * .[1]' build/policies/policies-core.json build/policies/blocklist-spec.json > build/policies/temp1.json 4 | 5 | jq -s '.[0] * .[1]' build/policies/temp1.json build/policies/cookies-spec.json > build/policies/temp2.json 6 | 7 | rm -f build/policies/temp1.json 8 | 9 | jq -s '.[0] * .[1]' build/policies/temp2.json build/policies/policies-phoenix.json > policies.json 10 | 11 | rm -f build/policies/temp2.json 12 | 13 | python3 build/convert_json_to_plist.py policies.json macos/org.mozilla.firefox.plist 14 | -------------------------------------------------------------------------------- /build/policies/cookies-spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "policies": { 3 | "Cookies": { 4 | "Behavior": "reject-tracker-and-partition-foreign", 5 | "BehaviorPrivateBrowsing": "reject-tracker-and-partition-foreign", 6 | "Block": [ 7 | "http://amazon-adsystem.com/", 8 | "https://amazon-adsystem.com/", 9 | "http://bit.ly/", 10 | "https://bit.ly/", 11 | "http://click.discord.com/", 12 | "https://click.discord.com/", 13 | "http://fonts.googleapis.com/", 14 | "https://fonts.googleapis.com/", 15 | "http://fonts.gstatic.com/", 16 | "https://fonts.gstatic.com/", 17 | "http://links.mozilla.org/", 18 | "https://links.mozilla.org/", 19 | "http://raw.githubusercontent.com/", 20 | "https://raw.githubusercontent.com/", 21 | "http://t.co/", 22 | "https://t.co/", 23 | "http://youtu.be/", 24 | "https://youtu.be/", 25 | "http://youtube-nocookie.com/", 26 | "https://youtube-nocookie.com/" 27 | ] 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /build/policies/policies-core.json: -------------------------------------------------------------------------------- 1 | { 2 | "policies": { 3 | "BlockAboutAddons": false, 4 | "BlockAboutConfig": false, 5 | "BlockAboutProfiles": false, 6 | "BlockAboutSupport": false, 7 | "Certificates": { 8 | "ImportEnterpriseRoots": false 9 | }, 10 | "DisableTelemetry": true, 11 | "DNSOverHTTPS": { 12 | "Enabled": true, 13 | "Fallback": false, 14 | "Locked": false, 15 | "ProviderURL": "https://dns.quad9.net/dns-query" 16 | }, 17 | "EnterprisePoliciesEnabled": true, 18 | "Proxy": { 19 | "Mode": "none", 20 | "UseProxyForDNS": true 21 | }, 22 | "SearchEngines": { 23 | "Default": "DuckDuckGo", 24 | "PreventInstalls": false, 25 | "Remove": [ 26 | "1&1 Suche", 27 | "Allegro", 28 | "Amazon.ca", 29 | "亚马逊", 30 | "Amazon.co.jp", 31 | "Amazon.co.uk", 32 | "Amazon.com", 33 | "Amazon.com.au", 34 | "Amazon.de", 35 | "Amazon.es", 36 | "Amazon.fr", 37 | "Amazon.in", 38 | "Amazon.it", 39 | "Amazon.nl", 40 | "Amazon.se", 41 | "百度", 42 | "Bing", 43 | "Ceneje.si", 44 | "Cốc Cốc", 45 | "다음", 46 | "eBay", 47 | "Ecosia", 48 | "EUdict Eng->Cro", 49 | "GMX - Búsqueda web", 50 | "GMX - Recherche web", 51 | "GMX Search", 52 | "GMX Shopping", 53 | "GMX Suche", 54 | "Google", 55 | "Gule sider", 56 | "LEO Eng-Deu", 57 | "พจนานุกรม ลองดู", 58 | "mail.com", 59 | "Поиск Mail.Ru", 60 | "Mapy.cz", 61 | "MercadoLibre Argentina", 62 | "MercadoLibre Chile", 63 | "MercadoLibre Mexico", 64 | "MercadoLivre", 65 | "네이버", 66 | "Odpiralni Časi", 67 | "Pazaruvaj", 68 | "Priberam", 69 | "Prisjakt", 70 | "Qwant", 71 | "Qwant Junior", 72 | "楽天市場", 73 | "Readmoo 讀墨電子書", 74 | "Salidzini.lv", 75 | "Seznam", 76 | "Tyda.se", 77 | "Vatera.hu", 78 | "WEB.DE Suche", 79 | "Wolne Lektury", 80 | "Yahoo! JAPAN", 81 | "Yahoo!オークション", 82 | "Yandex", 83 | "Яндекс" 84 | ] 85 | } 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /build/policies/policies-phoenix.json: -------------------------------------------------------------------------------- 1 | { 2 | "policies": { 3 | "3rdparty": { 4 | "Extensions": { 5 | "uBlock0@raymondhill.net": { 6 | "adminSettings": { 7 | "assetsBootstrapLocation": "https://gitlab.com/celenityy/Phoenix/-/raw/pages/uBlock/assets.json" 8 | } 9 | } 10 | } 11 | }, 12 | "Bookmarks": [ 13 | { 14 | "Title": "about:netscape", 15 | "URL": "http://home.mcom.com", 16 | "Placement": "menu", 17 | "Folder": "🥚" 18 | } 19 | ], 20 | "ContentAnalysis": { 21 | "DefaultResult": 0, 22 | "Enabled": false, 23 | "InterceptionPoints": { 24 | "Clipboard": { 25 | "Enabled": false 26 | }, 27 | "DragAndDrop": { 28 | "Enabled": false 29 | }, 30 | "FileUpload": { 31 | "Enabled": false 32 | }, 33 | "Print": { 34 | "Enabled": false 35 | } 36 | }, 37 | "MaxConnectionsCount": 0, 38 | "ShowBlockedResult": true 39 | }, 40 | "DisableDefaultBrowserAgent": true, 41 | "DisableFeedbackCommands": true, 42 | "DisableFirefoxStudies": true, 43 | "DisablePrivateBrowsing": false, 44 | "DisableProfileImport": true, 45 | "DisableProfileRefresh": true, 46 | "DisplayBookmarksToolbar": "always", 47 | "EnableTrackingProtection": { 48 | "Cryptomining": true, 49 | "EmailTracking": true, 50 | "Fingerprinting": true, 51 | "Value": true 52 | }, 53 | "EncryptedMediaExtensions": { 54 | "Enabled": false 55 | }, 56 | "ExtensionSettings": { 57 | "*": { 58 | "blocked_install_message": "I am Iron Man.", 59 | "allowed_types": [ 60 | "extension", 61 | "theme", 62 | "dictionary", 63 | "locale" 64 | ] 65 | }, 66 | "uBlock0@raymondhill.net": { 67 | "default_area": "navbar", 68 | "installation_mode": "normal_installed", 69 | "install_url": "https://addons.mozilla.org/firefox/downloads/latest/uBlock0@raymondhill.net/latest.xpi", 70 | "private_browsing": true, 71 | "temporarily_allow_weak_signatures": false 72 | }, 73 | "@testpilot-containers": { 74 | "default_area": "navbar", 75 | "installation_mode": "normal_installed", 76 | "install_url": "https://addons.mozilla.org/firefox/downloads/latest/@testpilot-containers/latest.xpi", 77 | "temporarily_allow_weak_signatures": false 78 | }, 79 | "brave-leta@celenity.dev": { 80 | "installation_mode": "normal_installed", 81 | "install_url": "https://gitlab.com/celenityy/Phoenix/-/raw/d5d4851f3198677bce4ec81bc92ec1e1ea7480ae/extensions/xpi/search/leta-brave/leta-brave-0.0.2.xpi", 82 | "private_browsing": false, 83 | "temporarily_allow_weak_signatures": false, 84 | "updates_disabled": true 85 | }, 86 | "ddg@celenity.dev": { 87 | "installation_mode": "normal_installed", 88 | "install_url": "https://gitlab.com/celenityy/Phoenix/-/raw/d5d4851f3198677bce4ec81bc92ec1e1ea7480ae/extensions/xpi/search/duckduckgo/duckduckgo-0.0.3.xpi", 89 | "private_browsing": false, 90 | "temporarily_allow_weak_signatures": false, 91 | "updates_disabled": true 92 | }, 93 | "duckduckgo-html@celenity.dev": { 94 | "installation_mode": "normal_installed", 95 | "install_url": "https://gitlab.com/celenityy/Phoenix/-/raw/d5d4851f3198677bce4ec81bc92ec1e1ea7480ae/extensions/xpi/search/duckduckgo-html/duckduckgo-html-0.0.7.xpi", 96 | "private_browsing": false, 97 | "temporarily_allow_weak_signatures": false, 98 | "updates_disabled": true 99 | }, 100 | "duckduckgo-lite@celenity.dev": { 101 | "installation_mode": "normal_installed", 102 | "install_url": "https://gitlab.com/celenityy/Phoenix/-/raw/d5d4851f3198677bce4ec81bc92ec1e1ea7480ae/extensions/xpi/search/duckduckgo-lite/duckduckgo-lite-0.0.5.xpi", 103 | "private_browsing": false, 104 | "temporarily_allow_weak_signatures": false, 105 | "updates_disabled": true 106 | }, 107 | "google-leta@celenity.dev": { 108 | "installation_mode": "normal_installed", 109 | "install_url": "https://gitlab.com/celenityy/Phoenix/-/raw/d5d4851f3198677bce4ec81bc92ec1e1ea7480ae/extensions/xpi/search/leta-google/leta-google-0.0.2.xpi", 110 | "private_browsing": false, 111 | "temporarily_allow_weak_signatures": false, 112 | "updates_disabled": true 113 | }, 114 | "mojeek@celenity.dev": { 115 | "installation_mode": "normal_installed", 116 | "install_url": "https://gitlab.com/celenityy/Phoenix/-/raw/d5d4851f3198677bce4ec81bc92ec1e1ea7480ae/extensions/xpi/search/mojeek/mojeek-0.0.5.xpi", 117 | "private_browsing": false, 118 | "temporarily_allow_weak_signatures": false, 119 | "updates_disabled": true 120 | }, 121 | "no-search@celenity.dev": { 122 | "installation_mode": "normal_installed", 123 | "install_url": "https://gitlab.com/celenityy/Phoenix/-/raw/d5d4851f3198677bce4ec81bc92ec1e1ea7480ae/extensions/xpi/search/no-search/no-search-0.0.5.xpi", 124 | "private_browsing": false, 125 | "temporarily_allow_weak_signatures": false, 126 | "updates_disabled": true 127 | }, 128 | "startpage@celenity.dev": { 129 | "installation_mode": "normal_installed", 130 | "install_url": "https://gitlab.com/celenityy/Phoenix/-/raw/d5d4851f3198677bce4ec81bc92ec1e1ea7480ae/extensions/xpi/search/startpage/startpage-0.0.5.xpi", 131 | "private_browsing": false, 132 | "temporarily_allow_weak_signatures": false, 133 | "updates_disabled": true 134 | } 135 | }, 136 | "FirefoxHome": { 137 | "Pocket": false, 138 | "Snippets": false, 139 | "SponsoredTopSites": false, 140 | "SponsoredPocket": false, 141 | "Locked": true 142 | }, 143 | "FirefoxSuggest": { 144 | "ImproveSuggest": false, 145 | "SponsoredSuggestions": false, 146 | "WebSuggestions": false, 147 | "Locked": true 148 | }, 149 | "HttpsOnlyMode": "force_enabled", 150 | "NoDefaultBookmarks": true, 151 | "PrivateBrowsingModeAvailability": 0, 152 | "SupportMenu": { 153 | "Title": "Phoenix Issue Tracker", 154 | "URL": "https://phoenix.celenity.dev/issues" 155 | }, 156 | "UserMessaging": { 157 | "ExtensionRecommendations": false, 158 | "FeatureRecommendations": false, 159 | "MoreFromMozilla": false, 160 | "SkipTermsOfUse": true, 161 | "UrlbarInterventions": false, 162 | "Locked": true 163 | } 164 | } 165 | } 166 | -------------------------------------------------------------------------------- /build/prefs/extended/phoenix-extended-android.js: -------------------------------------------------------------------------------- 1 | 2 | // 3 | 4 | // 5 | // Copyright (C) 2024-2025 celenity 6 | // 7 | // This file is part of Phoenix. 8 | // 9 | // Phoenix is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 10 | // 11 | // Phoenix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | // 13 | // You should have received a copy of the GNU General Public License along with Phoenix. If not, see https://www.gnu.org/licenses/. 14 | // 15 | 16 | // This file contains preferences specific to Phoenix (Extended) on Android. 17 | 18 | /* INDEX 19 | 20 | 001: FINGERPRINTING PROTECTION 21 | 22 | */ 23 | 24 | /*** 001 FINGERPRINTING PROTECTION ***/ 25 | 26 | /// Further harden FPP... 27 | // As explained here: https://codeberg.org/celenity/Phoenix/wiki/Extended#fingerprinting 28 | // Compared to standard, this just removes '-JSDateTimeUTC' - meaning timezone is spoofed to UTC-0 29 | pref("privacy.fingerprintingProtection.overrides", "+AllTargets,-CanvasImageExtractionPrompt,-CanvasExtractionBeforeUserInputIsBlocked,-CSSPrefersColorScheme,-FrameRate,-JSLocale"); 30 | 31 | pref("browser.phoenix.status.extended.android", "001"); 32 | 33 | /*** 002 MISC. PRIVACY + SECURITY ***/ 34 | 35 | /// Disable WebGL 36 | // PRIVACY: Fingerprinting concerns 37 | // SECURITY: Attack Surface Reduction 38 | // https://blog.browserscan.net/docs/webgl-fingerprinting 39 | // https://security.stackexchange.com/questions/13799/is-webgl-a-security-concern 40 | // On desktop we're no longer setting/recommending this in favor of the built-in `Block WebGL` filterlist in uBlock Origin (and I'm sure we'll also override this on IronFox once we get our custom config working...), but on Android we can't control uBlock Origin/set policies, so let's make sure this is disabled. 41 | pref("webgl.disabled", true); 42 | 43 | pref("browser.phoenix.status.extended.android", "002"); 44 | 45 | pref("browser.phoenix.status.extended.android", "successfully applied :D", locked); 46 | 47 | -------------------------------------------------------------------------------- /build/prefs/extended/phoenix-extended-core.js: -------------------------------------------------------------------------------- 1 | 2 | // 3 | 4 | // 5 | // Copyright (C) 2024-2025 celenity 6 | // 7 | // This file is part of Phoenix. 8 | // 9 | // Phoenix is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 10 | // 11 | // Phoenix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | // 13 | // You should have received a copy of the GNU General Public License along with Phoenix. If not, see https://www.gnu.org/licenses/. 14 | // 15 | 16 | // This file contains preferences shared across Phoenix 'Extended' configs. 17 | 18 | /* INDEX 19 | 20 | 001: WEBRTC 21 | 002: ATTACK SURFACE REDUCTION 22 | 003: MISC. PRIVACY 23 | 004: MISC. 24 | 25 | */ 26 | 27 | /*** 001 WEBRTC ***/ 28 | // This will likely break WebRTC... 29 | 30 | /// Always exclude local IP addresses, even in trusted scenarios 31 | pref("media.peerconnection.ice.no_host", true); 32 | 33 | /// Force a single candidate for ICE generation 34 | pref("media.peerconnection.ice.default_address_only", true); 35 | 36 | /// Only use TURN servers/relays 37 | // No P2P 38 | // https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/issues/40#note_2884663 39 | pref("media.peerconnection.ice.relay_only", true); 40 | 41 | pref("browser.phoenix.status.extended", "001"); 42 | 43 | /*** 002 ATTACK SURFACE REDUCTION ***/ 44 | 45 | /// Disable WebAssembly (WASM) 46 | // https://spectrum.ieee.org/more-worries-over-the-security-of-web-assembly 47 | pref("javascript.options.wasm", false); 48 | 49 | pref("browser.phoenix.status.extended", "002"); 50 | 51 | /*** 003 MISC. PRIVACY ***/ 52 | 53 | /// Only send cross-origin referers if hosts match 54 | // https://wiki.mozilla.org/Security/Referrer 55 | pref("network.http.referer.XOriginPolicy", 2); 56 | 57 | pref("browser.phoenix.status.extended", "003"); 58 | 59 | pref("browser.phoenix.status.extended", "successfully applied :D", locked); 60 | 61 | -------------------------------------------------------------------------------- /build/prefs/extended/phoenix-extended-desktop.js: -------------------------------------------------------------------------------- 1 | 2 | // 3 | 4 | // 5 | // Copyright (C) 2024-2025 celenity 6 | // 7 | // This file is part of Phoenix. 8 | // 9 | // Phoenix is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 10 | // 11 | // Phoenix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | // 13 | // You should have received a copy of the GNU General Public License along with Phoenix. If not, see https://www.gnu.org/licenses/. 14 | // 15 | 16 | // This file contains preferences specific to Phoenix (Extended) on Desktop. 17 | 18 | /// Add custom branding under `Firefox Updates` at `about:preferences#general` 19 | // This will unfortunately only display if the version of Firefox you're using is repackaged (ex. Flatpaks/Linux distros) 20 | pref("distribution.about", "Phoenix: Extended for Mozilla Firefox - 2025.05.11.1 💜", locked); 21 | 22 | /* INDEX 23 | 24 | 001: FINGERPRINTING PROTECTION 25 | 26 | */ 27 | 28 | /*** 001 FINGERPRINTING PROTECTION ***/ 29 | 30 | /// Enable dynamic rounding of content dimensions 31 | // https://bugzilla.mozilla.org/show_bug.cgi?id=1407366 32 | pref("privacy.resistFingerprinting.letterboxing", true); 33 | 34 | /// Further harden FPP... 35 | // As explained here: https://codeberg.org/celenity/Phoenix/wiki/Extended#fingerprinting 36 | // Compared to standard, this just removes '-JSDateTimeUTC' - meaning timezone is spoofed to UTC-0 37 | pref("privacy.fingerprintingProtection.overrides", "+AllTargets,-CanvasExtractionBeforeUserInputIsBlocked,-CSSPrefersColorScheme,-FrameRate,-JSLocale"); 38 | 39 | pref("browser.phoenix.status.extended.desktop", "successfully applied :D", locked); 40 | 41 | -------------------------------------------------------------------------------- /configs/hardened.cfg: -------------------------------------------------------------------------------- 1 | 2 | // 3 | 4 | // 5 | // Copyright (C) 2024-2025 celenity 6 | // 7 | // This file is part of Phoenix. 8 | // 9 | // Phoenix is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 10 | // 11 | // Phoenix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | // 13 | // You should have received a copy of the GNU General Public License along with Phoenix. If not, see https://www.gnu.org/licenses/. 14 | // 15 | 16 | // This file contains preferences shared across Phoenix 'Extended' configs. 17 | 18 | /* INDEX 19 | 20 | 001: WEBRTC 21 | 002: ATTACK SURFACE REDUCTION 22 | 003: MISC. PRIVACY 23 | 004: MISC. 24 | 25 | */ 26 | 27 | /*** 001 WEBRTC ***/ 28 | // This will likely break WebRTC... 29 | 30 | /// Always exclude local IP addresses, even in trusted scenarios 31 | defaultPref("media.peerconnection.ice.no_host", true); 32 | 33 | /// Force a single candidate for ICE generation 34 | defaultPref("media.peerconnection.ice.default_address_only", true); 35 | 36 | /// Only use TURN servers/relays 37 | // No P2P 38 | // https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/issues/40#note_2884663 39 | defaultPref("media.peerconnection.ice.relay_only", true); 40 | 41 | defaultPref("browser.phoenix.status.extended", "001"); 42 | 43 | /*** 002 ATTACK SURFACE REDUCTION ***/ 44 | 45 | /// Disable WebAssembly (WASM) 46 | // https://spectrum.ieee.org/more-worries-over-the-security-of-web-assembly 47 | defaultPref("javascript.options.wasm", false); 48 | 49 | defaultPref("browser.phoenix.status.extended", "002"); 50 | 51 | /*** 003 MISC. PRIVACY ***/ 52 | 53 | /// Only send cross-origin referers if hosts match 54 | // https://wiki.mozilla.org/Security/Referrer 55 | defaultPref("network.http.referer.XOriginPolicy", 2); 56 | 57 | defaultPref("browser.phoenix.status.extended", "003"); 58 | 59 | lockPref("browser.phoenix.status.extended", "successfully applied :D"); 60 | 61 | 62 | // 63 | 64 | // 65 | // Copyright (C) 2024-2025 celenity 66 | // 67 | // This file is part of Phoenix. 68 | // 69 | // Phoenix is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 70 | // 71 | // Phoenix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 72 | // 73 | // You should have received a copy of the GNU General Public License along with Phoenix. If not, see https://www.gnu.org/licenses/. 74 | // 75 | 76 | // This file contains preferences specific to Phoenix (Extended) on Desktop. 77 | 78 | /// Add custom branding under `Firefox Updates` at `about:preferences#general` 79 | // This will unfortunately only display if the version of Firefox you're using is repackaged (ex. Flatpaks/Linux distros) 80 | lockPref("distribution.about", "Phoenix: Extended for Mozilla Firefox - 2025.05.11.1 💜"); 81 | 82 | /* INDEX 83 | 84 | 001: FINGERPRINTING PROTECTION 85 | 86 | */ 87 | 88 | /*** 001 FINGERPRINTING PROTECTION ***/ 89 | 90 | /// Enable dynamic rounding of content dimensions 91 | // https://bugzilla.mozilla.org/show_bug.cgi?id=1407366 92 | defaultPref("privacy.resistFingerprinting.letterboxing", true); 93 | 94 | /// Further harden FPP... 95 | // As explained here: https://codeberg.org/celenity/Phoenix/wiki/Extended#fingerprinting 96 | // Compared to standard, this just removes '-JSDateTimeUTC' - meaning timezone is spoofed to UTC-0 97 | defaultPref("privacy.fingerprintingProtection.overrides", "+AllTargets,-CanvasExtractionBeforeUserInputIsBlocked,-CSSPrefersColorScheme,-FrameRate,-JSLocale"); 98 | 99 | lockPref("browser.phoenix.status.extended.desktop", "successfully applied :D"); 100 | 101 | -------------------------------------------------------------------------------- /etc/profile.d/phoenix-env-overrides.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # 4 | # Copyright (C) 2024-2025 celenity 5 | # 6 | # This file is part of Phoenix. 7 | # 8 | # Phoenix is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 9 | # 10 | # Phoenix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 11 | # 12 | # You should have received a copy of the GNU General Public License along with Phoenix. If not, see https://www.gnu.org/licenses/. 13 | # 14 | 15 | # Environment variables for GNU/Linux distros that further harden Firefox for Phoenix 16 | # Also impacts other Mozilla software (like Thunderbird) 17 | 18 | # Disable Mozilla's Crash Reporter 19 | ## https://firefox-source-docs.mozilla.org/toolkit/crashreporter/crashreporter/index.html#user-specified-environment-variables 20 | export MOZ_CRASHREPORTER=; 21 | export MOZ_CRASHREPORTER_DISABLE=1; 22 | export MOZ_CRASHREPORTER_NO_REPORT=1; 23 | export MOZ_CRASHREPORTER_URL="data;"; 24 | 25 | # Enable Wayland 26 | ## Credit to Rasmus: https://askubuntu.com/users/13884/rasmus 27 | ## https://askubuntu.com/questions/1456684/how-to-initialize-firefox-on-wayland-always-by-default 28 | if [ "$XDG_SESSION_TYPE" == "wayland" ]; then 29 | export MOZ_ENABLE_WAYLAND=1 30 | fi 31 | -------------------------------------------------------------------------------- /extensions/search/duckduckgo-html/imager/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/search/duckduckgo-html/imager/favicon.ico -------------------------------------------------------------------------------- /extensions/search/duckduckgo-html/imager/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/search/duckduckgo-html/imager/icon.png -------------------------------------------------------------------------------- /extensions/search/duckduckgo-html/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DuckDuckGo (HTML)", 3 | "description": "Search DuckDuckGo (HTML)", 4 | "manifest_version": 3, 5 | "version": "0.0.7", 6 | "browser_specific_settings": { 7 | "gecko": { 8 | "id": "duckduckgo-html@celenity.dev", 9 | "update_url": "https://gitlab.com/celenityy/Phoenix/-/raw/pages/extensions/updates.json" 10 | } 11 | }, 12 | "hidden": true, 13 | "chrome_settings_overrides": { 14 | "search_provider": { 15 | "keyword": [ 16 | "@duckduckgohtml", 17 | "@ddghtml" 18 | ], 19 | "name": "DuckDuckGo (HTML)", 20 | "search_url": "https://html.duckduckgo.com/html/?q={searchTerms}", 21 | "suggest_url": "https://duckduckgo.com/ac/?q={searchTerms}&type=list", 22 | "favicon_url": "/imager/favicon.ico", 23 | "is_default": false 24 | } 25 | }, 26 | "author": "celenity 💘 ", 27 | "homepage_url": "https://phoenix.celenity.dev/search", 28 | "icons": { 29 | "48": "imager/icon.png" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /extensions/search/duckduckgo-lite/imager/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/search/duckduckgo-lite/imager/favicon.ico -------------------------------------------------------------------------------- /extensions/search/duckduckgo-lite/imager/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/search/duckduckgo-lite/imager/icon.png -------------------------------------------------------------------------------- /extensions/search/duckduckgo-lite/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DuckDuckGo (Lite)", 3 | "description": "Search DuckDuckGo (Lite)", 4 | "manifest_version": 3, 5 | "version": "0.0.5", 6 | "browser_specific_settings": { 7 | "gecko": { 8 | "id": "duckduckgo-lite@celenity.dev", 9 | "update_url": "https://gitlab.com/celenityy/Phoenix/-/raw/pages/extensions/updates.json" 10 | } 11 | }, 12 | "hidden": true, 13 | "chrome_settings_overrides": { 14 | "search_provider": { 15 | "keyword": [ 16 | "@duckduckgolite", 17 | "@ddglite" 18 | ], 19 | "name": "DuckDuckGo (Lite)", 20 | "search_url": "https://lite.duckduckgo.com/lite/?q={searchTerms}", 21 | "suggest_url": "https://duckduckgo.com/ac/?q={searchTerms}&type=list", 22 | "favicon_url": "/imager/favicon.ico", 23 | "is_default": false 24 | } 25 | }, 26 | "author": "celenity 💘 ", 27 | "homepage_url": "https://phoenix.celenity.dev/search", 28 | "icons": { 29 | "48": "imager/icon.png" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /extensions/search/duckduckgo/imager/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/search/duckduckgo/imager/icon.png -------------------------------------------------------------------------------- /extensions/search/duckduckgo/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DuckDuckGo", 3 | "description": "Search DuckDuckGo", 4 | "manifest_version": 3, 5 | "version": "0.0.3", 6 | "browser_specific_settings": { 7 | "gecko": { 8 | "id": "ddg@celenity.dev", 9 | "update_url": "https://gitlab.com/celenityy/Phoenix/-/raw/pages/extensions/updates.json" 10 | } 11 | }, 12 | "hidden": true, 13 | "chrome_settings_overrides": { 14 | "search_provider": { 15 | "name": "DuckDuckGo", 16 | "search_url": "https://duckduckgo.com/?q={searchTerms}", 17 | "is_default": true 18 | } 19 | }, 20 | "author": "celenity 💘 ", 21 | "homepage_url": "https://phoenix.celenity.dev/search", 22 | "icons": { 23 | "48": "imager/icon.png" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /extensions/search/leta-brave/imager/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/search/leta-brave/imager/favicon.ico -------------------------------------------------------------------------------- /extensions/search/leta-brave/imager/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/search/leta-brave/imager/icon.png -------------------------------------------------------------------------------- /extensions/search/leta-brave/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Mullvad Leta (Brave)", 3 | "description": "Search Mullvad Leta (with Brave's index)", 4 | "manifest_version": 3, 5 | "version": "0.0.2", 6 | "browser_specific_settings": { 7 | "gecko": { 8 | "id": "brave-leta@celenity.dev", 9 | "update_url": "https://gitlab.com/celenityy/Phoenix/-/raw/pages/extensions/updates.json" 10 | } 11 | }, 12 | "hidden": true, 13 | "chrome_settings_overrides": { 14 | "search_provider": { 15 | "keyword": [ 16 | "@letab", 17 | "@letabrave" 18 | ], 19 | "name": "Mullvad Leta (Brave)", 20 | "search_url": "https://leta.mullvad.net/?q={searchTerms}&engine=brave", 21 | "favicon_url": "/imager/favicon.ico", 22 | "is_default": false 23 | } 24 | }, 25 | "author": "celenity 💘 ", 26 | "homepage_url": "https://phoenix.celenity.dev/search", 27 | "icons": { 28 | "48": "imager/icon.png" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /extensions/search/leta-google/imager/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/search/leta-google/imager/favicon.ico -------------------------------------------------------------------------------- /extensions/search/leta-google/imager/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/search/leta-google/imager/icon.png -------------------------------------------------------------------------------- /extensions/search/leta-google/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Mullvad Leta (Google)", 3 | "description": "Search Mullvad Leta (with Google's index)", 4 | "manifest_version": 3, 5 | "version": "0.0.2", 6 | "browser_specific_settings": { 7 | "gecko": { 8 | "id": "google-leta@celenity.dev", 9 | "update_url": "https://gitlab.com/celenityy/Phoenix/-/raw/pages/extensions/updates.json" 10 | } 11 | }, 12 | "hidden": true, 13 | "chrome_settings_overrides": { 14 | "search_provider": { 15 | "keyword": [ 16 | "@letag", 17 | "@letagoogle" 18 | ], 19 | "name": "Mullvad Leta (Google)", 20 | "search_url": "https://leta.mullvad.net/?q={searchTerms}&engine=google", 21 | "favicon_url": "/imager/favicon.ico", 22 | "is_default": false 23 | } 24 | }, 25 | "author": "celenity 💘 ", 26 | "homepage_url": "https://phoenix.celenity.dev/search", 27 | "icons": { 28 | "48": "imager/icon.png" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /extensions/search/mojeek/imager/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/search/mojeek/imager/favicon.png -------------------------------------------------------------------------------- /extensions/search/mojeek/imager/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/search/mojeek/imager/icon.png -------------------------------------------------------------------------------- /extensions/search/mojeek/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Mojeek", 3 | "description": "Search Mojeek", 4 | "manifest_version": 3, 5 | "version": "0.0.5", 6 | "browser_specific_settings": { 7 | "gecko": { 8 | "id": "mojeek@celenity.dev", 9 | "update_url": "https://gitlab.com/celenityy/Phoenix/-/raw/pages/extensions/updates.json" 10 | } 11 | }, 12 | "hidden": true, 13 | "chrome_settings_overrides": { 14 | "search_provider": { 15 | "keyword": [ 16 | "@mojeek" 17 | ], 18 | "name": "Mojeek", 19 | "search_url": "https://www.mojeek.com/search?q={searchTerms}", 20 | "favicon_url": "/imager/favicon.png", 21 | "is_default": false 22 | } 23 | }, 24 | "author": "celenity 💘 ", 25 | "homepage_url": "https://phoenix.celenity.dev/search", 26 | "icons": { 27 | "48": "imager/icon.png" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /extensions/search/no-search/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "No Search", 3 | "description": "Search nothing...", 4 | "manifest_version": 3, 5 | "version": "0.0.5", 6 | "browser_specific_settings": { 7 | "gecko": { 8 | "id": "no-search@celenity.dev", 9 | "update_url": "https://gitlab.com/celenityy/Phoenix/-/raw/pages/extensions/updates.json" 10 | } 11 | }, 12 | "hidden": true, 13 | "chrome_settings_overrides": { 14 | "search_provider": { 15 | "name": "No Search", 16 | "search_url": "https://nosearch.invalid/{searchTerms}", 17 | "is_default": false 18 | } 19 | }, 20 | "author": "celenity 💘 ", 21 | "homepage_url": "https://phoenix.celenity.dev/search" 22 | } 23 | -------------------------------------------------------------------------------- /extensions/search/startpage/imager/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/search/startpage/imager/favicon.ico -------------------------------------------------------------------------------- /extensions/search/startpage/imager/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/search/startpage/imager/icon.png -------------------------------------------------------------------------------- /extensions/search/startpage/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Startpage", 3 | "description": "Search Startpage", 4 | "manifest_version": 3, 5 | "version": "0.0.5", 6 | "browser_specific_settings": { 7 | "gecko": { 8 | "id": "startpage@celenity.dev", 9 | "update_url": "https://gitlab.com/celenityy/Phoenix/-/raw/pages/extensions/updates.json" 10 | } 11 | }, 12 | "hidden": true, 13 | "chrome_settings_overrides": { 14 | "search_provider": { 15 | "keyword": [ 16 | "@startpage", 17 | "@sp" 18 | ], 19 | "name": "Startpage", 20 | "search_url": "https://www.startpage.com/sp/search?query={searchTerms}", 21 | "suggest_url": "https://www.startpage.com/osuggestions?q={searchTerms}", 22 | "favicon_url": "/imager/favicon.ico", 23 | "is_default": false 24 | } 25 | }, 26 | "author": "celenity 💘 ", 27 | "homepage_url": "https://phoenix.celenity.dev/search", 28 | "icons": { 29 | "48": "imager/icon.png" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /extensions/search/swisscows/imager/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/search/swisscows/imager/favicon.ico -------------------------------------------------------------------------------- /extensions/search/swisscows/imager/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/search/swisscows/imager/icon.png -------------------------------------------------------------------------------- /extensions/search/swisscows/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Swisscows", 3 | "description": "Search Swisscows", 4 | "manifest_version": 3, 5 | "version": "0.0.4", 6 | "browser_specific_settings": { 7 | "gecko": { 8 | "id": "swisscows@celenity.dev", 9 | "update_url": "https://gitlab.com/celenityy/Phoenix/-/raw/pages/extensions/updates.json" 10 | } 11 | }, 12 | "hidden": true, 13 | "chrome_settings_overrides": { 14 | "search_provider": { 15 | "keyword": [ 16 | "@swisscows" 17 | ], 18 | "name": "Swisscows", 19 | "search_url": "https://swisscows.com/web?query={searchTerms}", 20 | "suggest_url": "https://swisscows.com/api/suggest?query={searchTerms}", 21 | "favicon_url": "/imager/favicon.ico", 22 | "is_default": false 23 | } 24 | }, 25 | "author": "celenity 💘 ", 26 | "homepage_url": "https://phoenix.celenity.dev/search", 27 | "icons": { 28 | "48": "imager/icon.png" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-html/duckduckgo-html-0.0.2.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-html/duckduckgo-html-0.0.2.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-html/duckduckgo-html-0.0.4.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-html/duckduckgo-html-0.0.4.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-html/duckduckgo-html-0.0.6.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-html/duckduckgo-html-0.0.6.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-html/duckduckgo-html-0.0.7.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-html/duckduckgo-html-0.0.7.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-html/duckduckgo-html-latest.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-html/duckduckgo-html-latest.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-html/unsigned/duckduckgo-html-0.0.3-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-html/unsigned/duckduckgo-html-0.0.3-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-html/unsigned/duckduckgo-html-0.0.4-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-html/unsigned/duckduckgo-html-0.0.4-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-html/unsigned/duckduckgo-html-0.0.6-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-html/unsigned/duckduckgo-html-0.0.6-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-html/unsigned/duckduckgo-html-0.0.7-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-html/unsigned/duckduckgo-html-0.0.7-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-html/unsigned/duckduckgo-html-latest-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-html/unsigned/duckduckgo-html-latest-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-lite/duckduckgo-lite-0.0.1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-lite/duckduckgo-lite-0.0.1.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-lite/duckduckgo-lite-0.0.3.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-lite/duckduckgo-lite-0.0.3.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-lite/duckduckgo-lite-0.0.4.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-lite/duckduckgo-lite-0.0.4.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-lite/duckduckgo-lite-0.0.5.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-lite/duckduckgo-lite-0.0.5.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-lite/duckduckgo-lite-latest.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-lite/duckduckgo-lite-latest.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-lite/unsigned/duckduckgo-lite-0.0.2-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-lite/unsigned/duckduckgo-lite-0.0.2-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-lite/unsigned/duckduckgo-lite-0.0.3-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-lite/unsigned/duckduckgo-lite-0.0.3-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-lite/unsigned/duckduckgo-lite-0.0.4-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-lite/unsigned/duckduckgo-lite-0.0.4-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-lite/unsigned/duckduckgo-lite-0.0.5-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-lite/unsigned/duckduckgo-lite-0.0.5-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo-lite/unsigned/duckduckgo-lite-latest-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo-lite/unsigned/duckduckgo-lite-latest-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo/duckduckgo-0.0.1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo/duckduckgo-0.0.1.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo/duckduckgo-0.0.2.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo/duckduckgo-0.0.2.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo/duckduckgo-0.0.3.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo/duckduckgo-0.0.3.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo/duckduckgo-latest.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo/duckduckgo-latest.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo/unsigned/duckduckgo-0.0.1-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo/unsigned/duckduckgo-0.0.1-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo/unsigned/duckduckgo-0.0.2-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo/unsigned/duckduckgo-0.0.2-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo/unsigned/duckduckgo-0.0.3-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo/unsigned/duckduckgo-0.0.3-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/duckduckgo/unsigned/duckduckgo-latest-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/duckduckgo/unsigned/duckduckgo-latest-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/leta-brave/leta-brave-0.0.1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/leta-brave/leta-brave-0.0.1.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/leta-brave/leta-brave-0.0.2.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/leta-brave/leta-brave-0.0.2.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/leta-brave/leta-brave-latest.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/leta-brave/leta-brave-latest.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/leta-brave/unsigned/leta-brave-0.0.1-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/leta-brave/unsigned/leta-brave-0.0.1-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/leta-brave/unsigned/leta-brave-0.0.2-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/leta-brave/unsigned/leta-brave-0.0.2-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/leta-brave/unsigned/leta-brave-latest-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/leta-brave/unsigned/leta-brave-latest-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/leta-google/leta-google-0.0.1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/leta-google/leta-google-0.0.1.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/leta-google/leta-google-0.0.2.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/leta-google/leta-google-0.0.2.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/leta-google/leta-google-latest.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/leta-google/leta-google-latest.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/leta-google/unsigned/leta-google-0.0.1-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/leta-google/unsigned/leta-google-0.0.1-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/leta-google/unsigned/leta-google-0.0.2-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/leta-google/unsigned/leta-google-0.0.2-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/leta-google/unsigned/leta-google-latest-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/leta-google/unsigned/leta-google-latest-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/mojeek/mojeek-0.0.1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/mojeek/mojeek-0.0.1.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/mojeek/mojeek-0.0.2.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/mojeek/mojeek-0.0.2.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/mojeek/mojeek-0.0.3.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/mojeek/mojeek-0.0.3.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/mojeek/mojeek-0.0.4.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/mojeek/mojeek-0.0.4.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/mojeek/mojeek-0.0.5.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/mojeek/mojeek-0.0.5.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/mojeek/mojeek-latest.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/mojeek/mojeek-latest.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/mojeek/unsigned/mojeek-0.0.2-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/mojeek/unsigned/mojeek-0.0.2-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/mojeek/unsigned/mojeek-0.0.3-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/mojeek/unsigned/mojeek-0.0.3-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/mojeek/unsigned/mojeek-0.0.4-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/mojeek/unsigned/mojeek-0.0.4-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/mojeek/unsigned/mojeek-0.0.5-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/mojeek/unsigned/mojeek-0.0.5-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/mojeek/unsigned/mojeek-latest-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/mojeek/unsigned/mojeek-latest-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/no-search/no-search-0.0.1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/no-search/no-search-0.0.1.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/no-search/no-search-0.0.2.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/no-search/no-search-0.0.2.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/no-search/no-search-0.0.3.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/no-search/no-search-0.0.3.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/no-search/no-search-0.0.4.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/no-search/no-search-0.0.4.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/no-search/no-search-0.0.5.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/no-search/no-search-0.0.5.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/no-search/no-search-latest.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/no-search/no-search-latest.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/no-search/unsigned/no-search-0.0.2-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/no-search/unsigned/no-search-0.0.2-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/no-search/unsigned/no-search-0.0.3-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/no-search/unsigned/no-search-0.0.3-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/no-search/unsigned/no-search-0.0.4-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/no-search/unsigned/no-search-0.0.4-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/no-search/unsigned/no-search-0.0.5-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/no-search/unsigned/no-search-0.0.5-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/no-search/unsigned/no-search-latest-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/no-search/unsigned/no-search-latest-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/startpage/startpage-0.0.1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/startpage/startpage-0.0.1.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/startpage/startpage-0.0.2.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/startpage/startpage-0.0.2.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/startpage/startpage-0.0.3.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/startpage/startpage-0.0.3.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/startpage/startpage-0.0.4.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/startpage/startpage-0.0.4.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/startpage/startpage-0.0.5.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/startpage/startpage-0.0.5.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/startpage/startpage-latest.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/startpage/startpage-latest.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/startpage/unsigned/startpage-0.0.2-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/startpage/unsigned/startpage-0.0.2-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/startpage/unsigned/startpage-0.0.3-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/startpage/unsigned/startpage-0.0.3-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/startpage/unsigned/startpage-0.0.4-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/startpage/unsigned/startpage-0.0.4-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/startpage/unsigned/startpage-0.0.5-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/startpage/unsigned/startpage-0.0.5-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/startpage/unsigned/startpage-latest-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/startpage/unsigned/startpage-latest-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/swisscows/swisscows-0.0.1.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/swisscows/swisscows-0.0.1.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/swisscows/swisscows-0.0.2.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/swisscows/swisscows-0.0.2.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/swisscows/swisscows-0.0.3.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/swisscows/swisscows-0.0.3.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/swisscows/swisscows-0.0.4.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/swisscows/swisscows-0.0.4.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/swisscows/swisscows-latest.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/swisscows/swisscows-latest.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/swisscows/unsigned/swisscows-0.0.1-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/swisscows/unsigned/swisscows-0.0.1-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/swisscows/unsigned/swisscows-0.0.2-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/swisscows/unsigned/swisscows-0.0.2-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/swisscows/unsigned/swisscows-0.0.3-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/swisscows/unsigned/swisscows-0.0.3-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/swisscows/unsigned/swisscows-0.0.4-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/swisscows/unsigned/swisscows-0.0.4-UNSIGNED.xpi -------------------------------------------------------------------------------- /extensions/xpi/search/swisscows/unsigned/swisscows-latest-UNSIGNED.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/celenityy/Phoenix/33f0058660a7303c5a7d15464a743c8cf82a4a73/extensions/xpi/search/swisscows/unsigned/swisscows-latest-UNSIGNED.xpi -------------------------------------------------------------------------------- /flake.lock: -------------------------------------------------------------------------------- 1 | { 2 | "nodes": { 3 | "nixpkgs": { 4 | "locked": { 5 | "lastModified": 1740560979, 6 | "narHash": "sha256-Vr3Qi346M+8CjedtbyUevIGDZW8LcA1fTG0ugPY/Hic=", 7 | "owner": "nixos", 8 | "repo": "nixpkgs", 9 | "rev": "5135c59491985879812717f4c9fea69604e7f26f", 10 | "type": "github" 11 | }, 12 | "original": { 13 | "owner": "nixos", 14 | "ref": "nixos-unstable", 15 | "repo": "nixpkgs", 16 | "type": "github" 17 | } 18 | }, 19 | "root": { 20 | "inputs": { 21 | "nixpkgs": "nixpkgs" 22 | } 23 | } 24 | }, 25 | "root": "root", 26 | "version": 7 27 | } 28 | -------------------------------------------------------------------------------- /flake.nix: -------------------------------------------------------------------------------- 1 | { 2 | description = "Phoenix: a suite of configurations & advanced modifications for Mozilla Firefox, designed to put the user first - with a focus on privacy, security, freedom, functionality, & usability."; 3 | 4 | inputs = { 5 | nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; 6 | }; 7 | 8 | outputs = 9 | { self, nixpkgs }: 10 | let 11 | inherit (nixpkgs) lib; 12 | forAllSystems = lib.genAttrs lib.systems.flakeExposed; 13 | in 14 | { 15 | nixosModules = { 16 | default = 17 | { 18 | pkgs, 19 | config, 20 | lib, 21 | ... 22 | }: 23 | { 24 | options.programs.firefox.phoenix = { 25 | enable = 26 | lib.mkEnableOption "Enable privacy & security hardening of Firefox using the Phoenix configs" 27 | // { 28 | default = true; 29 | }; 30 | firefoxPackages = lib.mkOption { 31 | type = lib.types.listOf lib.types.str; 32 | default = [ "firefox" ]; 33 | description = "The name of Firefox packages of current pkgs to patch with phoenix config and policy."; 34 | }; 35 | }; 36 | config = 37 | let 38 | cfg = config.programs.firefox.phoenix; 39 | in 40 | lib.mkIf cfg.enable { 41 | assertions = [ 42 | { 43 | assertion = !pkgs.stdenv.isDarwin; 44 | message = "Phoenix module has not been ported to nix-darwin yet. Contributions welcomed."; 45 | } 46 | ]; 47 | environment.etc."firefox/defaults/pref/phoenix-desktop.js".source = 48 | "${pkgs.phoenix}/prefs/phoenix-desktop.js"; 49 | environment.etc."firefox/phoenix/userjs".source = "${pkgs.phoenix}/userjs"; 50 | environment.etc."firefox/phoenix/configs".source = "${pkgs.phoenix}/configs"; 51 | programs.firefox.policies = 52 | (builtins.fromJSON (builtins.readFile "${pkgs.phoenix}/policies.json")).policies; 53 | nixpkgs.overlays = [ 54 | self.overlays.default 55 | ( 56 | final: prev: 57 | builtins.listToAttrs ( 58 | map (p: lib.nameValuePair p (final.withPhoenix prev.${p})) cfg.firefoxPackages 59 | ) 60 | ) 61 | ]; 62 | }; 63 | }; 64 | }; 65 | 66 | packages = forAllSystems ( 67 | system: 68 | let 69 | pkgs = nixpkgs.legacyPackages.${system}.extend self.overlays.default; 70 | in 71 | rec { 72 | default = phoenix; 73 | inherit (pkgs) phoenix; 74 | firefox = pkgs.withPhoenix pkgs.firefox; 75 | } 76 | ); 77 | 78 | overlays = { 79 | default = final: prev: { 80 | phoenix = final.callPackage ( 81 | { 82 | stdenvNoCC, 83 | python3, 84 | jq, 85 | zip, 86 | ... 87 | }: 88 | stdenvNoCC.mkDerivation { 89 | name = "phoenix"; 90 | src = ./.; 91 | nativeBuildInputs = [ 92 | python3 93 | jq 94 | zip 95 | ]; 96 | buildPhase = '' 97 | runHook preBuild 98 | 99 | patchShebangs ./build/*.sh 100 | sed -i '/general.config.filename/d' build/prefs/phoenix-desktop.js 101 | ./build/build.sh 102 | 103 | runHook postBuild 104 | ''; 105 | installPhase = '' 106 | runHook preInstall 107 | 108 | mkdir $out 109 | ${ 110 | if stdenvNoCC.isDarwin then 111 | '' 112 | cp macos/* $out/ 113 | cp -r configs/macos $out/configs 114 | cp -r userjs/macos $out/userjs 115 | '' 116 | else 117 | '' 118 | cp -r policies.json phoenix.cfg prefs configs $out/ 119 | cp -r userjs/linux $out/userjs 120 | '' 121 | } 122 | install -Dm644 COPYING $out/share/doc/phoenix/COPYING 123 | install -Dm644 README.md $out/share/doc/phoenix/README.md 124 | install -Dm644 userjs/README $out/share/doc/phoenix/userjs/README 125 | 126 | runHook postInstall 127 | ''; 128 | } 129 | ) { }; 130 | 131 | wrapFirefox = 132 | browser: args: 133 | (prev.wrapFirefox browser args).overrideAttrs (old: { 134 | nativeBuildInputs = 135 | (old.nativeBuildInputs or [ ]) 136 | ++ (with prev; [ 137 | zip 138 | unzip 139 | gnused 140 | ]); 141 | buildCommand = 142 | '' 143 | export buildRoot="$(pwd)" 144 | '' 145 | + old.buildCommand 146 | # Allows Search Engine Policies on non-ESR builds, 147 | # copied from https://hedgedoc.grimmauld.de/s/rVnTq0-Rs# 148 | + '' 149 | if [ -f $out/lib/firefox/browser/omni.ja ]; then 150 | pushd $buildRoot 151 | unzip $out/lib/firefox/browser/omni.ja -d patched_omni || ret=$? 152 | if [[ $ret && $ret -ne 2 ]]; then 153 | echo "unzip exited with unexpected error" 154 | exit $ret 155 | fi 156 | rm $out/lib/firefox/browser/omni.ja 157 | cd patched_omni 158 | sed -i 's/"enterprise_only"\s*:\s*true,//' modules/policies/schema.sys.mjs 159 | zip -0DXqr $out/lib/firefox/browser/omni.ja * # potentially qr9XD 160 | popd 161 | fi 162 | ''; 163 | }); 164 | 165 | withPhoenix = 166 | firefoxPackage: 167 | firefoxPackage.override { 168 | extraPoliciesFiles = [ "${final.phoenix}/policies.json" ]; 169 | extraPrefsFiles = [ "${final.phoenix}/phoenix.cfg" ]; 170 | }; 171 | }; 172 | }; 173 | 174 | formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.nixfmt-rfc-style); 175 | }; 176 | } 177 | -------------------------------------------------------------------------------- /installer_scripts/macos_env.sh: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | 3 | echo_red_text() { 4 | echo -e "\033[31m$1\033[0m" 5 | } 6 | 7 | 8 | echo_green_text() { 9 | echo -e "\033[32m$1\033[0m" 10 | } 11 | 12 | error_fn() { 13 | echo 14 | echo -e "\033[31mSomething went wrong! The script failed.\033[0m" 15 | echo -e "\033[31mPlease report this (with the output message) to https://phoenix.celenity.dev/issues\033[0m" 16 | echo 17 | exit 1 18 | } 19 | 20 | ## Downloaded files save in /tmp 21 | cd /tmp 22 | 23 | echo_green_text "Welcome!" 24 | echo_red_text "This script will set up environment variables on your system to disable Mozilla's Crash Reporter (for use with Phoenix)." 25 | 26 | echo_green_text "Downloading dev.celenity.phoenix.env.MOZ_CRASHREPORTER_DISABLE.plist..." 27 | curl --cert-status --doh-cert-status --no-insecure --no-proxy-insecure --no-sessionid --no-ssl --no-ssl-allow-beast --no-ssl-auto-client-cert --no-ssl-no-revoke --no-ssl-revoke-best-effort --proto -all,https --proto-default https --proto-redir -all,https --show-error -O -sSL https://gitlab.com/celenityy/Phoenix/-/raw/pages/macos/Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_DISABLE.plist || error_fn 28 | echo 29 | 30 | echo_green_text "Changing permissions of dev.celenity.phoenix.env.MOZ_CRASHREPORTER_DISABLE.plist to 644..." 31 | sudo /bin/chmod -v 644 dev.celenity.phoenix.env.MOZ_CRASHREPORTER_DISABLE.plist || error_fn 32 | echo 33 | 34 | echo_green_text "Copying dev.celenity.phoenix.env.MOZ_CRASHREPORTER_DISABLE.plist to /Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_DISABLE.plist..." 35 | sudo /bin/cp dev.celenity.phoenix.env.MOZ_CRASHREPORTER_DISABLE.plist /Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_DISABLE.plist || error_fn 36 | echo 37 | 38 | echo_green_text "Loading dev.celenity.phoenix.env.MOZ_CRASHREPORTER_DISABLE.plist..." 39 | /bin/launchctl load /Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_DISABLE.plist || error_fn 40 | echo 41 | 42 | echo_green_text "Downloading dev.celenity.phoenix.env.MOZ_CRASHREPORTER_NO_REPORT.plist..." 43 | curl --cert-status --doh-cert-status --no-insecure --no-proxy-insecure --no-sessionid --no-ssl --no-ssl-allow-beast --no-ssl-auto-client-cert --no-ssl-no-revoke --no-ssl-revoke-best-effort --proto -all,https --proto-default https --proto-redir -all,https --show-error -O -sSL https://gitlab.com/celenityy/Phoenix/-/raw/pages/macos/Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_NO_REPORT.plist || error_fn 44 | echo 45 | 46 | echo_green_text "Changing permissions of dev.celenity.phoenix.env.MOZ_CRASHREPORTER_NO_REPORT.plist to 644..." 47 | sudo /bin/chmod -v 644 dev.celenity.phoenix.env.MOZ_CRASHREPORTER_NO_REPORT.plist || error_fn 48 | echo 49 | 50 | echo_green_text "Copying dev.celenity.phoenix.env.MOZ_CRASHREPORTER_NO_REPORT.plist to /Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_NO_REPORT.plist..." 51 | sudo /bin/cp dev.celenity.phoenix.env.MOZ_CRASHREPORTER_NO_REPORT.plist /Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_NO_REPORT.plist || error_fn 52 | echo 53 | 54 | echo_green_text "Loading dev.celenity.phoenix.env.MOZ_CRASHREPORTER_NO_REPORT.plist..." 55 | /bin/launchctl load /Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_NO_REPORT.plist || error_fn 56 | echo 57 | 58 | echo_green_text "Downloading dev.celenity.phoenix.env.MOZ_CRASHREPORTER_URL.plist..." 59 | curl --cert-status --doh-cert-status --no-insecure --no-proxy-insecure --no-sessionid --no-ssl --no-ssl-allow-beast --no-ssl-auto-client-cert --no-ssl-no-revoke --no-ssl-revoke-best-effort --proto -all,https --proto-default https --proto-redir -all,https --show-error -O -sSL https://gitlab.com/celenityy/Phoenix/-/raw/pages/macos/Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_URL.plist || error_fn 60 | echo 61 | 62 | echo_green_text "Changing permissions of dev.celenity.phoenix.env.MOZ_CRASHREPORTER_URL.plist to 644..." 63 | sudo /bin/chmod -v 644 dev.celenity.phoenix.env.MOZ_CRASHREPORTER_URL.plist || error_fn 64 | echo 65 | 66 | echo_green_text "Copying dev.celenity.phoenix.env.MOZ_CRASHREPORTER_URL.plist to /Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_URL.plist..." 67 | sudo /bin/cp dev.celenity.phoenix.env.MOZ_CRASHREPORTER_URL.plist /Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_URL.plist || error_fn 68 | echo 69 | 70 | echo_green_text "Loading dev.celenity.phoenix.env.MOZ_CRASHREPORTER_URL.plist..." 71 | /bin/launchctl load /Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_URL.plist || error_fn 72 | echo 73 | 74 | echo_green_text "All done. :)" 75 | 76 | echo_red_text "Your system will now reboot to apply your new environment variables." 77 | /bin/sleep 5 78 | echo_green_text "Press enter to continue." 79 | read 80 | 81 | sudo /sbin/reboot 82 | -------------------------------------------------------------------------------- /installer_scripts/snap_install.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | 4 | cd /tmp 5 | 6 | 7 | echo_red_text() { 8 | echo -e "\033[31m$1\033[0m" 9 | } 10 | 11 | 12 | echo_green_text() { 13 | echo -e "\033[32m$1\033[0m" 14 | } 15 | 16 | error_fn() { 17 | echo 18 | echo -e "\033[31mSomething went wrong! The script failed.\033[0m" 19 | echo -e "\033[31mPlease report this (with the output message) to https://phoenix.celenity.dev/issues\033[0m" 20 | echo 21 | exit 1 22 | } 23 | 24 | 25 | if [ $(id --user) -ne 0 ]; then 26 | echo_red_text "You must run this script with sudo" 27 | echo 28 | exit 1 29 | fi 30 | 31 | 32 | echo_green_text "Downloading phoenix.cfg..." 33 | wget -nv https://phoenix.celenity.dev/phoenix.cfg || error_fn 34 | echo 35 | 36 | 37 | echo_green_text "Moving phoenix.cfg to /snap/firefox/current/usr/lib/firefox/phoenix.cfg..." 38 | sudo mv -v phoenix.cfg /snap/firefox/current/usr/lib/firefox/phoenix.cfg || error_fn 39 | echo 40 | 41 | 42 | echo_green_text "Downloading phoenix.js..." 43 | wget -nv https://phoenix.celenity.dev/defaults/pref/phoenix.js || error_fn 44 | echo 45 | 46 | 47 | echo_green_text "Creating /etc/firefox/defaults/pref directory..." 48 | sudo mkdir -v -p /etc/firefox/defaults/pref || error_fn 49 | echo 50 | 51 | echo_green_text "Changing permissions of /etc/firefox/defaults/pref to 655..." 52 | sudo chmod -v 655 /etc/firefox/defaults/pref || error_fn 53 | echo 54 | 55 | 56 | echo_green_text "Moving phoenix.js to /etc/firefox/defaults/pref/phoenix.js..." 57 | sudo mv -v phoenix.js /etc/firefox/defaults/pref/phoenix.js || error_fn 58 | echo 59 | 60 | 61 | echo_green_text "Installing the lsb-release dependency if not already installed..." 62 | sudo apt install lsb-release || error_fn 63 | echo 64 | 65 | echo_green_text "Adding Prebuilt MPR repo if not already installed..." 66 | curl -q 'https://proget.makedeb.org/debian-feeds/prebuilt-mpr.pub' | gpg --dearmor | sudo tee /usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg 1> /dev/null 67 | echo "deb [signed-by=/usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg] https://proget.makedeb.org prebuilt-mpr $(lsb_release -cs)" | sudo tee /etc/apt/sources.list.d/prebuilt-mpr.list 68 | echo 69 | 70 | echo_green_text "Updating APT cache..." 71 | sudo apt update || error_fn 72 | echo 73 | 74 | 75 | echo_green_text "Installing phoenix-policies package..." 76 | sudo apt install phoenix-policies || error_fn 77 | echo 78 | 79 | 80 | echo_green_text "All done. :) Congratulations, you've successfully installed Phoenix.\nWhat comes next is for you to decide. I would strongly recommend taking a look at some of the user.js files we offer, such as our 'Hardened' option for more comprehensive protection, at the cost of minimal breakage.\nYou can learn more here https://phoenix.celenity.dev/#complete-coverage.\n" 81 | -------------------------------------------------------------------------------- /installer_scripts/windows_install.ps1: -------------------------------------------------------------------------------- 1 | $mozillaCfgUrl = "https://phoenix.celenity.dev/phoenix.cfg" 2 | $localSettingsJsUrl = "https://phoenix.celenity.dev/defaults/pref/local-settings.js" 3 | $mozillaCfgPath = "C:\Program Files\Mozilla Firefox\phoenix.cfg" 4 | $localSettingsJsPath = "C:\Program Files\Mozilla Firefox\defaults\pref\phoenix.js" 5 | 6 | 7 | Invoke-WebRequest -Uri $mozillaCfgUrl -OutFile $mozillaCfgPath 8 | 9 | $defaultsPrefDir = "C:\Program Files\Mozilla Firefox\defaults\pref" 10 | if (-not (Test-Path -Path $defaultsPrefDir)) { 11 | New-Item -ItemType Directory -Path $defaultsPrefDir -Force 12 | } 13 | 14 | Invoke-WebRequest -Uri $localSettingsJsUrl -OutFile $localSettingsJsPath 15 | 16 | choco upgrade all 17 | 18 | choco install phoenix-policies 19 | 20 | printf "All done. :) Congratulations, you've successfully installed Phoenix.\nWhat comes next is for you to decide. I would strongly recommend taking a look at some of the user.js files we offer, such as our 'Hardened' option for more comprehensive protection, at the cost of minimal breakage.\nYou can grab them from here https://codeberg.org/Magnesium1062/Phoenix/src/branch/main/configs. Just drag the user.js under the config of your choice to your profile directory, and enjoy.\n" -------------------------------------------------------------------------------- /macos/Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_DISABLE.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Label 6 | dev.celenity.phoenix.env.MOZ_CRASHREPORTER_DISABLE 7 | ProgramArguments 8 | 9 | /bin/launchctl 10 | setenv 11 | MOZ_CRASHREPORTER_DISABLE 12 | 1 13 | 14 | RunAtLoad 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /macos/Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_NO_REPORT.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Label 6 | dev.celenity.phoenix.env.MOZ_CRASHREPORTER_NO_REPORT 7 | ProgramArguments 8 | 9 | /bin/launchctl 10 | setenv 11 | MOZ_CRASHREPORTER_NO_REPORT 12 | 1 13 | 14 | RunAtLoad 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /macos/Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_URL.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Label 6 | dev.celenity.phoenix.env.MOZ_CRASHREPORTER_URL 7 | ProgramArguments 8 | 9 | /bin/launchctl 10 | setenv 11 | MOZ_CRASHREPORTER_URL 12 | data; 13 | 14 | RunAtLoad 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /macos/Library/LaunchDaemons/dev.celenity.phoenix.apply.intel.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Label 6 | dev.celenity.phoenix.apply.intel 7 | ProgramArguments 8 | 9 | /Library/celenity/Phoenix/phoenix-apply-intel.sh 10 | 11 | RunAtLoad 12 | 13 | StartInterval 14 | 14400 15 | 16 | 17 | -------------------------------------------------------------------------------- /macos/Library/LaunchDaemons/dev.celenity.phoenix.apply.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Label 6 | dev.celenity.phoenix.apply 7 | ProgramArguments 8 | 9 | /Library/celenity/Phoenix/phoenix-apply.sh 10 | 11 | RunAtLoad 12 | 13 | StartInterval 14 | 14400 15 | 16 | 17 | -------------------------------------------------------------------------------- /macos/Library/celenity/Phoenix/phoenix-apply-intel.sh: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | 3 | /bin/sleep 5 4 | /bin/cp '/usr/local/opt/phoenix-osx/macos/org.mozilla.firefox.plist' '/Library/Preferences/' 5 | -------------------------------------------------------------------------------- /macos/Library/celenity/Phoenix/phoenix-apply.sh: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | 3 | /bin/sleep 5 4 | /bin/cp '/opt/homebrew/opt/phoenix-osx/macos/org.mozilla.firefox.plist' '/Library/Preferences/' 5 | -------------------------------------------------------------------------------- /macos/defaults/pref/phoenix-bootstrap.js: -------------------------------------------------------------------------------- 1 | // 2 | // The Phoenix shall rise from the ashes of what fell before it. 3 | 4 | pref("general.config.sandbox_enabled", true, locked); 5 | 6 | pref("general.config.filename", "phoenix-bootstrap.cfg"); 7 | pref("general.config.obscure_value", 0); 8 | -------------------------------------------------------------------------------- /macos/intel/phoenix-bootstrap.cfg: -------------------------------------------------------------------------------- 1 | // 2 | // The Phoenix shall rise from the ashes of what fell before it. 3 | 4 | lockPref("general.config.sandbox_enabled", true); 5 | 6 | defaultPref("autoadmin.failover_to_cached", true); 7 | defaultPref("autoadmin.offline_failover", true); 8 | defaultPref("autoadmin.refresh_interval", 60); 9 | 10 | lockPref("autoadmin.append_emailaddr", false); // [HIDDEN] 11 | 12 | defaultPref("autoadmin.global_config_url", "file:///usr/local/opt/phoenix-osx/macos/phoenix.cfg"); 13 | -------------------------------------------------------------------------------- /macos/migration/system.sh: -------------------------------------------------------------------------------- 1 | 2 | #!/bin/zsh 3 | 4 | echo_red_text() { 5 | echo -e "\033[31m$1\033[0m" 6 | } 7 | 8 | 9 | echo_green_text() { 10 | echo -e "\033[32m$1\033[0m" 11 | } 12 | 13 | error_fn() { 14 | echo 15 | echo -e "\033[31mSomething went wrong! The script failed.\033[0m" 16 | echo -e "\033[31mPlease report this (with the output message) to https://phoenix.celenity.dev/issues\033[0m" 17 | echo 18 | exit 1 19 | } 20 | 21 | echo_green_text "Welcome to the Phoenix (System) migration script for macOS!" 22 | echo_red_text "Before proceeding: You MUST grant your Terminal the 'App Management' permission by navigating to 'System Settings' -> 'Privacy & Security' -> 'App Management'" 23 | echo_red_text "This is ONLY required for the initial migration/installation of Phoenix, and you are strongly recommended to revoke the 'App Management' permission once you are done." 24 | /bin/sleep 5 25 | open /System/Applications/'System Settings'.app 26 | /bin/sleep 5 27 | echo_red_text "Press enter to continue." 28 | read 29 | 30 | ## Prepare Phoenix 31 | echo_green_text "Removing the legacy 'phoenix.cfg'..." 32 | sudo /bin/rm -f /Applications/Firefox.app/Contents/Resources/phoenix.cfg || error_fn 33 | echo 34 | 35 | echo_green_text "Removing the legacy 'phoenix-desktop.js'..." 36 | sudo /bin/rm -f /Applications/Firefox.app/Contents/Resources/defaults/pref/phoenix-desktop.js || error_fn 37 | echo 38 | 39 | echo_green_text "Removing the legacy 'policies.json'..." 40 | sudo /bin/rm -f /Applications/Firefox.app/Contents/Resources/distribution/policies.json || error_fn 41 | echo 42 | 43 | echo_green_text "Success! You're now ready to run the new Phoenix installation script for macOS. :D" 44 | -------------------------------------------------------------------------------- /macos/migration/user.sh: -------------------------------------------------------------------------------- 1 | 2 | #!/bin/zsh 3 | 4 | echo_red_text() { 5 | echo -e "\033[31m$1\033[0m" 6 | } 7 | 8 | 9 | echo_green_text() { 10 | echo -e "\033[32m$1\033[0m" 11 | } 12 | 13 | error_fn() { 14 | echo 15 | echo -e "\033[31mSomething went wrong! The script failed.\033[0m" 16 | echo -e "\033[31mPlease report this (with the output message) to https://phoenix.celenity.dev/issues\033[0m" 17 | echo 18 | exit 1 19 | } 20 | 21 | echo_green_text "Welcome to the Phoenix (User) migration script for macOS!" 22 | echo_red_text "Before proceeding: You MUST grant your Terminal the 'App Management' permission by navigating to 'System Settings' -> 'Privacy & Security' -> 'App Management'" 23 | echo_red_text "This is ONLY required for the initial migration/installation of Phoenix, and you are strongly recommended to revoke the 'App Management' permission once you are done." 24 | /bin/sleep 5 25 | open /System/Applications/'System Settings'.app 26 | /bin/sleep 5 27 | echo_red_text "Press enter to continue." 28 | read 29 | 30 | ## Prepare Phoenix 31 | echo_green_text "Removing the legacy 'phoenix-osx-user' package..." 32 | brew remove -v phoenix-osx-user || error_fn 33 | echo 34 | 35 | echo_green_text "Removing the legacy 'phoenix.cfg'..." 36 | /bin/rm -f ~/Applications/Firefox.app/Contents/Resources/phoenix.cfg || error_fn 37 | echo 38 | 39 | echo_green_text "Removing the legacy 'phoenix-desktop.js'..." 40 | /bin/rm -f ~/Applications/Firefox.app/Contents/Resources/defaults/pref/phoenix-desktop.js || error_fn 41 | echo 42 | 43 | echo_green_text "Removing the legacy 'policies.json'..." 44 | /bin/rm -f ~/Applications/Firefox.app/Contents/Resources/distribution/policies.json || error_fn 45 | echo 46 | 47 | echo_green_text "Success! You're now ready to run the new Phoenix installation script for macOS. :D" 48 | -------------------------------------------------------------------------------- /macos/phoenix-bootstrap.cfg: -------------------------------------------------------------------------------- 1 | // 2 | // The Phoenix shall rise from the ashes of what fell before it. 3 | 4 | lockPref("general.config.sandbox_enabled", true); 5 | 6 | defaultPref("autoadmin.failover_to_cached", true); 7 | defaultPref("autoadmin.offline_failover", true); 8 | defaultPref("autoadmin.refresh_interval", 60); 9 | 10 | lockPref("autoadmin.append_emailaddr", false); // [HIDDEN] 11 | 12 | defaultPref("autoadmin.global_config_url", "file:///opt/homebrew/opt/phoenix-osx/macos/phoenix.cfg"); 13 | -------------------------------------------------------------------------------- /phoenix.cfg: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2024-2025 celenity 3 | // 4 | // This file is part of Phoenix. 5 | // 6 | // Phoenix is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 7 | // 8 | // Phoenix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 9 | // 10 | // You should have received a copy of the GNU General Public License along with Phoenix. If not, see https://www.gnu.org/licenses/. 11 | // 12 | 13 | // This file is required for Firefox to recognize our `Extended`/specialized configs, and it should be kept to a bare minimum. 14 | // The below prefs are included as it's unfortunately not possible to set `user` prefs from `phoenix.js` on GNU/Linux, and these can't be set with policies. :( 15 | // See `phoenix.js` for info on these prefs/why they're included. 16 | 17 | pref("devtools.debugger.remote-enabled", false); 18 | pref("xpinstall.enabled", false); 19 | -------------------------------------------------------------------------------- /prefs/phoenix-extended-android.js: -------------------------------------------------------------------------------- 1 | 2 | // 3 | 4 | // 5 | // Copyright (C) 2024-2025 celenity 6 | // 7 | // This file is part of Phoenix. 8 | // 9 | // Phoenix is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 10 | // 11 | // Phoenix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | // 13 | // You should have received a copy of the GNU General Public License along with Phoenix. If not, see https://www.gnu.org/licenses/. 14 | // 15 | 16 | // This file contains preferences shared across Phoenix 'Extended' configs. 17 | 18 | /* INDEX 19 | 20 | 001: WEBRTC 21 | 002: ATTACK SURFACE REDUCTION 22 | 003: MISC. PRIVACY 23 | 004: MISC. 24 | 25 | */ 26 | 27 | /*** 001 WEBRTC ***/ 28 | // This will likely break WebRTC... 29 | 30 | /// Always exclude local IP addresses, even in trusted scenarios 31 | pref("media.peerconnection.ice.no_host", true); 32 | 33 | /// Force a single candidate for ICE generation 34 | pref("media.peerconnection.ice.default_address_only", true); 35 | 36 | /// Only use TURN servers/relays 37 | // No P2P 38 | // https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/issues/40#note_2884663 39 | pref("media.peerconnection.ice.relay_only", true); 40 | 41 | pref("browser.phoenix.status.extended", "001"); 42 | 43 | /*** 002 ATTACK SURFACE REDUCTION ***/ 44 | 45 | /// Disable WebAssembly (WASM) 46 | // https://spectrum.ieee.org/more-worries-over-the-security-of-web-assembly 47 | pref("javascript.options.wasm", false); 48 | 49 | pref("browser.phoenix.status.extended", "002"); 50 | 51 | /*** 003 MISC. PRIVACY ***/ 52 | 53 | /// Only send cross-origin referers if hosts match 54 | // https://wiki.mozilla.org/Security/Referrer 55 | pref("network.http.referer.XOriginPolicy", 2); 56 | 57 | pref("browser.phoenix.status.extended", "003"); 58 | 59 | pref("browser.phoenix.status.extended", "successfully applied :D", locked); 60 | 61 | 62 | // 63 | 64 | // 65 | // Copyright (C) 2024-2025 celenity 66 | // 67 | // This file is part of Phoenix. 68 | // 69 | // Phoenix is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 70 | // 71 | // Phoenix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 72 | // 73 | // You should have received a copy of the GNU General Public License along with Phoenix. If not, see https://www.gnu.org/licenses/. 74 | // 75 | 76 | // This file contains preferences specific to Phoenix (Extended) on Android. 77 | 78 | /* INDEX 79 | 80 | 001: FINGERPRINTING PROTECTION 81 | 82 | */ 83 | 84 | /*** 001 FINGERPRINTING PROTECTION ***/ 85 | 86 | /// Further harden FPP... 87 | // As explained here: https://codeberg.org/celenity/Phoenix/wiki/Extended#fingerprinting 88 | // Compared to standard, this just removes '-JSDateTimeUTC' - meaning timezone is spoofed to UTC-0 89 | pref("privacy.fingerprintingProtection.overrides", "+AllTargets,-CanvasImageExtractionPrompt,-CanvasExtractionBeforeUserInputIsBlocked,-CSSPrefersColorScheme,-FrameRate,-JSLocale"); 90 | 91 | pref("browser.phoenix.status.extended.android", "001"); 92 | 93 | /*** 002 MISC. PRIVACY + SECURITY ***/ 94 | 95 | /// Disable WebGL 96 | // PRIVACY: Fingerprinting concerns 97 | // SECURITY: Attack Surface Reduction 98 | // https://blog.browserscan.net/docs/webgl-fingerprinting 99 | // https://security.stackexchange.com/questions/13799/is-webgl-a-security-concern 100 | // On desktop we're no longer setting/recommending this in favor of the built-in `Block WebGL` filterlist in uBlock Origin (and I'm sure we'll also override this on IronFox once we get our custom config working...), but on Android we can't control uBlock Origin/set policies, so let's make sure this is disabled. 101 | pref("webgl.disabled", true); 102 | 103 | pref("browser.phoenix.status.extended.android", "002"); 104 | 105 | pref("browser.phoenix.status.extended.android", "successfully applied :D", locked); 106 | 107 | -------------------------------------------------------------------------------- /prefs/phoenix-extended-desktop.js: -------------------------------------------------------------------------------- 1 | 2 | // 3 | 4 | // 5 | // Copyright (C) 2024-2025 celenity 6 | // 7 | // This file is part of Phoenix. 8 | // 9 | // Phoenix is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 10 | // 11 | // Phoenix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | // 13 | // You should have received a copy of the GNU General Public License along with Phoenix. If not, see https://www.gnu.org/licenses/. 14 | // 15 | 16 | // This file contains preferences shared across Phoenix 'Extended' configs. 17 | 18 | /* INDEX 19 | 20 | 001: WEBRTC 21 | 002: ATTACK SURFACE REDUCTION 22 | 003: MISC. PRIVACY 23 | 004: MISC. 24 | 25 | */ 26 | 27 | /*** 001 WEBRTC ***/ 28 | // This will likely break WebRTC... 29 | 30 | /// Always exclude local IP addresses, even in trusted scenarios 31 | pref("media.peerconnection.ice.no_host", true); 32 | 33 | /// Force a single candidate for ICE generation 34 | pref("media.peerconnection.ice.default_address_only", true); 35 | 36 | /// Only use TURN servers/relays 37 | // No P2P 38 | // https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/issues/40#note_2884663 39 | pref("media.peerconnection.ice.relay_only", true); 40 | 41 | pref("browser.phoenix.status.extended", "001"); 42 | 43 | /*** 002 ATTACK SURFACE REDUCTION ***/ 44 | 45 | /// Disable WebAssembly (WASM) 46 | // https://spectrum.ieee.org/more-worries-over-the-security-of-web-assembly 47 | pref("javascript.options.wasm", false); 48 | 49 | pref("browser.phoenix.status.extended", "002"); 50 | 51 | /*** 003 MISC. PRIVACY ***/ 52 | 53 | /// Only send cross-origin referers if hosts match 54 | // https://wiki.mozilla.org/Security/Referrer 55 | pref("network.http.referer.XOriginPolicy", 2); 56 | 57 | pref("browser.phoenix.status.extended", "003"); 58 | 59 | pref("browser.phoenix.status.extended", "successfully applied :D", locked); 60 | 61 | 62 | // 63 | 64 | // 65 | // Copyright (C) 2024-2025 celenity 66 | // 67 | // This file is part of Phoenix. 68 | // 69 | // Phoenix is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 70 | // 71 | // Phoenix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 72 | // 73 | // You should have received a copy of the GNU General Public License along with Phoenix. If not, see https://www.gnu.org/licenses/. 74 | // 75 | 76 | // This file contains preferences specific to Phoenix (Extended) on Desktop. 77 | 78 | /// Add custom branding under `Firefox Updates` at `about:preferences#general` 79 | // This will unfortunately only display if the version of Firefox you're using is repackaged (ex. Flatpaks/Linux distros) 80 | pref("distribution.about", "Phoenix: Extended for Mozilla Firefox - 2025.05.11.1 💜", locked); 81 | 82 | /* INDEX 83 | 84 | 001: FINGERPRINTING PROTECTION 85 | 86 | */ 87 | 88 | /*** 001 FINGERPRINTING PROTECTION ***/ 89 | 90 | /// Enable dynamic rounding of content dimensions 91 | // https://bugzilla.mozilla.org/show_bug.cgi?id=1407366 92 | pref("privacy.resistFingerprinting.letterboxing", true); 93 | 94 | /// Further harden FPP... 95 | // As explained here: https://codeberg.org/celenity/Phoenix/wiki/Extended#fingerprinting 96 | // Compared to standard, this just removes '-JSDateTimeUTC' - meaning timezone is spoofed to UTC-0 97 | pref("privacy.fingerprintingProtection.overrides", "+AllTargets,-CanvasExtractionBeforeUserInputIsBlocked,-CSSPrefersColorScheme,-FrameRate,-JSLocale"); 98 | 99 | pref("browser.phoenix.status.extended.desktop", "successfully applied :D", locked); 100 | 101 | -------------------------------------------------------------------------------- /uBlock/beacon.txt: -------------------------------------------------------------------------------- 1 | ! Title: Beacon API Stub 2 | ! Version: 27March2025v1 3 | ! Expires: 12 hours 4 | ! Homepage: https://phoenix.celenity.dev 5 | 6 | ! For context, we currently disable the Beacon API (beacon.enabled), due to privacy concerns (This API's explicit purpose is to be used for analytics/tracking...), and to provide additional attack surface reduction. 7 | ! https://developer.mozilla.org/docs/Web/API/Beacon_API 8 | ! https://developer.mozilla.org/docs/Web/API/Navigator/sendBeacon 9 | ! https://udn.realityripple.com/docs/Web/API/Navigator/sendBeacon 10 | ! https://w3c.github.io/beacon/#privacy-and-security 11 | ! https://bugzilla.mozilla.org/show_bug.cgi?id=1454252 12 | 13 | ! This basic list spoofs the value of this API (navigator.sendBeacon()) to always return "true" (even though we disable it). 14 | ! https://github.com/gorhill/uBlock/wiki/Resources-Library#set-constantjs- 15 | 16 | ! This is beneficial for a few reasons: 17 | ! 1. Reduces breakage - ex. www.perplexity.ai (https://gitlab.com/ironfox-oss/IronFox/-/issues/43). 18 | ! 2. Protects against fingerprinting - We no longer stick out from stock Firefox by disabling this. 19 | ! 3. Breaks trackers - A lot of trackers will fallback to other methods of sending data if this API is unavailable (though a lot also don't...), this prevents those trackers from falling back by making them think they're successfully sending data with Beacon (when they're not, as we've actually disabled the API... you can verify this via the web console/uBlock Origin's logger/etc.). 20 | 21 | *##+js(set, navigator.sendBeacon, trueFunc) 22 | -------------------------------------------------------------------------------- /uBlock/quick-fixes.txt: -------------------------------------------------------------------------------- 1 | ! Title: Phoenix - Quick fixes 2 | ! Version: 16May2025v1 3 | ! Expires: 12 hours 4 | ! Homepage: https://phoenix.celenity.dev 5 | 6 | ! The goal of the list will be to fix/workaround issues caused by our uBlock Origin config/default filterlists until they're fixed by their respective authors upstream. 7 | ! Rules here should be TEMPORARY, and will be removed once the issue is corrected. 8 | 9 | !! https://github.com/easylist/easylist/issues/21811 10 | !!! EasyList 11 | getconnected.southwestwifi.com#@##adModal 12 | 13 | !! https://github.com/easylist/easylist/issues/21710 14 | !!! EasyList - Newsletter Notices 15 | redmagic.gg#@##subscribe_popup 16 | -------------------------------------------------------------------------------- /uBlock/stub-trusted-scriptlets.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /// trusted-click-element.js 4 | /// world ISOLATED 5 | (function(){})(); 6 | 7 | /// trusted-override-element-method.js 8 | /// world ISOLATED 9 | (function(){})(); 10 | 11 | /// trusted-prevent-dom-bypass.js 12 | /// world ISOLATED 13 | (function(){})(); 14 | 15 | /// trusted-prevent-xhr.js 16 | /// world ISOLATED 17 | (function(){})(); 18 | 19 | /// trusted-replace-argument.js 20 | /// world ISOLATED 21 | (function(){})(); 22 | 23 | /// trusted-replace-fetch-response.js 24 | /// world ISOLATED 25 | /// alias trusted-rpfr.js 26 | (function(){})(); 27 | 28 | /// trusted-replace-node-text.js 29 | /// world ISOLATED 30 | /// alias trusted-rpnt.js 31 | /// alias replace-node-text.js 32 | /// alias rpnt.js 33 | (function(){})(); 34 | 35 | /// trusted-replace-outbound-text.js 36 | /// alias trusted-rpot.js 37 | /// world ISOLATED 38 | (function(){})(); 39 | 40 | /// trusted-replace-xhr-response.js 41 | /// world ISOLATED 42 | (function(){})(); 43 | 44 | /// trusted-set-attr.js 45 | /// world ISOLATED 46 | (function(){})(); 47 | 48 | /// trusted-set-constant.js 49 | /// world ISOLATED 50 | (function(){})(); 51 | 52 | /// trusted-set-cookie.js 53 | /// world ISOLATED 54 | (function(){})(); 55 | 56 | /// trusted-set-cookie-reload.js 57 | /// world ISOLATED 58 | (function(){})(); 59 | 60 | /// trusted-set-local-storage-item.js 61 | /// world ISOLATED 62 | (function(){})(); 63 | 64 | /// trusted-set-session-storage-item.js 65 | /// world ISOLATED 66 | (function(){})(); 67 | 68 | /// trusted-suppress-native-method.js 69 | /// world ISOLATED 70 | (function(){})(); 71 | -------------------------------------------------------------------------------- /uninstaller_scripts/macos_uninstall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | 3 | ## Functions 4 | echo_red_text() { 5 | echo -e "\033[31m$1\033[0m" 6 | } 7 | 8 | echo_green_text() { 9 | echo -e "\033[32m$1\033[0m" 10 | } 11 | 12 | error_fn() { 13 | echo 14 | echo -e "\033[31mSomething went wrong! The script failed.\033[0m" 15 | echo -e "\033[31mPlease report this (with the output message) to https://phoenix.celenity.dev/issues\033[0m" 16 | echo 17 | exit 1 18 | } 19 | 20 | ## Downloaded files save in /tmp 21 | cd /tmp 22 | 23 | echo_green_text "Welcome to the Phoenix Uninstaller for macOS!" 24 | echo_red_text "Sorry to see you go :(" 25 | echo_red_text "Before proceeding: You MUST grant your Terminal the 'App Management' permission by navigating to 'System Settings' -> 'Privacy & Security' -> 'App Management'" 26 | echo_red_text "You are strongly recommended to revoke the 'App Management' permission once you are done." 27 | echo_green_text "If you are unable/unwilling to grant your Terminal this permission, you can remove the files manually as laid out here: https://phoenix.celenity.dev#manual-installation." 28 | /bin/sleep 5 29 | /usr/bin/open /System/Applications/'System Settings'.app 30 | /bin/sleep 5 31 | echo_red_text "Press enter to continue." 32 | read 33 | 34 | ## Uninstall Phoenix 35 | echo_green_text "Unloading dev.celenity.phoenix.env.MOZ_CRASHREPORTER_DISABLE.plist..." 36 | /bin/launchctl unload /Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_DISABLE.plist || error_fn 37 | echo 38 | 39 | echo_green_text "Removing dev.celenity.phoenix.env.MOZ_CRASHREPORTER_DISABLE.plist..." 40 | sudo /bin/rm -f /Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_DISABLE.plist || error_fn 41 | echo 42 | 43 | echo_green_text "Unloading dev.celenity.phoenix.env.MOZ_CRASHREPORTER_NO_REPORT.plist..." 44 | /bin/launchctl unload /Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_NO_REPORT.plist || error_fn 45 | echo 46 | 47 | echo_green_text "Removing dev.celenity.phoenix.env.MOZ_CRASHREPORTER_NO_REPORT.plist..." 48 | sudo /bin/rm -f /Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_NO_REPORT.plist || error_fn 49 | echo 50 | 51 | echo_green_text "Unloading dev.celenity.phoenix.env.MOZ_CRASHREPORTER_URL.plist..." 52 | /bin/launchctl unload /Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_URL.plist || error_fn 53 | echo 54 | 55 | echo_green_text "Removing dev.celenity.phoenix.env.MOZ_CRASHREPORTER_URL.plist..." 56 | sudo /bin/rm -f /Library/LaunchAgents/dev.celenity.phoenix.env.MOZ_CRASHREPORTER_URL.plist || error_fn 57 | echo 58 | 59 | echo_green_text "Removing the /Library/celenity/Phoenix directory..." 60 | sudo /bin/rm -rf /Library/celenity/Phoenix || error_fn 61 | echo 62 | 63 | echo_green_text "Removing org.mozilla.firefox.plist..." 64 | sudo /bin/rm -f /Library/Preferences/org.mozilla.firefox.plist || error_fn 65 | echo 66 | sudo /bin/rm -f "${HOME}/Library/Preferences/org.mozilla.firefox.plist" || error_fn 67 | echo 68 | 69 | echo_green_text "Uninstalling phoenix-osx..." 70 | brew uninstall phoenix-osx || error_fn 71 | echo 72 | 73 | read "RESULT?Would you also like to remove celenity's Homebrew Tap? [Y/n] " 74 | echo 75 | case ${RESULT} in 76 | 77 | "y" | "yes" | "YES" | "Y") 78 | echo_green_text "Removing celenity's Tap..." 79 | brew untap celenity/tap || error_fn 80 | echo 81 | 82 | echo_green_text "Updating Homebrew cache..." 83 | brew update && brew upgrade --force --verbose || error_fn 84 | echo 85 | ;; 86 | 87 | "n" | "no" | "N" | "NO") 88 | ;; 89 | esac 90 | 91 | echo -e "" 92 | echo_green_text "Are you using an Apple Silicon (M-series chip) or Intel device?"; 93 | echo_green_text "Your options are:"; 94 | echo_red_text "1. Silicon"; 95 | echo_green_text "2. Intel"; 96 | read "DEVICETYPE?Please enter your selection: " 97 | case ${DEVICETYPE} in 98 | "apple" | "Apple" | "APPLE" | "silicon" | "Silicon" | "SILICON" | 1) 99 | echo_green_text "Unloading dev.celenity.phoenix.apply.plist..." 100 | sudo /bin/launchctl unload -w /Library/LaunchDaemons/dev.celenity.phoenix.apply.plist || error_fn 101 | echo 102 | 103 | echo_green_text "Removing dev.celenity.phoenix.apply.plist..." 104 | sudo /bin/rm -f /Library/LaunchDaemons/dev.celenity.phoenix.apply.plist || error_fn 105 | echo 106 | ;; 107 | 108 | "intel" | "Intel" | "INTEL" | 2) 109 | echo_green_text "Unloading dev.celenity.phoenix.apply.intel.plist..." 110 | sudo /bin/launchctl unload -w /Library/LaunchDaemons/dev.celenity.phoenix.apply.intel.plist || error_fn 111 | echo 112 | 113 | echo_green_text "Removing dev.celenity.phoenix.apply.intel.plist..." 114 | sudo /bin/rm -f /Library/LaunchDaemons/dev.celenity.phoenix.apply.intel.plist || error_fn 115 | echo 116 | ;; 117 | esac 118 | 119 | echo -e "" 120 | echo_green_text "Where is your installation of Firefox located?"; 121 | echo_green_text "Your options are:"; 122 | echo_red_text "1. system - /Applications/Firefox.app"; 123 | echo_green_text "2. user - ${HOME}/Applications/Firefox.app"; 124 | read "LOCATION?Please enter your selection: " 125 | case ${LOCATION} in 126 | "system" | "System" | "SYSTEM" | 1) 127 | echo_green_text "Removing phoenix-bootstrap.js..." 128 | sudo /bin/rm -f /Applications/Firefox.app/Contents/Resources/defaults/pref/phoenix-bootstrap.js || error_fn 129 | echo 130 | 131 | echo_green_text "Removing phoenix-bootstrap.cfg..." 132 | sudo /bin/rm -f /Applications/Firefox.app/Contents/Resources/phoenix-bootstrap.cfg || error_fn 133 | echo 134 | ;; 135 | 136 | "user" | "User" | "USER" | 2) 137 | echo_green_text "Removing phoenix-bootstrap.js..." 138 | /bin/rm -f "${HOME}/Applications/Firefox.app/Contents/Resources/defaults/pref/phoenix-bootstrap.js" || error_fn 139 | echo 140 | 141 | echo_green_text "Removing phoenix-bootstrap.cfg..." 142 | /bin/rm -f "${HOME}/Applications/Firefox.app/Contents/Resources/phoenix-bootstrap.cfg" || error_fn 143 | echo 144 | ;; 145 | esac 146 | 147 | echo_red_text "You must now revoke the 'App Management' permission from your Terminal by navigating to 'System Settings' -> 'Privacy & Security' -> 'App Management'" 148 | echo_green_text "PLEASE SELECT 'Later' WHEN IT ASKS YOU TO QUIT AND RE-OPEN YOUR TERMINAL..." 149 | /bin/sleep 5 150 | /usr/bin/open /System/Applications/'System Settings'.app 151 | /bin/sleep 5 152 | echo_green_text "Press enter to continue once you are finished." 153 | read 154 | 155 | echo_green_text "Thanks for giving Phoenix a shot. Sorry to see you go :(." 156 | echo_green_text "Please leave feedback on how we can improve! https://phoenix.celenity.dev/issues" 157 | 158 | echo_red_text "Your system will now reboot to finalize your uninstallation." 159 | /bin/sleep 5 160 | echo_green_text "Press enter to continue." 161 | read 162 | 163 | sudo /sbin/reboot 164 | -------------------------------------------------------------------------------- /uninstaller_scripts/snap_uninstall.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | 4 | echo_red_text() { 5 | echo -e "\033[31m$1\033[0m" 6 | } 7 | 8 | 9 | echo_green_text() { 10 | echo -e "\033[32m$1\033[0m" 11 | } 12 | 13 | error_fn() { 14 | echo 15 | echo -e "\033[31mSomething went wrong! The script failed.\033[0m" 16 | echo -e "\033[31mPlease report this (with the output message) to https://phoenix.celenity.dev/issues\033[0m" 17 | echo 18 | exit 1 19 | } 20 | 21 | ## Uninstall Phoenix 22 | echo_green_text "Removing phoenix.cfg..." 23 | sudo rm -f /snap/firefox/current/usr/lib/firefox/phoenix.cfg || error_fn 24 | echo 25 | 26 | echo_green_text "Removing phoenix.js..." 27 | sudo rm -f /etc/firefox/defaults/pref/phoenix.js || error_fn 28 | echo 29 | 30 | echo_green_text "Removing legacy mozilla.cfg if installed..." 31 | sudo rm -f /snap/firefox/current/usr/lib/firefox/mozilla.cfg || error_fn 32 | echo 33 | 34 | echo_green_text "Removing legacy local-settings.js if installed..." 35 | sudo rm -f /snap/firefox/current/usr/lib/firefox/defaults/pref/local-settings.js || error_fn 36 | echo 37 | 38 | echo_green_text "Uninstalling phoenix-policies" 39 | sudo apt remove phoenix-policies || error_fn 40 | echo 41 | 42 | echo_green_text "Updating APT cache" 43 | sudo apt update || error_fn 44 | echo 45 | 46 | 47 | echo_green_text "Thanks for giving Phoenix a shot. Sorry to see you go :(. Please leave feedback on how we can improve! https://phoenix.celenity.dev/issues" 48 | -------------------------------------------------------------------------------- /user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file://put_your_cfg_file_location_here"); -------------------------------------------------------------------------------- /userjs/README: -------------------------------------------------------------------------------- 1 | # user.js 2 | 3 | This is a directory containing user.js files for Phoenix overrides/specialized configs, such as `Extended`. If you want to use the override/specialized config in your profile, simply copy and paste the corresponding user.js file into your Firefox profile's directory. The user.js file itself does not need to be updated, as it will always pull the latest config file locally from Phoenix's installation folder. 4 | -------------------------------------------------------------------------------- /userjs/flatpak/apple-maps/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///app/etc/firefox/phoenix/configs/apple-maps.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/flatpak/discord/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///app/etc/firefox/phoenix/configs/discord.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/flatpak/element/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///app/etc/firefox/phoenix/configs/element.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/flatpak/extended/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///app/etc/firefox/phoenix/configs/hardened.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/flatpak/google-maps/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///app/etc/firefox/phoenix/configs/google-maps.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/flatpak/twitter/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///app/etc/firefox/phoenix/configs/"); 2 | -------------------------------------------------------------------------------- /userjs/flatpak/ui-fix-base/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///app/etc/firefox/phoenix/configs/"); 2 | -------------------------------------------------------------------------------- /userjs/flatpak/ui-fix/apple-maps/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///app/etc/firefox/phoenix/configs/ui-fix/apple-maps.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/flatpak/ui-fix/discord/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///app/etc/firefox/phoenix/configs/ui-fix/discord.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/flatpak/ui-fix/element/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///app/etc/firefox/phoenix/configs/ui-fix/element.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/flatpak/ui-fix/extended/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///app/etc/firefox/phoenix/configs/ui-fix/hardened.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/flatpak/ui-fix/google-maps/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///app/etc/firefox/phoenix/configs/ui-fix/google-maps.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/flatpak/ui-fix/twitter/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///app/etc/firefox/phoenix/configs/ui-fix/twitter.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/flatpak/ui-fix/youtube/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///app/etc/firefox/phoenix/configs/ui-fix/youtube.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/flatpak/youtube/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///app/etc/firefox/phoenix/configs/youtube.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/linux/apple-maps/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///etc/firefox/phoenix/configs/apple-maps.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/linux/discord/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///etc/firefox/phoenix/configs/discord.cfg"); -------------------------------------------------------------------------------- /userjs/linux/element/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///etc/firefox/phoenix/configs/element.cfg"); -------------------------------------------------------------------------------- /userjs/linux/extended/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///etc/firefox/phoenix/configs/hardened.cfg"); -------------------------------------------------------------------------------- /userjs/linux/google-maps/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///etc/firefox/phoenix/configs/google-maps.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/linux/twitter/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///etc/firefox/phoenix/configs/twitter.cfg"); -------------------------------------------------------------------------------- /userjs/linux/ui-fix-base/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///etc/firefox/phoenix/configs/ui-fix.cfg"); -------------------------------------------------------------------------------- /userjs/linux/ui-fix/apple-maps/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///etc/firefox/phoenix/configs/ui-fix/apple-maps.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/linux/ui-fix/discord/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///etc/firefox/phoenix/configs/ui-fix/discord.cfg"); -------------------------------------------------------------------------------- /userjs/linux/ui-fix/element/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///etc/firefox/phoenix/configs/ui-fix/element.cfg"); -------------------------------------------------------------------------------- /userjs/linux/ui-fix/extended/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///etc/firefox/phoenix/configs/ui-fix/hardened.cfg"); -------------------------------------------------------------------------------- /userjs/linux/ui-fix/google-maps/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///etc/firefox/phoenix/configs/ui-fix/google-maps.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/linux/ui-fix/twitter/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///etc/firefox/phoenix/configs/ui-fix/twitter.cfg"); -------------------------------------------------------------------------------- /userjs/linux/ui-fix/youtube/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///etc/firefox/phoenix/configs/ui-fix/youtube.cfg"); -------------------------------------------------------------------------------- /userjs/linux/youtube/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///etc/firefox/phoenix/configs/youtube.cfg"); -------------------------------------------------------------------------------- /userjs/macos-intel/apple-maps/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///usr/local/opt/phoenix-osx/configs/apple-maps.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos-intel/discord/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///usr/local/opt/phoenix-osx/configs/discord.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos-intel/element/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///usr/local/opt/phoenix-osx/configs/element.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos-intel/extended/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///usr/local/opt/phoenix-osx/configs/hardened.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos-intel/google-maps/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///usr/local/opt/phoenix-osx/configs/google-maps.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos-intel/twitter/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///usr/local/opt/phoenix-osx/configs/twitter.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos-intel/ui-fix-base/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///usr/local/opt/phoenix-osx/configs/ui-fix.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos-intel/ui-fix/apple-maps/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///usr/local/opt/phoenix-osx/configs/ui-fix/apple-maps.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos-intel/ui-fix/discord/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///usr/local/opt/phoenix-osx/configs/ui-fix/discord.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos-intel/ui-fix/element/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///usr/local/opt/phoenix-osx/configs/ui-fix/element.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos-intel/ui-fix/extended/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///usr/local/opt/phoenix-osx/configs/ui-fix/hardened.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos-intel/ui-fix/google-maps/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///usr/local/opt/phoenix-osx/configs/ui-fix/google-maps.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos-intel/ui-fix/twitter/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///usr/local/opt/phoenix-osx/configs/ui-fix/twitter.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos-intel/ui-fix/youtube/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///opt/homebrew/opt/phoenix-osx/configs/ui-fix/youtube.cfg"); -------------------------------------------------------------------------------- /userjs/macos-intel/youtube/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///usr/local/opt/phoenix-osx/configs/youtube.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos/apple-maps/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///opt/homebrew/opt/phoenix-osx/configs/apple-maps.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos/discord/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///opt/homebrew/opt/phoenix-osx/configs/discord.cfg"); -------------------------------------------------------------------------------- /userjs/macos/element/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///opt/homebrew/opt/phoenix-osx/configs/element.cfg"); -------------------------------------------------------------------------------- /userjs/macos/extended/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///opt/homebrew/opt/phoenix-osx/configs/hardened.cfg"); -------------------------------------------------------------------------------- /userjs/macos/google-maps/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///opt/homebrew/opt/phoenix-osx/configs/google-maps.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos/twitter/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///opt/homebrew/opt/phoenix-osx/configs/twitter.cfg"); -------------------------------------------------------------------------------- /userjs/macos/ui-fix-base/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///opt/homebrew/opt/phoenix-osx/configs/ui-fix.cfg"); -------------------------------------------------------------------------------- /userjs/macos/ui-fix/apple-maps/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///opt/homebrew/opt/phoenix-osx/configs/ui-fix/apple-maps.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos/ui-fix/discord/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///opt/homebrew/opt/phoenix-osx/configs/ui-fix/discord.cfg"); -------------------------------------------------------------------------------- /userjs/macos/ui-fix/element/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///opt/homebrew/opt/phoenix-osx/configs/ui-fix/element.cfg"); -------------------------------------------------------------------------------- /userjs/macos/ui-fix/extended/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///opt/homebrew/opt/phoenix-osx/configs/ui-fix/hardened.cfg"); -------------------------------------------------------------------------------- /userjs/macos/ui-fix/google-maps/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///opt/homebrew/opt/phoenix-osx/configs/ui-fix/google-maps.cfg"); 2 | -------------------------------------------------------------------------------- /userjs/macos/ui-fix/twitter/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///opt/homebrew/opt/phoenix-osx/configs/ui-fix/twitter.cfg"); -------------------------------------------------------------------------------- /userjs/macos/ui-fix/youtube/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///opt/homebrew/opt/phoenix-osx/configs/ui-fix/youtube.cfg"); -------------------------------------------------------------------------------- /userjs/macos/youtube/user.js: -------------------------------------------------------------------------------- 1 | user_pref("autoadmin.global_config_url", "file:///opt/homebrew/opt/phoenix-osx/configs/youtube.cfg"); -------------------------------------------------------------------------------- /windows/phoenix.js: -------------------------------------------------------------------------------- 1 | // 2 | // The Phoenix shall rise from the ashes of what fell before it. 3 | 4 | pref("general.config.sandbox_enabled", true, locked); 5 | 6 | pref("general.config.filename", "phoenix.cfg"); 7 | pref("general.config.obscure_value", 0); 8 | --------------------------------------------------------------------------------