该存储库包含为 macOS、Windows 和 Linux 构建 Brave 桌面浏览器所需的构建工具。 特别是,它从package.json
和src/brave/DEPS
中定义的项目中获取并同步代码:
铬
通过depot_tools
获取代码。
设置 Chromium 的分支(例如:65.0.3325.181)。
勇敢的核心
安装在src/brave
。
维护第 3 方 Chromium 代码的补丁。
adblock-rust
实现 Brave 的广告拦截引擎。
通过brave/adblock-rust-ffi 链接。
您可以访问我们的网站获取最新的稳定版本。
请参阅贡献指南。
我们的 Wiki 也有一些有用的技术信息。
如果您想更多地参与 Brave,请加入问答社区。您可以寻求帮助、讨论您希望看到的功能等等。我们很乐意得到您的帮助,以便我们能够继续改进 Brave。
请在 https://explore.transifex.com/brave/brave_en/ 提交翻译,帮助我们将 Brave 翻译成您的语言。
在 Twitter 上关注@brave,了解重要新闻和公告。
请按照适合您平台的说明进行操作:
macOS
iOS系统
视窗
Linux/安卓
一旦安装了先决条件,您就可以获取代码并初始化构建环境。
git clone [email protected]:brave/brave-core.git 您的项目文件夹路径/src/bravecd 您的项目文件夹路径/src/brave npm install# 下载 Chromium 源代码,它具有大量历史记录(千兆字节的数据)# 这可能需要很长时间才能完成,具体取决于互联网速度npm run init
基于brave-core的android构建应使用npm run init -- --target_os=android --target_arch=arm
(或您想要构建的任何CPU类型)基于brave-core的iOS构建应使用npm run init -- --target_os=ios
您还可以使用以下命令设置 init 和 build 的 target_os 和 target_arch:
npm config set target_os android npm config set target_arch arm
构建所需的其他参数记录在 https://github.com/brave/brave-browser/wiki/Build-configuration
内部开发人员可以在 https://github.com/brave/devops/wiki/%60.env%60-config-for-Brave-Developers 找到更多信息
默认构建类型是组件。
# start the component build compile npm run build
要进行发布构建:
# start the release compile npm run build Release
基于brave-core的android构建应该使用npm run build -- --target_os=android --target_arch=arm
或设置上面为init
指定的npm配置变量
基于brave-core的iOS构建应该使用ios/brave-ios/App
中的Xcode项目。您可以直接打开该项目或运行npm run ios_bootstrap -- --open_xcodeproj
在 Xcode 中打开它。有关 iOS 构建的更多信息,请参阅 iOS 开发人员环境。
使用npm run build Release
运行发布版本可能会非常慢并且会使用大量 RAM,特别是在带有 Gold LLVM 插件的 Linux 上。
要运行静态链接构建(构建需要更长的时间,但启动速度更快):
npm run build -- 静态
运行调试构建(使用 is_debug=true 构建组件):
npm run build -- 调试
注意:构建需要一段时间才能完成。根据您的处理器和内存,这可能需要几个小时。
开始构建:
npm start [Release|Component|Static|Debug]
npm run sync -- [--force] [--init] [--create] [brave_core_ref]
这将尝试将本地更改存储在brave-core中,但在运行此命令之前提交本地更改更安全
npm run sync
将(取决于以下标志):
?将子项目(chromium、brave-core)更新为 git ref 的最新提交(例如标签或分支)
?应用补丁
?更新 gclient DEPS 依赖项
⏩ 运行钩子(例如在子项目上执行npm install
)
旗帜 | 描述 |
---|---|
[no flags] | 如果需要,更新 chromium 并重新应用补丁。如果 chromium 版本没有更改,它只会重新应用已更改的补丁。仅当在此脚本运行期间有任何项目需要更新时,才会更新子依赖项。 **如果您希望脚本能够让您保持最新状态,而不是手动拉取或切换分支,请使用此选项。 ** |
--force | 将Chromium和Brave-core更新为当前 Brave-Core 分支的最新远程提交以及在 Brave-browser/package.json 中指定的Chromium引用(例如master 或74.0.0.103 )。将重新应用所有补丁。将强制更新所有子依赖项。**如果您遇到问题并希望强制分支恢复到已知状态,请使用此选项。 ** |
--init | 强制将Chromium和Brave-core更新为 Brave-browser/package.json 中指定的版本,并强制更新所有依赖的存储库 - 与npm run init 相同 |
--sync_chromium (true/false) | 如果适用,将强制或跳过 chromium 版本更新。如果您想避免在未准备好应对 chromium 更新可能导致的较长构建时间时进行次要更新,则很有用。将输出有关当前代码状态的警告,需要不同的 chromium 版本。您的构建可能会因此失败。 |
-D, --delete_unused_deps | 将从工作副本中删除自上次同步以来已删除的所有依赖项。模仿gclient sync -D 。 |
运行npm run sync brave_core_ref
以签出指定的brave-core ref,并更新所有依赖的存储库,包括 chromium(如果需要)。
勇敢浏览器> cd src/brave Brave-browser/src/brave> git checkout -b 分支名称
勇敢浏览器/src/brave> git fetch origin Brave-browser/src/brave> git checkout [-b] 分支名称 Brave-browser/src/brave> npm run 同步 ...更新2个补丁... ...更新子依赖项... ...运行挂钩...
勇敢浏览器/src/brave> git pull Brave-browser/src/brave> npm run 同步 ...更新2个补丁... ...更新子依赖项... ...运行挂钩...
init
,总是会导致更长的构建,并将删除brave-core工作目录中任何挂起的更改):勇敢的浏览器> git checkout master 勇敢的浏览器> git pull 勇敢的浏览器> npm runsync -- --init
勇敢浏览器/src/brave> git checkout featureB 勇敢浏览器/src/brave> git pull 勇敢浏览器/src/brave> cd ../.. 勇敢的浏览器> npm run apply_patches ...应用 2 个补丁...
Google 安全浏览:从 https://console.developers.google.com/ 获取启用 SafeBrowsing API 的 API 密钥。按照 https://www.chromium.org/developers/how-tos/api-keys 使用您的密钥更新GOOGLE_API_KEY
环境变量以启用 Google SafeBrowsing。
Chromium 的安全规则
IPC 审查指南(特别是本参考文献)
Brave 的内部安全准则(仅适用于员工)
铁锈的用途
请参阅故障排除以获取常见问题的解决方案。