Dieses Repository enthält die Build-Tools, die zum Erstellen des Brave-Desktopbrowsers für macOS, Windows und Linux erforderlich sind. Insbesondere ruft und synchronisiert es Code aus den in package.json
und src/brave/DEPS
definierten Projekten:
Chrom
Ruft Code über depot_tools
ab.
Legt den Zweig für Chromium fest (z. B. 65.0.3325.181).
Mutiger Kern
Auf src/brave
montiert.
Verwaltet Patches für Chromium-Code von Drittanbietern.
Adblock-Rost
Implementiert die Ad-Block-Engine von Brave.
Verlinkt über brave/adblock-rust-ffi.
Sie können unsere Website besuchen, um die neueste stabile Version zu erhalten.
Bitte beachten Sie die Beitragsrichtlinien.
Unser Wiki bietet auch einige nützliche technische Informationen.
Treten Sie der Q&A-Community bei, wenn Sie sich stärker an Brave beteiligen möchten. Sie können um Hilfe bitten, Funktionen besprechen, die Sie sehen möchten, und vieles mehr. Wir würden uns über Ihre Hilfe freuen, damit wir Brave weiter verbessern können.
Helfen Sie uns, Brave in Ihre Sprache zu übersetzen, indem Sie Übersetzungen unter https://explore.transifex.com/brave/brave_en/ einreichen.
Folgen Sie @brave auf Twitter für wichtige Neuigkeiten und Ankündigungen.
Befolgen Sie die Anweisungen für Ihre Plattform:
macOS
iOS
Windows
Linux/Android
Sobald Sie die Voraussetzungen installiert haben, können Sie den Code abrufen und die Build-Umgebung initialisieren.
git clone [email protected]:brave/brave-core.git path-to-your-project-folder/src/bravecd path-to-your-project-folder/src/brave npm install# Die Chromium-Quelle wird heruntergeladen, die einen großen Verlauf hat (Gigabyte an Daten).# Dies kann je nach Internetgeschwindigkeit sehr lange dauern. npm run init
Brave-Core-basierte Android-Builds sollten npm run init -- --target_os=android --target_arch=arm
(oder den CPU-Typ, für den Sie bauen möchten) verwenden. Brave-Core-basierte iOS-Builds sollten npm run init -- --target_os=ios
verwenden npm run init -- --target_os=ios
Sie können target_os und target_arch auch für Init und Build festlegen, indem Sie Folgendes verwenden:
npm config set target_os android npm config set target_arch arm
Zusätzliche zum Erstellen erforderliche Parameter sind unter https://github.com/brave/brave-browser/wiki/Build-configuration dokumentiert
Interne Entwickler finden weitere Informationen unter https://github.com/brave/devops/wiki/%60.env%60-config-for-Brave-Developers
Der Standard-Build-Typ ist Komponente.
# start the component build compile npm run build
So erstellen Sie einen Release-Build:
# start the release compile npm run build Release
Brave-Core-basierte Android-Builds sollten npm run build -- --target_os=android --target_arch=arm
verwenden oder die npm-Konfigurationsvariablen wie oben für init
angegeben festlegen
Brave-Core-basierte iOS-Builds sollten das Xcode-Projekt verwenden, das in ios/brave-ios/App
zu finden ist. Sie können dieses Projekt direkt öffnen oder npm run ios_bootstrap -- --open_xcodeproj
ausführen, um es in Xcode zu öffnen. Weitere Informationen zu iOS-Builds finden Sie in der iOS-Entwicklerumgebung.
Das Ausführen eines Release-Builds mit npm run build Release
kann sehr langsam sein und viel RAM verbrauchen, insbesondere unter Linux mit dem Gold LLVM-Plugin.
So führen Sie einen statisch verknüpften Build aus (der Build dauert länger, startet aber schneller):
npm run build – Statisch
So führen Sie einen Debug-Build aus (Komponenten-Build mit is_debug=true):
npm run build – Debuggen
HINWEIS: Der Build wird eine Weile dauern. Abhängig von Ihrem Prozessor und Speicher kann es möglicherweise einige Stunden dauern.
So starten Sie den Build:
npm start [Release|Component|Static|Debug]
npm run sync -- [--force] [--init] [--create] [brave_core_ref]
Dadurch wird versucht, Ihre lokalen Änderungen in Brave-Core zu speichern. Es ist jedoch sicherer, lokale Änderungen zu übernehmen, bevor Sie dies ausführen
npm run sync
wird (abhängig von den folgenden Flags):
? Aktualisieren Sie Unterprojekte (Chromium, Brave-Core) auf den neuesten Commit einer Git-Referenz (z. B. Tag oder Zweig).
? Wenden Sie Patches an
? Aktualisieren Sie die DEPS-Abhängigkeiten von gclient
⏩ Hooks ausführen (z. B. um npm install
für untergeordnete Projekte durchzuführen)
Flagge | Beschreibung |
---|---|
[no flags] | Aktualisiert Chrom bei Bedarf und wendet Patches erneut an. Wenn sich die Chromium-Version nicht geändert hat, werden nur die geänderten Patches erneut angewendet. Aktualisiert untergeordnete Abhängigkeiten nur, wenn während dieser Skriptausführung ein Projekt aktualisiert werden muss . **Verwenden Sie dies, wenn Sie möchten, dass das Skript Sie auf dem Laufenden hält, anstatt Zweige manuell abzurufen oder zu wechseln. ** |
--force | Aktualisiert sowohl Chromium als auch Brave-Core auf den neuesten Remote-Commit für den aktuellen Brave-Core-Zweig und die in Brave-Browser/Package.json angegebene Chromium -Referenz (z. B. master oder 74.0.0.103 ). Werde alle Patches erneut anwenden. Erzwingt die Aktualisierung aller untergeordneten Abhängigkeiten.**Verwenden Sie dies, wenn Sie Probleme haben und die Zweige in einen bekannten Zustand zurückversetzen möchten. ** |
--init | Erzwingen Sie die Aktualisierung von Chromium und Brave-Core auf die in brave-browser/package.json angegebenen Versionen und erzwingen Sie die Aktualisierung aller abhängigen Repos – genau wie npm run init |
--sync_chromium (true/false) | Erzwingt oder überspringt gegebenenfalls das Update der Chromium-Version. Nützlich, wenn Sie ein kleineres Update vermeiden möchten, wenn Sie nicht für die längere Buildzeit bereit sind, die ein Chromium-Update mit sich bringen kann. Es wird eine Warnung ausgegeben, dass der aktuelle Codestatus eine andere Chromium-Version erwartet. Ihr Build kann dadurch fehlschlagen. |
-D, --delete_unused_deps | Löscht alle Abhängigkeiten aus der Arbeitskopie, die seit der letzten Synchronisierung entfernt wurden. Imitiert gclient sync -D . |
Führen Sie npm run sync brave_core_ref
aus, um die angegebene Brave-Core- Referenz auszuchecken und alle abhängigen Repos, einschließlich Chromium, bei Bedarf zu aktualisieren.
brave-browser> cd src/brave brave-browser/src/brave> git checkout -b branch_name
brave-browser/src/brave> git fetch origin brave-browser/src/brave> git checkout [-b] branch_name brave-browser/src/brave> npm run sync ...Aktualisierung von 2 Patches... ...Untergeordnete Abhängigkeiten werden aktualisiert... ...Laufhaken...
brave-browser/src/brave> git pull brave-browser/src/brave> npm run sync ...Aktualisierung von 2 Patches... ...Untergeordnete Abhängigkeiten werden aktualisiert... ...Laufhaken...
init
führt dies immer zu einem längeren Build und entfernt alle ausstehenden Änderungen in Ihrem Brave-Core-Arbeitsverzeichnis):brave-browser> Git Checkout Master Brave-Browser> Git Pull brave-browser> npm run sync -- --init
brave-browser/src/brave> git checkout featureB brave-browser/src/brave> git pull brave-browser/src/brave> cd ../.. brave-browser> npm run apply_patches ...2 Patches anwenden...
Google Safe Browsing : Holen Sie sich einen API-Schlüssel mit aktivierter SafeBrowsing-API von https://console.developers.google.com/. Aktualisieren Sie die Umgebungsvariable GOOGLE_API_KEY
mit Ihrem Schlüssel gemäß https://www.chromium.org/developers/how-tos/api-keys, um Google SafeBrowsing zu aktivieren.
Sicherheitsregeln von Chromium
IPC-Überprüfungsrichtlinien (insbesondere diese Referenz)
Interne Sicherheitsrichtlinien von Brave (nur für Mitarbeiter)
Verwendung von Rost
Lösungen für häufig auftretende Probleme finden Sie unter Fehlerbehebung.