1. 程式人生 > >編譯基於Chrome程式碼修改的Brave瀏覽器

編譯基於Chrome程式碼修改的Brave瀏覽器

0x1、概述

最近由於工作需要,對Chrome瀏覽器的Android版本進行編譯學習,在網上找了一下,發現有一個基於Chrome開源基礎上做二次修改的版本,名叫Brave,GIT倉庫程式碼,主打隱私安全版本的瀏覽器,以下是整個編譯過程,做一下記錄。

0x2、系統要求

編譯系統:ubuntu 14.10,記憶體最好大於2G以上,在第一次編譯時,我在2G的虛擬機器跑了將近12個小時才跑完,而且還是全程卡得不到了,後面設定成8G記憶體後跑起來就好多了,硬碟方面至少40G,編譯起來不比一個Android系統的原始碼小,不算其它工具,就編譯出來的檔案佔用空間有36G。

編譯前的環境安裝:

a、安裝 

yarn命令,依賴安裝node.js

先安裝node.js,  下載檔案

wget https://nodejs.org/dist/v8.12.0/node-v8.12.0-linux-x64.tar.xz

解壓

tar xf node-v8.12.0-linux-x64.tar.xz -C /usr/local/

重新命名

mv node-v8.12.0-linux-x64/ nodejs

連線

ln -s /usr/local/nodejs/bin/node /usr/local/bin
ln -s /usr/local/nodejs/bin/npm /usr/local/bin

看看是否正常安裝,直接在隨意地方執行node -v檢視版本號

接下來安裝yarn命令,執行以下三條命令就可以了

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn

如果看到以下顯示錶示已經安裝完成

b、安裝 ninja 命令,不能直接使用apt-get安裝,如果是使用apt-get安裝,發現安裝完成後版本號為0.1.13,是很舊的版本,需要自己下載,我是直接下載一個編譯好的ninja最新版本

wget https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip

解壓後就一個ninja檔案,記得需要把它配置在環境變數中。

0x3、編譯流程

a、克隆Chromium's depot_tools 倉庫,命令如下:

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

我是存放在/root/depot_tools目錄下,然後把發開工具庫命令加入到系統變數中

export PATH=$PATH:/root/depot_tools

看看是否已經配置好,你隨便執行一下gn命令,看看是否有提示,如果有提示,則表示已經安裝完成

b、下載Chrome (brave)瀏覽器程式碼

建立資料夾:mkdir brave

克隆程式碼:

git clone https://github.com/brave/browser-android-tabs.git src

程式碼下載完成後,進入src目錄:cd src

c、執行scripts/getThirdParties.js指令碼

命令:

sh scripts/getThirdParties.js

過程會下載一些編譯時依賴的庫,時長還有點長,在執行完成後,會建立一個args.gn的檔案,需要我們去配置接下來要編譯Brave瀏覽器的資訊,我們直接複製下面配置就好了,配置也能很清楚看明白。

target_os = "android"
target_cpu = "arm"
is_debug = true

is_component_build = false
is_clang = true
symbol_level = 1
enable_incremental_javac = true
v8_use_external_startup_data = true
fieldtrial_testing_like_official_build = true
icu_use_data_file = false

儲存退出,等待指令碼執行完成,編譯前的環境就配置好了。

d、在/root/brave/src目錄下執行以下命令就開始漫長的編譯時間了

ninja -C out/Default chrome_public_apk

如果可以順利的編譯完成,我們可以看編譯出來的結果

進入apks資料夾,就可以看到Brave.apk檔案了,可以直接安裝到手機上運行了,整個流程還算比較順利,沒有太多的問題。