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 des 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 natives
proxy/conteneur 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 ni
d'isolation réels du navigateur. Voir le contrat versionné 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 déterministe de preuves. Les compilations de
l'application regroupent les exécutables Rust et les ressources statiques de l'UI, sans
dépendance à un runtime Python.
make check exécute également native-only-check (l'UI livrée dans un modèle LinkeDOM,
l'absence des contrôles supprimés et le refus par le script de lancement des options CDP
retirées ; il installe le fichier de verrouillage épinglé tools/ui-startup-deps lors de la
première utilisation) et exécute chaque test d'intégration Rust ignoré par son nom exact,
en échouant sauf si exactement un test a réussi. make quickjs-binding-check vérifie le
module QuickJS public épinglé. make rendered-ui-check est l'acceptation rendue macOS de
l'application empaquetée ; elle nécessite Xcode complet pour XCTest.