Brave Core: Mã Nguồn Engine Trình Duyệt Brave
Brave Core là repository chứa các patch Chromium, script build, và phần tích hợp chặn quảng cáo thực tế của Brave — không phải một trình duyệt để cài đặt, mà là mã nguồn để bạn build ra một trình duyệt. Hãy dùng nếu bạn muốn tự build Brave hoặc xem chính xác Brave thay đổi gì trong Chromium. Bỏ qua nếu bạn chỉ cần dùng Brave hàng ngày — hãy tải bản build sẵn từ brave.com/download.
Brave Core Là Gì?
Brave Core là repository GitHub (brave/brave-core) chứa các thay đổi, API, và script mà Brave dùng để tuỳ biến Chromium thành trình duyệt Brave. Nó được gắn tại src/brave bên trong một checkout Chromium, duy trì các patch cho mã nguồn bên thứ ba của Chromium, và liên kết engine chặn quảng cáo adblock-rust qua component adblock_rust_ffi. Issue, release, và wiki nằm ở một repository khác, brave-browser, chứ không phải ở đây.
Các Thành Phần Và Tuỳ Biến Chính
- ✓Duy trì các patch trên mã nguồn Chromium của bên thứ ba thay vì lưu một bản fork đầy đủ, được áp dụng và áp dụng lại qua lệnh pnpm run sync và apply_patches.
- ✓Fetch và ghim đúng nhánh Chromium cùng các dependency khác được khai báo trong package.json và src/brave/DEPS, dùng depot_tools để tải Chromium.
- ✓Kết nối engine adblock-rust của Brave (từ repo riêng brave/adblock-rust) qua component adblock_rust_ffi trong thư mục components/.
- ✓Cung cấp bộ lệnh dựa trên pnpm — init, build, start, sync — nằm trên hệ thống build của Chromium, thay vì phải gọi trực tiếp gn/ninja.
- ✓Build theo bốn kiểu: Component (mặc định), Release, Static (build lâu hơn nhưng khởi động nhanh hơn), và Debug.
- ✓Bao phủ các nền tảng desktop (Linux, macOS, Windows) và di động, với flag --target_os riêng cho build Android và iOS.
- ✓Ghi lại quy trình review bảo mật kế thừa từ Chromium — security rules và hướng dẫn review IPC — cùng một tài liệu riêng về cách dùng Rust của Brave.
Ai Nên Dùng Brave Core?
- •Build trình duyệt Brave cho desktop từ mã nguồn trên Linux, macOS, hoặc Windows thay vì cài bản release dựng sẵn.
- •Kiểm tra hoặc đóng góp cho các patch cụ thể mà Brave áp dụng lên Chromium gốc.
- •Build Brave cho Android hoặc iOS bằng các flag init và build target_os được ghi trong repo.
- •Làm việc trên phần tích hợp engine chặn quảng cáo của Brave, vì adblock-rust được kết nối ở đây qua adblock_rust_ffi.
- •Bật và thử nghiệm Google Safe Browsing tại máy local bằng cách cung cấp GOOGLE_API_KEY riêng, theo hướng dẫn trong README.
Thiết Lập Môi Trường Phát Triển
Bắt đầu với các yêu cầu tiên quyết theo nền tảng: README dẫn tới các trang wiki riêng của brave-browser cho môi trường phát triển Android, Linux, iOS, macOS, và Windows — đọc trang tương ứng nền tảng của bạn trước khi clone. Sau khi có đủ điều kiện, clone brave-core vào đường dẫn src/brave (`git clone [email protected]:brave/brave-core.git path-to-your-project-folder/src/brave`), `cd` vào đó, rồi chạy `pnpm run init`. Bước này tải cả Chromium lẫn brave-core, và README cảnh báo nó tải về nhiều gigabyte lịch sử Chromium, nên hãy chuẩn bị thời gian nếu mạng không nhanh. Build Android thêm `--target_os=android --target_arch=arm` (hoặc kiến trúc CPU bạn muốn) vào lệnh init đó, còn build iOS thêm `--target_os=ios`. Cấu hình bổ sung nằm ở một trang wiki Build-configuration riêng, không nằm trong README này.
Build Và Chạy Trình Duyệt
Build mặc định là Component, khởi chạy bằng `pnpm run build`; thêm `Release` để build bản release, `Static` để build liên kết tĩnh (lâu hơn nhưng khởi động nhanh hơn), hoặc `Debug` cho bản Component chạy debug. README nói thẳng rằng một build đầy đủ có thể mất vài giờ tuỳ CPU và RAM, và build Release đặc biệt chậm, tốn nhiều RAM, nhất là trên Linux dùng plugin Gold LLVM. Sau khi build xong, chạy bằng `pnpm start [Release|Component|Static|Debug]`. Để cập nhật thay đổi từ upstream sau này, `pnpm run sync` cập nhật Chromium và brave-core theo một ref cụ thể, áp dụng lại patch, và cập nhật dependency — thêm `--force` để reset cứng cả hai về commit mới nhất, hoặc `--init` để reset toàn bộ về phiên bản được ghim trong package.json.
Điểm mạnh
- ✓Dùng patch, không phải bản fork trùng lặp: Chromium được fetch mới qua depot_tools và các thay đổi của brave-core được áp dụng lại lên trên, giúp diff luôn hiển thị rõ thay vì chôn trong một bản copy toàn bộ cây thư mục Chromium.
- ✓Một bộ lệnh (init/build/start/sync) bao phủ năm nền tảng — Android, iOS, Linux, macOS, Windows — thay vì tài liệu build riêng cho từng OS.
- ✓adblock-rust được tích hợp như một component riêng (adblock_rust_ffi) thay vì được patch tay vào network stack của Chromium.
- ✓Bốn kiểu build — Component, Release, Static, Debug — cho phép chọn giữa lặp nhanh hơn hoặc khởi động nhanh hơn tuỳ việc đang làm.
- ✓MPL-2.0 là giấy phép cởi mở với copyleft chỉ trên các file bị sửa đổi, nên bạn thấy rõ Brave đã thay đổi gì mà không vướng ràng buộc cấp phép độc quyền.
Thách Thức Và Lưu Ý
- △Brave Core không phải một trình duyệt độc lập có thể build riêng — build Brave nghĩa là phải tải thêm Chromium và engine adblock-rust riêng qua script init/sync của repo này, chứ không thể build brave-core một mình.
- △Bước `pnpm run init` đầu tiên tải toàn bộ lịch sử mã nguồn Chromium, mà README mô tả là nhiều gigabyte dữ liệu, nên lần setup đầu cần dung lượng ổ đĩa và thời gian thật sự.
- △Một build đầy đủ có thể mất vài giờ, theo README, và build Release được nêu là đặc biệt chậm, tốn nhiều RAM trên Linux.
- △Việc theo dõi issue, release note, và wiki nằm ở repository brave-browser riêng, nên chỉ nhìn repo này thôi sẽ không thấy bug đang mở hay lịch sử phiên bản.
- △Các bước cài đặt tiên quyết cụ thể theo từng nền tảng không nằm trong README này — nó dẫn sang các trang wiki của brave-browser, nên bạn sẽ phải đọc tài liệu của hai repo chứ không phải một.
Các Dự Án Trình Duyệt Thay Thế
Câu Hỏi Thường Gặp
Brave Core được cấp phép theo Mozilla Public License 2.0 (MPL-2.0), như được liệt kê trong metadata của repository trên GitHub.
GitHub liệt kê C++ là ngôn ngữ chính của Brave Core; công cụ build chạy trên script pnpm/Node, còn component adblock-rust được liên kết vào thì viết bằng Rust.
README của Brave Core hướng người đóng góp tới hướng dẫn trong CONTRIBUTING.md, và tới wiki của brave-browser để thiết lập môi trường phát triển trước.
Script build của Brave Core có hỗ trợ di động: README ghi luồng init/build cho Android với --target_os=android, và một luồng riêng cho iOS với --target_os=ios cùng một project Xcode.
Brave Core là một lớp patch, API, và script được gắn tại src/brave bên trong một checkout Chromium — nó tuỳ biến và build trên nền Chromium chứ không thay thế hay fork Chromium thành một codebase riêng.
README nói một build đầy đủ có thể mất vài giờ tuỳ CPU và RAM, chưa tính bước tải mã nguồn Chromium ban đầu mà README nói riêng là nhiều gigabyte dữ liệu.
Vấn đề Brave Core giải quyết
Brave thay đổi hành vi của Chromium ở rất nhiều chỗ — chặn quảng cáo, mặc định về quyền riêng tư, giao diện — và mỗi khi Chromium gốc cập nhật, những thay đổi đó phải được đối chiếu lại thay vì viết lại từ đầu. Brave Core tồn tại để việc đối chiếu đó lặp lại được: nó lưu các thay đổi của Brave dưới dạng patch trên một nhánh Chromium được ghim sẵn, sync và áp dụng lại patch chỉ bằng một lệnh, và kết nối một engine chặn quảng cáo được duy trì riêng (adblock-rust) thay vì gắn logic chặn quảng cáo thẳng vào các file Chromium đã fork. Đó là một vấn đề hẹp hơn nhiều so với "làm sao để build một trình duyệt" — cụ thể là làm sao Brave giữ được bản fork Chromium của mình dễ bảo trì trên năm nền tảng, trong khi upstream vẫn liên tục thay đổi.
Ai nên dùng — và ai nên bỏ qua
Hãy thử Brave Core nếu bạn là nhà phát triển muốn build Brave từ mã nguồn, xem xét hoặc đóng góp cho các patch cụ thể mà nó mang trên nền Chromium, hoặc làm việc với phần tích hợp adblock-rust. Bỏ qua nếu bạn chỉ cần dùng Brave hàng ngày — hãy lấy bản build sẵn từ brave.com/download — hoặc nếu bạn muốn một codebase nhỏ, tự chứa mà không cần tải thêm toàn bộ cây mã nguồn Chromium.
Muốn nghe thêm một ý kiến về brave-core?
Hỏi một AI đọc được trang này — một cú bấm là có ngay nhận định về brave-core.
