
IronFox 是 Divested Computing Group 的 Mull 浏览器 的一个分支,基于 Mozilla Firefox。我们的目标是延续 Mull 的使命,为日常使用提供一款自由开源、注重隐私与安全的网页浏览器。
[!TIP] 发现了 Bug?遇到了烦人的问题?有想要分享的技巧、想法或建议?请在我们的统一问题跟踪器上提交任何问题、Bug 报告和建议!
我们期待在 Matrix (推荐) 和 Discord 上见到你!
有关如何安装 IronFox 的详细信息和分步说明,请参阅我们的下载页面。
包 ID:org.ironfoxoss.ironfox
包 ID (每夜版):org.ironfoxoss.ironfox.nightly
签名证书的 SHA-256 哈希:
C5:E2:91:B5:A5:71:F9:C8:CD:9A:97:99:C2:C9:4E:02:EC:97:03:94:88:93:F2:CA:75:6D:67:B9:42:04:F9:04
IronFox 使在本地构建项目变得更加容易(且更快)。
例如,使用预构建的 wasi-sdk sysroot 和 llvm-project 版本,而不是在本地构建它们。F-Droid 构建仍然从源码构建这些。
建议使用 Docker 镜像来构建 IronFox。
使用以下命令拉取 Docker 镜像:
docker pull registry.gitlab.com/ironfox-oss/ironfox:latest
你也可以使用 main 标签来拉取用于构建最新 IronFox 版本的镜像。或者,你可以使用确切的版本名称来拉取对应版本的镜像。
例如:
docker pull registry.gitlab.com/ironfox-oss/ironfox:v135-0
然后,你需要设置源文件。
注意:目前,支持在最新版本的 Fedora、macOS、secureblue 和 Ubuntu 系统上进行构建。其他操作系统/环境可能因系统而异。
注意:macOS 用户必须在执行以下步骤之前安装 Homebrew (如果尚未安装)。
首先,如果你尚未安装,你需要为你的平台安装 git:
Fedora:
sudo dnf install git
macOS:
brew install git
secureblue:
git 默认已安装在 secureblue 上,因此无需任何操作。
Ubuntu:
sudo apt install git
成功安装 git 后,你需要做的第一件事是克隆 IronFox 的源代码仓库:
(下方指定了 --depth=1 以减少克隆仓库的大小,如果愿意可以移除)
git clone --depth=1 [email protected]:ironfox-oss/IronFox.git IronFox
现在,你应该导航到 IronFox 源代码目录的根目录,并运行 bootstrap 脚本:
(bootstrap 脚本将设置并安装在你的系统上构建 IronFox 所需的依赖项)
cd IronFox
./scripts/bootstrap.sh
仍然在 IronFox 源代码目录的根目录下,你现在应该运行 get_sources 脚本,以下载构建 IronFox 所需的外部源文件:
注意:如果你需要获取与 IronFox 当前使用的版本不同的依赖项版本的源文件,你需要在运行 get_sources 脚本之前修改 scripts/versions.sh。
这可能需要一些时间,具体取决于你的网络速度...
./scripts/get_sources.sh
你现在需要使用 prebuild 脚本来修补/准备你新下载的源文件:
在获取源文件后必须运行一次。
./scripts/prebuild.sh
最后,你可以使用以下命令开始构建过程:
./scripts/build.sh <build-variant>
其中 <build-variant> 指定要构建的变体,并且是以下之一:
arm - 32 位 ARM(armeabi-v7a)arm64 - 64 位 ARM(arm64-v8a)x86_64 - 64 位 x86bundle - 包含所有受支持 ABI 的 Android App Bundle(AAB)除了 AAB 之外,bundle 目标还会为每种架构 (arm、arm64 和 x86_64) 生成 APK,以及一个包含所有架构的通用 APK。
IronFox 主要由 shell 脚本驱动,这些脚本通过 shellcheck (静态分析) 和 shfmt (格式化) 进行检查。这些检查在 CI (lint-scripts 作业) 中自动运行并强制执行——代码检查失败会在任何构建开始之前停止流水线。
./scripts/get_sources.sh 会安装这两个工具,并启用一个 git 预提交钩子 (通过 core.hooksPath),该钩子会在每次提交前检查你暂存的脚本。该钩子只是一个便利功能,可以通过 git commit --no-verify 绕过;CI 仍然是权威来源。
如果你提供自己的 shellcheck 和 shfmt 副本 (而不是从 ./scripts/get_sources.sh 获取),在将 IRONFOX_SHELLCHECK_DIR 和 IRONFOX_SHFMT_DIR 设置为相应的目录后,你可以直接运行以下命令来设置预提交钩子:
./scripts/lint-hook.sh
要手动运行代码检查:
./scripts/lint.sh
要自动修复格式:
git ls-files 'scripts/*.sh' | xargs shfmt -w
代码检查配置位于 .shellcheckrc (检查) 和 .editorconfig (格式化) 中。
IronFox 使用 Weblate 进行翻译。访问 Weblate 项目 以帮助翻译。
脚本根据 GNU Affero 通用公共许可证,版本 3 或更高版本 授权。
对补丁的更改根据这些补丁添加或修改的文件中的头部声明进行授权(Apache 2.0 或 MPL 2.0)。
Phoenix 在适用情况下根据 GNU 通用公共许可证 v3.0 或更高版本 (GPL-3.0-or-later) 授权。请参阅 COPYING。
a-c-liberate.patch、a-s-localize-maven.patch 和 fenix-liberate.patch 改编自 Fennec F-Droid。请参阅 COPYING。
gecko-configure-ublock-origin.patch、gecko-devtools-bypass.patch、gecko-fix-rfphelper-import.patch、gecko-prevent-exposing-name-and-vendor-to-extensions.patch 和 gecko-rs-blocker.patch 改编自 LibreWolf。请参阅 LibreWolf 许可证和免责声明。
fenix-disable-network-connectivity-monitoring.patch、gecko-disable-network-id.patch、gecko-prevent-fingerprinting-via-chrome-resources.patch、geckoview-ironfox-settings-support-spoof-english.patch 和 glean-noop.patch 改编自 Tor 项目。请参阅 LICENSE。
我们当前的一组默认壁纸取自 Fennec F-Droid,并根据 Unsplash 许可证 提供。
Mozilla Firefox 是 Mozilla 基金会的商标。
这不是 Mozilla 官方支持的产品。IronFox 与 Mozilla 没有任何关联。
IronFox 未获得 Mozilla 的赞助或认可。
IronFox 与 DivestOS、Divested Computing Group 或 Mull 没有任何关联。
Firefox 源代码可在 https://github.com/mozilla-firefox/firefox 获取。