基于自定义 Brave 构建的本地优先 macOS 研究浏览器,可捕获网络流量、指纹、脚本和运行时证据,用于对 Web 应用进行逆向工程。
从仓库根目录运行 make。根目录的 Makefile 定义了默认目标,并按顺序包含以下文件:
| 文件 | 职责 |
|---|---|
config.mk | 编译器标志、构建目录、用于 lint 的源文件列表、平台默认值 |
native.mk | 显式原生链接依赖、编译、生成头文件依赖 |
workflows.mk | 产品启动、证据夹具、本地服务、Brave 集成命令 |
quality.mk | 构建回归检查、linter、sanitizer、清理 |
现有命令名称和可执行文件路径保持为公共接口。
实现对象在 BUILD_DIR 内镜像源路径;编译器生成的
.d 文件跟踪直接和传递的项目头文件。只有解码器
可执行文件在其链接命令中添加 zlib。make native-probe-compile 编译
被跟踪的浏览器队列,无需单独的测试源文件。
make bootstrap-dev-tools 将 CI 使用的相同固定版本 clang-format 和 Ruff
安装到 ~/.local/share/reb-tools,并使用 Homebrew 安装缺失的
shellcheck 和 actionlint 公式。Make 会自动优先使用这些固定的
本地工具。make deob-benchmark 构建 Rust worker 并运行
有界语义语料库,附带计时、内存、转换和
变更源覆盖证据。
make lint 检查两个 Rust manifest 的格式和 Clippy 警告。
反混淆 worker 包含所有目标,因此其回归测试代码会
与生产可执行文件一起被检查。
为不同的编译器或标志集使用单独的构建目录:
make BUILD_DIR=build/debug OPT_CXXFLAGS='-O0 -g' all
Make 不会检测现有构建目录中命令行标志值的变化。
对原生规则或编译器配置文件的更改确实会
使原生对象失效。make sanitize 使用其自己的干净构建目录。
make native-build-test 运行 scripts/check-native-build.sh,该脚本在
临时目录中构建并运行两个独立的可执行文件,检查重复构建不做任何工作,并验证
工件头文件更改会使其消费者失效,而无需重新构建事件
演示。make check 包含此回归检查、反混淆语义
基准,以及后端和反混淆器 worker 的 Rust 测试套件。它还会
针对构建的 Rust/Oxc worker 运行 source-facts HTTP/CLI 集成测试;
在定位该辅助程序时会遵循 CARGO_TARGET_DIR。
make native-proxy-policy-check 编译并运行仅准备的原生
代理/容器策略套件,无需 Chromium、Cargo、套接字或浏览器。
它包含在 make check 和 make sanitize 中;它不建立真实的
浏览器路由或隔离。请参阅版本化的原生代理容器契约。
origin-trace-backend 构建 Rust HTTP 服务、VM 分析器和 API CLI。
ui 在确定性证据生成后启动该服务。backend-e2e
使用一次性 Chromium 兼容配置文件和合成的 localhost 夹具;
为非标准浏览器可执行文件设置 ORIGIN_TRACE_TEST_BROWSER。应用构建
捆绑 Rust 可执行文件和静态 UI 资源,不依赖 Python 运行时。