Navigateur de recherche macOS local-first construit sur une version personnalisée de Brave qui capture le trafic réseau, les empreintes, les scripts et les preuves d'exécution pour le reverse engineering d'applications web.
Exécutez make depuis la racine du dépôt. Le Makefile racine définit
l'objectif par défaut et inclut ces fichiers dans l'ordre :
| Fichier | Responsabilité |
|---|---|
config.mk | Options du compilateur, répertoires de compilation, listes de sources pour le lint, valeurs par défaut de la plateforme |
native.mk | Dépendances de liaison natives explicites, compilation, dépendances des en-têtes générés |
workflows.mk | Lancement du produit, fixtures de preuve, services locaux, commandes d'intégration Brave |
quality.mk | Vérification de régression de la compilation, linters, sanitizers, nettoyage |
Les noms de commandes et les chemins d'exécutables existants restent l'interface publique.
Les objets d'implémentation reflètent les chemins sources dans BUILD_DIR ; les fichiers
.d générés par le compilateur suivent les en-têtes directs et transitifs du projet. Seul
l'exécutable du décodeur ajoute zlib à sa commande de liaison. make native-probe-compile
compile la file d'attente du navigateur suivie sans source de test séparée.
make bootstrap-dev-tools installe les mêmes versions épinglées de clang-format et Ruff
que celles utilisées par la CI dans ~/.local/share/reb-tools, et installe les formules
shellcheck et actionlint manquantes avec Homebrew. Make préfère automatiquement ces
outils locaux épinglés. make deob-benchmark compile le worker Rust et exécute le corpus
sémantique borné avec des preuves de temps d'exécution, de mémoire, de transformation et
de couverture des sources modifiées.
make lint vérifie le formatage et les avertissements Clippy pour les deux manifestes
Rust. Le worker de désobfuscation inclut toutes les cibles afin que son code de test de
régression soit vérifié en même temps que l'exécutable de production.
Utilisez un répertoire de compilation séparé pour un compilateur ou un ensemble d'options différent :
make BUILD_DIR=build/debug OPT_CXXFLAGS='-O0 -g' all
Make ne détecte pas les modifications des valeurs d'options en ligne de commande dans un
répertoire de compilation existant. Les modifications des règles natives ou des fichiers
de configuration du compilateur invalident bien les objets natifs. make sanitize utilise
son propre répertoire de compilation propre.
make native-build-test exécute scripts/check-native-build.sh, qui compile et exécute
deux exécutables indépendants dans un répertoire temporaire, vérifie qu'une recompilation
répétée ne fait aucun travail, et vérifie qu'une modification d'en-tête d'artefact invalide
son consommateur sans recompiler la démo d'événements. make check inclut cette vérification
de régression, le benchmark sémantique de désobfuscation, ainsi que les suites de tests Rust
du backend et du worker de désobfuscation. Il exécute également le test d'intégration
HTTP/CLI des faits de source contre le worker Rust/Oxc compilé ; CARGO_TARGET_DIR est
respecté lors de la localisation de cet assistant.
make native-proxy-policy-check compile et exécute la suite de politiques de proxy/conteneur
natives de préparation uniquement, sans Chromium, Cargo, sockets ni navigateur. Elle est
incluse dans make check et make sanitize ; elle n'établit pas de routage ou d'isolation
réels du navigateur. Voir le contrat versionné de proxy-conteneur natif.
origin-trace-backend compile le service HTTP Rust, l'analyseur de VM et la CLI API.
ui démarre ce service après une génération de preuves déterministe. backend-e2e
utilise un profil jetable compatible Chromium et des fixtures localhost synthétiques ;
définissez ORIGIN_TRACE_TEST_BROWSER pour un exécutable de navigateur non standard. Les
compilations d'application regroupent les exécutables Rust et les ressources UI statiques,
sans dépendance à un runtime Python.