
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 系统上进行构建。其他操作系统/环境的效果可能各不相同(YMMV)。
注意: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 任务) 中自动运行并被强制执行——任何 lint 检查失败都会在任何构建开始之前阻止流水线。
./scripts/get_sources.sh 会安装这两个工具,并启用一个 git pre-commit 钩子 (通过 core.hooksPath),该钩子会在每次提交前对暂存的脚本进行 lint 检查。此钩子只是为了方便,可以通过 git commit --no-verify 绕过;CI 仍然是最终的权威依据。
如果你自行提供 shellcheck 和 shfmt 的副本 (而不是从 ./scripts/get_sources.sh 获取),在将 IRONFOX_SHELLCHECK_DIR 和 IRONFOX_SHFMT_DIR 设置为相应目录后,你可以直接运行以下命令来设置 pre-commit 钩子:
./scripts/lint-hook.sh
要手动运行 lint 检查:
./scripts/lint.sh
要自动修复格式:
git ls-files 'scripts/*.sh' | xargs shfmt -w
Lint 工具的配置位于 .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-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 获取。